hp2FEM  0.1
Public Member Functions | Protected Member Functions | Protected Attributes
GlobalSolver Class Reference

Class for the global FE solver. More...

#include <GlobalSolver.h>

Inheritance diagram for GlobalSolver:
Inheritance graph
[legend]
Collaboration diagram for GlobalSolver:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 GlobalSolver ()
 Default constructor (without parameters): the class attributes are initialized with default values.
 GlobalSolver (GlobalSolver &Instance)
 Copy-initializer constructor. Copies the contents of Instance to the current object,.
GlobalSolveroperator= (GlobalSolver &Instance)
 Copies the contents of Instance to the current object,.
 ~GlobalSolver ()
 Destructor.
void Run ()
 Runs the given analysis.

Protected Member Functions

void NewtonRaphsonSolver ()
 Newton-Raphson method used to solve a non-linear model.
void NewtonRaphsonContactSolver ()
 Newton-Raphson method used to solve a contact model.
void DynamicLinearSolver ()
 Runs the linear dynamic analysis using explicit CD method or the implicit Newmark method.
void ProjectionSolver ()
 Solves projection problems for the global sparse mass matrix.
void StaticLinearSolver ()
 Solves static problems for the global sparse stiffness matrix.
void CentralDifferenceGlobalMethod ()
 Evaluate displacement, velocity and acceleration in time using the explicit Central Difference Method in its global form.
void NewmarkGlobalMethod ()
 Evaluate displacement, velocity and acceleration in time using the implicit Newmark Method in its global form.
void SetIterativeSparseTopology (SymmetricSparse &SPAIt, unsigned long NoBCFlag=0)
 Creates the indices (i,j) for the coefficients of global sparse matrices.
void SetIterativeSparseTopology (SymmetricSparse &SPAItM, SymmetricSparse &SPAItK)
 Creates the indices (i,j) for the coefficients of global sparse matrices.
void AssemblingGlbLoadVector (LoadSet &LoadSets, unsigned long LoadSetNumber, double t=0)
 Assembles the global load vector for all loads applied in finite element entities (nodes, edges, faces, element) and geometrical entities (keypoints, lines and surfaces). This method is not applied for pressure following loads.
void AssemblingGlbNonLinearPressureVector (unsigned long LoadSets, unsigned long LoadSetNumber, unsigned long Delta)
 Assembling the pressure vector for all loads applied on nodes, lines, surfaces and volumes in local coordinate system. This method is applied to non-linear pressure following loads only.
void AssemblingGlbPressureVector (unsigned long LoadSets, unsigned long LoadSetNumber)
 Assembling the pressure vector for all loads applied on nodes, lines, surfaces and volumes in the element coordinate system. This method is applied to linear pressure loads only.
void AssemblingGlbContactData (LoadSet &LoadSets, unsigned long LoadSetNumber)
 Assembling the Contact Data.
void AssemblingGlobalStiffnessMatrix ()
 Method to calculate the element stiffness matrices and assemble them in the sparse global stiffness matrix.
void AssemblingGlobalNonLinearStiffnessMatrix ()
 Method to calculate the element tangent stiffness matrices and assemble them in the sparse global tangent stiffness matrix for the NR method.
void AssemblingGlobalContactStiffnessMatrix (LoadSet &LoadSets, unsigned long LoadSetNumber)
 Method to calculate the contact stiffness matrices and assemble them in the sparse global tangent stiffness matrix for the NR method.
void AssemblingGlobalStiffnessMatrixLoadVector ()
 Method to calculatethe element stiffness matrices and body load vectors and assemble them in the sparse global stiffness matrix and global load vector for pressure following loads.
void AssemblingGlobalMassMatrix ()
 Method to calculate the element mass matrices and assemble them in the sparse global mass matrix.
void AssemblingGlobalEffectiveMatrix ()
 Method to calculate the element effective matrices and assemble them in the sparse global effective matrix.
void ApplyNHDirichletBCLinear (double DeltaInc, unsigned short Iter=0)
 Apply the non-homogeneous Dirichlet boundary condition to linear problems.
void ApplyNHDirichletBCNonLinear ()
 Apply the non-homogeneous Dirichlet boundary condition for nonlinear problems.
void LinearSystemSolution (SymmetricSparse &A, double *F, unsigned long LSNum)
 Solves the linear system according to the chose algorithm.
void LinearSystemSolution (SymmetricSparse &A, double *b, unsigned long LSNum, double *x)
 Solves the linear system according to the chose algorithm.
void LinearSystemSolution (SymmetricSparse &A, double *b, unsigned long LSNum, Vector &x, unsigned long &NIT, double &NormResidual)
 Solves the linear system according to the chose algorithm.

Protected Attributes

SymmetricSparse StiffMatrix
 Global sparse stiffness matrix.
SymmetricSparse MassMatrix
 Global sparse mass matrix.
SymmetricSparse EffMatrix
 Effective matrix used for dynamic problems.

Detailed Description

Class for the global FE solver.

Author:
Marco Lucio Bittencourt/ Fabiano Fernandes Bargos
Date:
April/18/2011

Constructor & Destructor Documentation

Copy-initializer constructor. Copies the contents of Instance to the current object,.

Parameters:
[in]Instance- instance of the solver class.
Returns:
Reference to the current object.

Member Function Documentation

void GlobalSolver::ApplyNHDirichletBCLinear ( double  DeltaInc,
unsigned short  Iter = 0 
) [protected]

Apply the non-homogeneous Dirichlet boundary condition to linear problems.

Parameters:
[in]DeltaInc- the intensity of the BC increment.
[in]Iter- Iteration flag for nonlinear problems. If 0 (default), prescribes the intensity of the BC increment value. If 1, prescribes the value 0.
void GlobalSolver::AssemblingGlbContactData ( LoadSet LoadSets,
unsigned long  LoadSetNumber 
) [protected]

Assembling the Contact Data.

Parameters:
[in]LoadSets-Instance of LoadSets.
[in]LoatSetNumber- the actual Load Set.
void GlobalSolver::AssemblingGlbLoadVector ( LoadSet LoadSets,
unsigned long  LoadSetNumber,
double  t = 0 
) [protected]

Assembles the global load vector for all loads applied in finite element entities (nodes, edges, faces, element) and geometrical entities (keypoints, lines and surfaces). This method is not applied for pressure following loads.

Parameters:
[in]LoadSets-Instance of LoadSets.
[in]LoatSetNumber- the actual Load Set.
[in]t- time step.
void GlobalSolver::AssemblingGlbNonLinearPressureVector ( unsigned long  LoadSets,
unsigned long  LoadSetNumber,
unsigned long  Delta 
) [protected]

Assembling the pressure vector for all loads applied on nodes, lines, surfaces and volumes in local coordinate system. This method is applied to non-linear pressure following loads only.

Parameters:
[in]LoadSets-Instance ofr LoadSets.
[in]LoatSetNumber- the actual Load Set.
void GlobalSolver::AssemblingGlbPressureVector ( unsigned long  LoadSets,
unsigned long  LoadSetNumber 
) [protected]

Assembling the pressure vector for all loads applied on nodes, lines, surfaces and volumes in the element coordinate system. This method is applied to linear pressure loads only.

Parameters:
[in]LoadSets-Instance of LoadSets.
[in]LoatSetNumber- the actual Load Set.
void GlobalSolver::AssemblingGlobalContactStiffnessMatrix ( LoadSet LoadSets,
unsigned long  LoadSetNumber 
) [protected]

Method to calculate the contact stiffness matrices and assemble them in the sparse global tangent stiffness matrix for the NR method.

Parameters:
[in]LoadSets-Instance of LoadSets.
[in]LoatSetNumber- the actual Load Set.

Method to calculate the element mass matrices and assemble them in the sparse global mass matrix.

end for over the number os equations

end for over the number os equations

Evaluate displacement, velocity and acceleration in time using the explicit Central Difference Method in its global form.

Parameters:
[in]LoatSetNumber- the actual Load Set.
void GlobalSolver::DynamicLinearSolver ( ) [protected]

Runs the linear dynamic analysis using explicit CD method or the implicit Newmark method.

Displacements

Velocities

void GlobalSolver::LinearSystemSolution ( SymmetricSparse A,
double *  F,
unsigned long  LSNum 
) [protected]

Solves the linear system according to the chose algorithm.

Parameters:
[in]A- matrix.
[in]F- vector.
void GlobalSolver::LinearSystemSolution ( SymmetricSparse A,
double *  b,
unsigned long  LSNum,
double *  x 
) [protected]

Solves the linear system according to the chose algorithm.

Parameters:
[in]A- matrix.
[in]b- vector.
[out]x- Solution vector
void GlobalSolver::LinearSystemSolution ( SymmetricSparse A,
double *  b,
unsigned long  LSNum,
Vector x,
unsigned long &  NIT,
double &  NormResidual 
) [protected]

Solves the linear system according to the chose algorithm.

Parameters:
[in]A- matrix.
[in]b- vector.
[out]x- Solution vector
[out]NIT- Number of iterations
[out]NormResidual- Norm of the residual
void GlobalSolver::NewmarkGlobalMethod ( ) [protected]

Evaluate displacement, velocity and acceleration in time using the implicit Newmark Method in its global form.

Parameters:
[in]LoatSetNumber- the actual Load Set.

Newton-Raphson method used to solve a contact model.

Kt * IncU = Fe - Fint U = U + incU. where Kt is the tangent matrix, incU is the increment of primary variables, Fe is the external load vector and Fint is the internal forces for the internal stresses.

void GlobalSolver::NewtonRaphsonSolver ( ) [protected]

Newton-Raphson method used to solve a non-linear model.

Kt * IncU = Fe - Fint U = U + incU. where Kt is the tangent matrix, incU is the increment of primary variables, Fe is the external load vector and Fint is the internal forces for the internal stresses.

GlobalSolver & GlobalSolver::operator= ( GlobalSolver Instance)

Copies the contents of Instance to the current object,.

Parameters:
[in]Instance- instance of the solver class.
Returns:
Reference to the current object.
void GlobalSolver::SetIterativeSparseTopology ( SymmetricSparse SPAIt,
unsigned long  NoBCFlag = 0 
) [protected]

Creates the indices (i,j) for the coefficients of global sparse matrices.

Parameters:
[in]GlobalMatrix.
[in]NoBCFlag- flag to store the size of the matrix, if 0 it stores only the free DOFs, if 1 it stores all DOFs.

Use the information stored in table EquationEquation to define the (i,j) indices for the non-zero coefficients of the sparse global matrix.

void GlobalSolver::SetIterativeSparseTopology ( SymmetricSparse SPAItM,
SymmetricSparse SPAItK 
) [protected]

Creates the indices (i,j) for the coefficients of global sparse matrices.

Parameters:
[in]Globalmass matrix.
[in]Globalstiffness matrix.

Use the information stored in table EquationEquation to define the (i,j) indices for the non-zero coefficients of the sparse global matrix.


The documentation for this class was generated from the following files:
 All Classes Files Functions Variables Typedefs Friends Defines