hp2FEM
0.1
|
Store the main finite element attributes and implement the element operators. More...
#include <FiniteElement.h>
Public Member Functions | |
FiniteElement () | |
Default constructor (without parameters). | |
FiniteElement (FiniteElement &Instance, ElementShape_E ElementShape, ProblemType_E ProblemType, unsigned long MaxSolutionOrder, unsigned long Dim, unsigned long MappingOrder, CalculationProcedure_E CalculationProcedure=STANDARD, MeshType_E MeshType=NON_STRUCTURED, Kinematics_E Kinematics=INFINITE, StrainMeasure_E StrainMeasure=INFINITES, FiniteFormulation_E FiniteFormulation=INFINITESIMAL, pMesh_E pMeshDistribution=pUNIFORM, MappingType_E MappingType=ISOPARAMETRIC, MassStiffType_E MassType=CONSIST, StiffnessType_E StiffType=CONSISTENT, MaterialType_E MatType=HOOKE) | |
Constructor with parameters. | |
FiniteElement (FiniteElement &Instance) | |
Copy-initializer constructor. | |
~FiniteElement () | |
Destructor. | |
FiniteElement & | operator= (FiniteElement &Instance) |
Copies the contents of instance to the object. | |
operator GradientMeasure & () | |
Cast operator for the reference of the class attribute "GM". | |
operator ShapeFunctions & () | |
Cast operator for the reference of the class attribute "SF". | |
void | Print (FILE *File) |
Prints to the ASCII file the main attributes of the finite element. | |
FiniteElementAttributes_S & | GetFiniteElementAttributes () |
returns the finite element attributes. | |
void | SetFiniteElementAttributes (FiniteElementAttributes_S &FiniteElementAttributes) |
Sets the class attributes input in an instance of FiniteElementAttributes_S instance. | |
void | SetFiniteElementAttributes (ElementShape_E ElementShape, ProblemType_E ProblemType, unsigned long MaxSolutionOrder, unsigned long Dim, CalculationProcedure_E CalculationProcedure, MeshType_E MeshType, Kinematics_E Kinematics, StrainMeasure_E StrainMeasure, FiniteFormulation_E FiniteFormulation, pMesh_E pMeshDistribution, MappingType_E MappingType, unsigned long MappingOrder, MassStiffType_E MassType, StiffnessType_E StiffType, MaterialType_E MatType) |
Sets the class attributes as input parameters to be stored in the FiniteElementAttributes_S instance. | |
unsigned long | GetMaxNumberElemDOFs () |
unsigned long | GetMaxNumberElemPDOFs () |
void | GetMassMatrix (unsigned long ElementNumber, unsigned long ElementOrder, unsigned long NumElemCoordinates, double *ElementCoordinates, Mapping &ElementMapping, GeometricProperties &GeoProp, SymmetricMatrix &MassMatrix, double &ElementMeasure, double Density=1) |
Returns the element mass matrix. | |
void | GetLocalMassMatrix (unsigned long ElementNumber, unsigned long ElementOrder, unsigned long NumElemCoordinates, double *ElementCoordinates, GeometricProperties &GeoProp, SymmetricMatrix &MassMatrix, double Density=1) |
Returns the element mass matrix. | |
void | GetLinearStiffnessMatrix (unsigned long ElementNumber, unsigned long ElementOrder, Mapping &ElementMapping, GeometricProperties &GeoProp, Material &Mater, unsigned long NumElemCoordinates, double *ElementCoordinates, SymmetricMatrix &StiffnessMatrix, double *Fe=NULL) |
Returns the element stiffness matrix. | |
void | GetTangentStiffnessMatrix (unsigned long ElementNumber, unsigned long ElementOrder, unsigned long NumElemCoordinates, double *ElementCoordinatesi, double *ElementCoordinatesc, Mapping &ElementMap, GeometricProperties &GeoProp, Material &Mater, SymmetricMatrix &StiffnessMatrix, Vector &InternalForce) |
Returns the element tangent stiffness matrix. | |
void | GetDTangentStiffnessMatrix (unsigned long ElementNumber, unsigned long ElementOrder, unsigned long NumElemCoordinates, double *ElementCoordinatesi, double *ElementCoordinatesc, Mapping &ElementMap, GeometricProperties &GeoProp, Material &Mater, SymmetricMatrix &StiffnessMatrix, Vector &InternalForce, Vector &Damage) |
Returns the element tangent stiffness matrix. | |
void | GetQITangentStiffnessMatrix (unsigned long ElementNumber, unsigned long DisplacementOrder, unsigned long NumElemCoordinates, double *ElementCoordinatesi, double *ElementCoordinatesc, Mapping &ElementMap, GeometricProperties &GeoProp, Material &Mater, SymmetricMatrix &StiffnessMatrix, Vector &InternalForce) |
This method calculates the tangent stiffness matrix for a quasi-incompressible problem using the pressure projection procedure. | |
void | GetDQITangentStiffnessMatrix (unsigned long ElementNumber, unsigned long DisplacementOrder, unsigned long NumElemCoordinates, double *ElementCoordinatesi, double *ElementCoordinatesc, Mapping &ElementMap, GeometricProperties &GeoProp, Material &Mater, SymmetricMatrix &StiffnessMatrix, Vector &InternalForce, Vector &Damage) |
This method calculates the tangent stiffness matrix for a quasi-incompressible problem using the pressure projection procedure. | |
void | GetPbar (unsigned long NumIntPoints, double kappa, double *Jacobi, double *detJi, double *Jacobc, Vector &pbar) |
This operation returns the displacement calculated hidrostatic pressure, employed for quasi-incompressible materials. | |
void | GetPproj (unsigned long ElemNum, double kappa, unsigned long DisplacementOrder, unsigned long PressureOrder, unsigned long NumElemCoords, double *ElemCoords, double *ElemCoords1, double *ShapeFunctions, unsigned long NumberSFU, unsigned long NumberSFP, double *Weights, unsigned long NumIntPoints, double *Jacobi, double *detJi, double *Jacobc) |
| |
void | GetInternalForceVector (unsigned long ElementNumber, unsigned long ElementOrder, unsigned long NumElemCoords, double *ElementCoordinates, Mapping &ElementMapping, GeometricProperties &GeoProp, Material &Mater, double *Ue, double *Fe) |
Returns the internal force vector given the element solution. | |
void | GetEdgeLoad (unsigned long ElementNumber, unsigned long ElementOrder, LoadIntensity &Load, Mapping &ElementMapping, unsigned long NumElemCoords, double *ElementCoordinates, unsigned long LocalEdge, double *Fe) |
Calculates the equivalent nodal load forf an edge distributed load. | |
void | GetFaceLoad (unsigned long ElementNumber, unsigned long ElementOrder, LoadIntensity &Load, unsigned long NumElemCoords, double *ElementCoordinates, Mapping &ElementMapping, unsigned long LocalFace, double *Fe) |
Calculates the equivalent nodal load vector fro a face distributed load. | |
void | GetBodyLoadVector (unsigned long ElementNumber, unsigned long ElementOrder, LoadIntensity &Load, unsigned long NumElemCoordinates, double *ElementCoordinates, Mapping &ElementMapping, double *Fe, double t=0) |
Returns the equivalent nodal load vector for a body load. | |
void | GetEdgePressure (unsigned long ElementNumber, unsigned long ElementOrder, LoadIntensity &Load, unsigned long NumElemCoords, double *ElementCoordinates, Mapping &ElementMapping, double *Fe) |
Calculates the equivalent nodal load of an edge pressure load. | |
void | GetFacePressure (unsigned long ElementNumber, unsigned long ElementOrder, LoadIntensity &Load, unsigned long NumElemCoords, double *ElementCoordinates, Mapping &ElementMapping, double *Fe) |
Calculates the equivalent nodal load of a face pressure load. | |
void | GetEdgePressureStiffnessMatrix (unsigned long ElementNumber, unsigned long ElementOrder, unsigned long NumberEdgeNodes, LoadIntensity &Load, unsigned long NumElemCoords, double *ElementCoordinates, Mapping &ElementMapping, SymmetricMatrix &Ke, double *Fe) |
Computes the element edge pressure stiffness matrix. | |
void | GetFacePressureStiffnessMatrix (unsigned long ElementNumber, unsigned long ElementOrder, unsigned long NumberFaceNodes, LoadIntensity &Load, unsigned long NumElemCoords, double *ElementCoordinates, Mapping &ElementMapping, SymmetricMatrix &Ke, double *Fe) |
Computes the element face pressure stiffness matrix. | |
void | Run1DLocalMatrices (BuiltInArray< unsigned long > &ElementOrder) |
Calculates the 1D mass, stiffness and mixed matrices for each integration point and element order. | |
double * | Get1DLocalMassMatrix (unsigned long ElementOrder, unsigned long IntegOrder, unsigned long &TotalNumberSF, unsigned long &MatrixOrder, unsigned long &NumberIP) |
Returns the 1D mass matrix stored for each integration point for a given element order. | |
double * | Get1DLocalStiffnessMatrix (unsigned long ElementOrder, unsigned long IntegOrder, unsigned long &TotalNumberSF, unsigned long &MatrixOrder, unsigned long &NumberIP) |
Returns the 1D stifness matrix stored for each integration point for a given element order. | |
double * | Get1DLocalMixedMatrix (unsigned long ElementOrder, unsigned long IntegOrder, unsigned long &TotalNumberSF, unsigned long &MatrixOrder, unsigned long &NumberIP) |
Returns the 1D mixed matrix stored for each integration point for a given element order. | |
double * | Interpolation (Vector &UeSol, unsigned long CoefOrder, unsigned long PosOrder, unsigned long &UePosSize) |
Calculates the local solution vector to the post processing mesh. | |
Protected Member Functions | |
void | Run1DLocalMatrices_copy () |
Calculates the 1D mass, stiffness and mixed matrices for each integration point and element order. | |
Protected Attributes | |
FiniteElementAttributes_S | FEAtr |
This variable stores a struct with all attributes of the FiniteElement class (Element shape, problem type, number of degrees of freedom, maximum polynomial order, calculation procedure, mesh type, kinematic consideration, strain measure, finite formulation, p-uniform or nonuniform mesh type, Mass type and Stiffness type). | |
TwoIndexTable< double > | Local1DMassMatrix |
Stores the local 1D mass matrix for each element order and calculated for each integration point. These matrices are used for calculation procedure 1D_MATRICES. | |
TwoIndexTable< double > | Local1DStiffMatrix |
Stores the local 1D stiffness matrix for each element order and calculated for each integration point. These matrices are used for calculation procedure 1D_MATRICES. | |
TwoIndexTable< double > | Local1DMixedMatrix |
Stores the local 1D non-symmetric mixed matrix for each element order and calculated for each integration point. These matrices are used for calculation procedure 1D_MATRICES. | |
GradientMeasure | GM |
Instance of GradientMeasure class which calculates the strain measures (deformation matrices) for the considered problem. | |
ShapeFunctions | SF |
Instance of ShapeFunctions class which store the collocation points, integration poins and values of shape functions and dreivatives. | |
Matrix | F |
Deformation gradient tensor. | |
Matrix | gradU |
Displacement gradient tensor. | |
SymmetricMatrix | S |
Stress tensor. | |
Vector | Sv |
Stress tensor, stored in vector form. | |
SymmetricMatrix | E |
Deformation tensor. | |
Vector | Ev |
Deformation tensor stored in vector format. | |
SymmetricMatrix | DMatrix |
Elasticity matrix, with material properties. | |
Matrix | BMatrix |
Strain displacement matrix, stored as a class variable. | |
Matrix | NLBMatrix |
Non-linear displacement matrix, used for finite strain analyses. | |
Matrix | ISBMatrix |
Initial stress B Matrix. | |
Vector | dJdE |
| |
Vector | GVector |
| |
Vector | AuxSF |
| |
Vector | DispP |
Displacement calculated pressure. This is a variable used for problems involving incompressible materials. | |
Vector | ProjP |
Projected hydrostatic pressure. This is a variable used for problems involving incompressible materials. | |
Vector | Pcoefs |
Pressure coefficients. They are the nodal pressures when using a nodal basis, and the pressure modes when using a modal basis. | |
Vector | Auxv |
General purpose auxiliary vector. | |
SymmetricMatrix | Ke |
Element stiffness matrix stored as a class variable. | |
SymmetricMatrix | Kteaux |
SymmetricMatrix | Me |
Element mass matrix stored as a class variable. | |
SymmetricMatrix | Meaux |
Element mass matrix stored as a class variable. | |
SymmetricMatrix | Kte |
Element tangent stiffness matrix, stored as a class variable. | |
Matrix | Kp |
Matrix | Kpaux |
Matrix | Kpaux1 |
Vector | Re |
Vector | Rhs |
Right hand side vector used for the pressure projection procedure. | |
Vector | UePos |
OneIndexTable< double > | Mpq |
Table with the sum of all 1DLocalMassMatrices for the integration points, for each element order. This Table is used when the mesh is structured, thus allowing the product with the constant element jacobian. | |
OneIndexTable< double > | Kpq |
Table with the sum of all 1DLocalStiffnessMatrices for the integration points, for each element order. This Table is used when the mesh is structured, thus allowing the product with the constant element jacobian. | |
OneIndexTable< double > | Dpq |
Table with the sum of all 1DLocalMixedMatrices for the integration points, for each element order. This Table is used when the mesh is structured, thus allowing the product with the constant element jacobian. | |
BuiltInArray< long > | ElementOrderSets |
This array has size for the maximum number of element order value. This array indicates the row number of the 1D matrices table that store the shape functions for each integration point. As the array is allocated for the maximum element order, some positions may not be used. In this case, this array will store -1. | |
BuiltInArray< unsigned long > | SFIncid |
This is an auxiliary array for appropriate shape function indexing when using modal bases. It is used for edge and face loads. If the problem is two-dimensional it is only allocated with the size of line shape functions. If the problem is three-dimensional, we allocate it with the number of square shape functions, because face loads may be applied. |
Store the main finite element attributes and implement the element operators.
FiniteElement::FiniteElement | ( | FiniteElement & | Instance, |
ElementShape_E | ElementShape, | ||
ProblemType_E | ProblemType, | ||
unsigned long | MaxSolutionOrder, | ||
unsigned long | Dim, | ||
unsigned long | MappingOrder, | ||
CalculationProcedure_E | CalculationProcedure = STANDARD , |
||
MeshType_E | MeshType = NON_STRUCTURED , |
||
Kinematics_E | Kinematics = INFINITE , |
||
StrainMeasure_E | StrainMeasure = INFINITES , |
||
FiniteFormulation_E | FiniteFormulation = INFINITESIMAL , |
||
pMesh_E | pMeshDistribution = pUNIFORM , |
||
MappingType_E | MappingType = ISOPARAMETRIC , |
||
MassStiffType_E | MassType = CONSIST , |
||
StiffnessType_E | StiffType = CONSISTENT , |
||
MaterialType_E | MatType = HOOKE |
||
) |
Constructor with parameters.
[in] | NDOFs | - Number of degrees of freedom per node. |
[in] | Pmax | - maximum polynomial order. |
[in] | ElementShape | - shape of the finite element. |
[in] | ProblemType | - problem type for the analysis |
[in] | CalculationProcedure | - calculation procedure for the finite element operators (STANDARD or 1D_MATRICES). |
[in] | MeshType | - mesh type which can be UNIFORM, NON_UNIFORM and UNSTRUCTURED. |
[in] | Kinematics | - type of kinematics for the element between infinitesimal or finite. |
[in] | StrainMeasure | - type of strain measure used by the element. |
[in] | FiniteFormulation | - type of finite element formulation for non-linear analysis. |
[in] | pMeshDistribution | - distribution of element orders in the mesh. |
[in] | MassType | - type of mass matrix construction. |
[in] | StiffType | - type of stiffness matrix construction. |
[in] | MatType | - material type used for the analysis. |
FiniteElement::FiniteElement | ( | FiniteElement & | Instance | ) |
Copy-initializer constructor.
[in] | Instance | - instance of the finite element class. |
double * FiniteElement::Get1DLocalMassMatrix | ( | unsigned long | ElementOrder, |
unsigned long | IntegOrder, | ||
unsigned long & | TotalNumberSF, | ||
unsigned long & | MatrixOrder, | ||
unsigned long & | NumberIP | ||
) |
Returns the 1D mass matrix stored for each integration point for a given element order.
[in] | ElementOrder: element interpolation order. | |
[in] | IntegOrder: integrand order. | |
[out] | TotalNumberSF: Total number of shape functions. | |
[out] | MatrixOrder: matrix order for each integration point. |
[out]: NumberIP: number of integration points.
double * FiniteElement::Get1DLocalMixedMatrix | ( | unsigned long | ElementOrder, |
unsigned long | IntegOrder, | ||
unsigned long & | TotalNumberSF, | ||
unsigned long & | MatrixOrder, | ||
unsigned long & | NumberIP | ||
) |
Returns the 1D mixed matrix stored for each integration point for a given element order.
[in] | ElementOrder: element interpolation order. | |
[in] | IntegOrder: integrand order. | |
[out] | TotalNumberSF : Total number of shape functions. | |
[out] | MatrixOrder: matrix order for each integration point. |
[out]: NumberIP: number of integration points.
double * FiniteElement::Get1DLocalStiffnessMatrix | ( | unsigned long | ElementOrder, |
unsigned long | IntegOrder, | ||
unsigned long & | TotalNumberSF, | ||
unsigned long & | MatrixOrder, | ||
unsigned long & | NumberIP | ||
) |
Returns the 1D stifness matrix stored for each integration point for a given element order.
[in] | ElementOrder: element interpolation order. | |
[in] | IntegOrder: integrand order. | |
[out] | TotalNumberSF : Total number of shape functions. | |
[out] | MatrixOrder: matrix order for each integration point. |
[out]: NumberIP: number of integration points.
void FiniteElement::GetBodyLoadVector | ( | unsigned long | ElementNumber, |
unsigned long | ElementOrder, | ||
LoadIntensity & | Load, | ||
unsigned long | NumElemCoordinates, | ||
double * | ElementCoordinates, | ||
Mapping & | ElementMapping, | ||
double * | Fe, | ||
double | t = 0 |
||
) |
Returns the equivalent nodal load vector for a body load.
[in] | ElementNumber | - global element number. |
[in] | ElementOrder | - order of interpolation functions for the element. |
[in] | ElementMapping | - instance of Mapping with the Jacobian for each integration point. |
[in] | Load | - Instance of LoadIntensity class with load attributes. |
[in] | ElementCoordinates | - array with the nodal coordinates of the element stored in the format (X,Y,Z) for each node. |
[out] | Fe | - element load vector stored in a double array. |
[in] | t | - time for dynamic analysis |
void FiniteElement::GetDQITangentStiffnessMatrix | ( | unsigned long | ElementNumber, |
unsigned long | DisplacementOrder, | ||
unsigned long | NumElemCoordinates, | ||
double * | ElementCoordinatesi, | ||
double * | ElementCoordinatesc, | ||
Mapping & | ElementMap, | ||
GeometricProperties & | GeoProp, | ||
Material & | Mater, | ||
SymmetricMatrix & | StiffnessMatrix, | ||
Vector & | InternalForce, | ||
Vector & | Damage | ||
) |
This method calculates the tangent stiffness matrix for a quasi-incompressible problem using the pressure projection procedure.
[in] | ElementNumber | - global element number. |
[in] | DisplacementOrder | - order of displacement interpolation functions for the element. |
[in] | NumElemCoordinatess | - number of element coordinates. |
[in] | ElementCoordinatesi | - Initial Element Coordinates. |
[in] | ElementCoordinatesc | - Current element coordinates. |
[in] | ElementMap | - instance of Mapping with the Jacobian for each integration point. |
[in] | GeoProp | - instance of GeometricProperties. |
[in] | Mater | - instance of the material class. |
[out] | StiffMatrix | - element stiffness matrix stored in the SymmetricMatrix class. |
[out] | Fe | - element internal load vector stored in a double array. |
[out] | Damage | - damage calculated at the integration points. |
void FiniteElement::GetDTangentStiffnessMatrix | ( | unsigned long | ElementNumber, |
unsigned long | ElementOrder, | ||
unsigned long | NumElemCoordinates, | ||
double * | ElementCoordinatesi, | ||
double * | ElementCoordinatesc, | ||
Mapping & | ElementMap, | ||
GeometricProperties & | GeoProp, | ||
Material & | Mater, | ||
SymmetricMatrix & | StiffnessMatrix, | ||
Vector & | InternalForce, | ||
Vector & | Damage | ||
) |
Returns the element tangent stiffness matrix.
Returns the element stiffness matrix.
[in] | ElementNumber | - global element number. |
[in] | ElementOrder | - order of interpolation functions for the element. |
[in] | NumElemCoordinatess | - number of element coordinates. |
[in] | ElementCoordinatesi | - Initial Element Coordinates. |
[in] | ElementCoordinatesc | - Current element coordinates. |
[in] | ElementMap | - instance of Mapping with the Jacobian for each integration point. |
[in] | GeoProp | - instance of GeometricProperties. |
[in] | Mater | - instance of the material class. |
[out] | StiffMatrix | - element stiffness matrix stored in the SymmetricMatrix class. |
[out] | Fe | - element internal load vector stored in a double array. |
[out] | Damage | - damage calculated at the integration points. |
void FiniteElement::GetEdgeLoad | ( | unsigned long | ElementNumber, |
unsigned long | ElementOrder, | ||
LoadIntensity & | Load, | ||
Mapping & | ElementMapping, | ||
unsigned long | NumElemCoords, | ||
double * | ElementCoordinates, | ||
unsigned long | LocalEdge, | ||
double * | Fe | ||
) |
Calculates the equivalent nodal load forf an edge distributed load.
[in] | ElementNumber | - global element number. |
[in] | ElementOrder | - order of interpolation functions for the element. |
[in] | ElementMapping | - instance of Mapping with the Jacobian for each integration point. |
[in] | Load | - Instance of LoadIntensity class with load attributes. |
[in] | ElementCoordinates | - array with the nodal coordinates of the element stored in the format (X,Y,Z) for each node. |
[in] | LocalEdge | - Local edge to perform correction on shape functions for modal bases. |
[out] | Fe | - element load vector stored in a double array. |
void FiniteElement::GetEdgePressure | ( | unsigned long | ElementNumber, |
unsigned long | ElementOrder, | ||
LoadIntensity & | Load, | ||
unsigned long | NumElemCoords, | ||
double * | ElementCoordinates, | ||
Mapping & | ElementMapping, | ||
double * | Fe | ||
) |
Calculates the equivalent nodal load of an edge pressure load.
[in] | ElementNumber | - global element number. |
[in] | ElementOrder | - order of interpolation functions for the element. |
[in] | ElementMapping | - instance of Mapping with the Jacobian for each integration point. |
[in] | Load | - Instance of LoadIntensity class with load attributes. |
[in] | ElementCoordinates | - array with the nodal coordinates of the element stored in the format (X,Y,Z) for each node. |
[out] | Fe | - element load vector stored in a double array. |
void FiniteElement::GetEdgePressureStiffnessMatrix | ( | unsigned long | ElementNumber, |
unsigned long | ElementOrder, | ||
unsigned long | NumberEdgeNodes, | ||
LoadIntensity & | Load, | ||
unsigned long | NumElemCoords, | ||
double * | ElementCoordinates, | ||
Mapping & | ElementMapping, | ||
SymmetricMatrix & | Ke, | ||
double * | Fe | ||
) |
Computes the element edge pressure stiffness matrix.
[in] | ElementNumber | - global element number. |
[in] | ElementOrder | - order of interpolation functions for the element. |
[in] | ElementMapping | - instance of Mapping with the Jacobian for each integration point. |
[in] | Load | - Instance of LoadIntensity class with load attributes. |
[in] | ElementCoordinates | - array with the nodal coordinates of the element stored in the format (X,Y,Z) for each node. |
[out] | Ke | - element stiffness matrix related to the pressure follower load. |
[out] | Fe | - element load vector stored in a double array. |
void FiniteElement::GetFaceLoad | ( | unsigned long | ElementNumber, |
unsigned long | ElementOrder, | ||
LoadIntensity & | Load, | ||
unsigned long | NumElemCoords, | ||
double * | ElementCoordinates, | ||
Mapping & | ElementMapping, | ||
unsigned long | LocalFace, | ||
double * | Fe | ||
) |
Calculates the equivalent nodal load vector fro a face distributed load.
[in] | ElementNumber | - global element number. |
[in] | ElementOrder | - order of interpolation functions for the element. |
[in] | ElementMapping | - instance of Mapping with the Jacobian for each integration point. |
[in] | Load | - Instance of LoadIntensity class with load attributes. |
[in] | ElementCoordinates | - array with the nodal coordinates of the element stored in the format (X,Y,Z) for each node. |
[in] | LocalFace | - local element face. |
[out] | Fe | - element load vector stored in a double array. |
void FiniteElement::GetFacePressure | ( | unsigned long | ElementNumber, |
unsigned long | ElementOrder, | ||
LoadIntensity & | Load, | ||
unsigned long | NumElemCoords, | ||
double * | ElementCoordinates, | ||
Mapping & | ElementMapping, | ||
double * | Fe | ||
) |
Calculates the equivalent nodal load of a face pressure load.
[in] | ElementNumber | - global element number. |
[in] | ElementOrder | - order of interpolation functions for the element. |
[in] | ElementMapping | - instance of Mapping with the Jacobian for each integration point. |
[in] | Load | - Instance of LoadIntensity class with load attributes. |
[in] | ElementCoordinates | - array with the nodal coordinates of the element stored in the format (X,Y,Z) for each node. |
[out] | Fe | - element load vector stored in a double array. |
void FiniteElement::GetFacePressureStiffnessMatrix | ( | unsigned long | ElementNumber, |
unsigned long | ElementOrder, | ||
unsigned long | NumberFaceNodes, | ||
LoadIntensity & | Load, | ||
unsigned long | NumElemCoords, | ||
double * | ElementCoordinates, | ||
Mapping & | ElementMapping, | ||
SymmetricMatrix & | Ke, | ||
double * | Fe | ||
) |
Computes the element face pressure stiffness matrix.
[in] | ElementNumber | - global element number. |
[in] | ElementOrder | - order of interpolation functions for the element. |
[in] | ElementMapping | - instance of Mapping with the Jacobian for each integration point. |
[in] | Load | - Instance of LoadIntensity class with load attributes. |
[in] | ElementCoordinates | - array with the nodal coordinates of the element stored in the format (X,Y,Z) for each node. |
[out] | Ke | - element stiffness matrix related to the pressure follower load. |
[out] | Fe | - element load vector stored in a double array. |
returns the finite element attributes.
void FiniteElement::GetInternalForceVector | ( | unsigned long | ElementNumber, |
unsigned long | ElementOrder, | ||
unsigned long | NumElemCoords, | ||
double * | ElementCoordinates, | ||
Mapping & | ElementMapping, | ||
GeometricProperties & | GeoProp, | ||
Material & | Mater, | ||
double * | Ue, | ||
double * | Fe | ||
) |
Returns the internal force vector given the element solution.
[in] | ElementNumber | - global element number. |
[in] | ElementOrder | - order of interpolation functions for the element. |
[in] | ElementMapping | - instance of Mapping with the Jacobian for each integration point. |
int] | Ue - array with the element solution stored in a double array. | |
[out] | Fe | - element internal load vector stored in a double array. |
void FiniteElement::GetLinearStiffnessMatrix | ( | unsigned long | ElementNumber, |
unsigned long | ElementOrder, | ||
Mapping & | ElementMapping, | ||
GeometricProperties & | GeoProp, | ||
Material & | Mater, | ||
unsigned long | NumElemCoordinates, | ||
double * | ElementCoordinates, | ||
SymmetricMatrix & | StiffnessMatrix, | ||
double * | Fe = NULL |
||
) |
Returns the element stiffness matrix.
[in] | ElementNumber | - global element number. |
[in] | ElementOrder | - order of interpolation functions for the element. |
param[in] ElementMapping - instance of Mapping with the Jacobian for each integration point.
[in] | GeometricProperties | - instance with some geometric properties regarding the analysis. |
[in] | Mater | - instance of material, storing properties. |
[in] | NumElemCoords | - number of element cordinates. |
[in] | ElementCoordinates | - Element Coordinates. |
[out] | StiffMatrix | - element stiffness matrix stored in the SymmetricMatrix class. |
[out] | Fe | - element load vector stored in a double array. |
void FiniteElement::GetLocalMassMatrix | ( | unsigned long | ElementNumber, |
unsigned long | ElementOrder, | ||
unsigned long | NumElemCoordinates, | ||
double * | ElementCoordinates, | ||
GeometricProperties & | GeoProp, | ||
SymmetricMatrix & | MassMatrix, | ||
double | Density = 1 |
||
) |
Returns the element mass matrix.
[in] | ElementNumber | - global element number. |
[in] | ElementOrder | - order of interpolation functions for the element. |
[in] | NumElemCoordinates | - number of element coordinates. |
[in] | ElemCoordinates | - Element Coordinates. |
param[in] GeometricProperties - instance with some geometric properties regarding the analysis.
[out] | MassMatrix | - element mass matrix stored in the SymmetricMatrix class. |
[in] | Density | - material density. |
void FiniteElement::GetMassMatrix | ( | unsigned long | ElementNumber, |
unsigned long | ElementOrder, | ||
unsigned long | NumElemCoordinates, | ||
double * | ElementCoordinates, | ||
Mapping & | ElementMapping, | ||
GeometricProperties & | GeoProp, | ||
SymmetricMatrix & | MassMatrix, | ||
double & | ElementMeasure, | ||
double | Density = 1 |
||
) |
Returns the element mass matrix.
[in] | ElementNumber | - global element number. |
[in] | ElementOrder | - order of interpolation functions for the element. |
[in] | NumElemCoordinates | - number of element coordinates. |
[in] | ElemCoordinates | - Element Coordinates. |
[in] | ElementMapping | - instance of Mapping with the Jacobian for each integration point. |
[in] | GeometricProperties | - instance with some geometric properties regarding the analysis. |
[out] | MassMatrix | - element mass matrix stored in the SymmetricMatrix class. |
[in] | Density | - material density. |
unsigned long FiniteElement::GetMaxNumberElemDOFs | ( | ) |
@ brief Returns the number of DOFs for the element.
unsigned long FiniteElement::GetMaxNumberElemPDOFs | ( | ) |
@ brief Returns the number of pressure DOFs for the element.
void FiniteElement::GetPbar | ( | unsigned long | NumIntPoints, |
double | kappa, | ||
double * | Jacobi, | ||
double * | detJi, | ||
double * | Jacobc, | ||
Vector & | pbar | ||
) |
This operation returns the displacement calculated hidrostatic pressure, employed for quasi-incompressible materials.
[in] | - | NumIntPoints - Number of integration points of the displacement field. |
[in] | - | kappa - Bulk modulus of the quasi-incompressible material. |
[in] | - | Jacobi - Initial Jacobian. |
[in] | - | detJi - Determinant of the initial Jacobian. |
[in] | - | Jacobc - Current Jacobian. |
[out] | - | pbar - The displacement calculated pressure: |
void FiniteElement::GetPproj | ( | unsigned long | ElemNum, |
double | kappa, | ||
unsigned long | DisplacementOrder, | ||
unsigned long | PressureOrder, | ||
unsigned long | NumElemCoords, | ||
double * | ElemCoords, | ||
double * | ElemCoords1, | ||
double * | ShapeFunctions, | ||
unsigned long | NumberSFU, | ||
unsigned long | NumberSFP, | ||
double * | Weights, | ||
unsigned long | NumIntPoints, | ||
double * | Jacobi, | ||
double * | detJi, | ||
double * | Jacobc | ||
) |
[in] | ElemNum | - Element number. |
[in] | kappa | - Bulk modulus. |
[in] | DisplacementOrder | - Displacement interpolation order. |
[in] | PressureOrder | - Pressure interpolation order. |
[in] | NumElemCoords | - Number of element coordinates. |
[in] | ElemCoords | - initial Element coordinates. |
[in] | ElemCoords1 | - updated element coordinates. |
[in] | ShapeFunctions | - Shape functions stored for the highest order (displacement). |
[in] | NumberSFU | - Number displacement shape functions. |
[in] | NumberSFP | - Number of pressure shape functions. |
[in] | Weights | - Weights to perform the numerical integration. |
[in] | NumIntPoints | - Number of integration points. |
[in] | Jacobi | - Initial jacobian for the displacement field. |
[in] | detJi | - Determinant of the initial jacobian for the displacement field. |
[in] | detJc | - Determinant of the current jacobian for the displacement field. |
[out] | PMassMatrix | - Mass matrix assembled with the pressure interpolation order. |
[out] | ProjP | - Projected hidrostatic pressure. |
void FiniteElement::GetQITangentStiffnessMatrix | ( | unsigned long | ElementNumber, |
unsigned long | DisplacementOrder, | ||
unsigned long | NumElemCoordinates, | ||
double * | ElementCoordinatesi, | ||
double * | ElementCoordinatesc, | ||
Mapping & | ElementMap, | ||
GeometricProperties & | GeoProp, | ||
Material & | Mater, | ||
SymmetricMatrix & | StiffnessMatrix, | ||
Vector & | InternalForce | ||
) |
This method calculates the tangent stiffness matrix for a quasi-incompressible problem using the pressure projection procedure.
[in] | ElementNumber | - global element number. |
[in] | DisplacementOrder | - order of displacement interpolation functions for the element. |
[in] | NumElemCoordinatess | - number of element coordinates. |
[in] | ElementCoordinatesi | - Initial Element Coordinates. |
[in] | ElementCoordinatesc | - Current element coordinates. |
[in] | ElementMap | - instance of Mapping with the Jacobian for each integration point. |
[in] | GeoProp | - instance of GeometricProperties. |
[in] | Mater | - instance of the material class. |
[out] | StiffMatrix | - element stiffness matrix stored in the SymmetricMatrix class. |
[out] | Fe | - element internal load vector stored in a double array. |
void FiniteElement::GetTangentStiffnessMatrix | ( | unsigned long | ElementNumber, |
unsigned long | ElementOrder, | ||
unsigned long | NumElemCoordinates, | ||
double * | ElementCoordinatesi, | ||
double * | ElementCoordinatesc, | ||
Mapping & | ElementMap, | ||
GeometricProperties & | GeoProp, | ||
Material & | Mater, | ||
SymmetricMatrix & | StiffnessMatrix, | ||
Vector & | InternalForce | ||
) |
Returns the element tangent stiffness matrix.
Returns the element stiffness matrix.
[in] | ElementNumber | - global element number. |
[in] | ElementOrder | - order of interpolation functions for the element. |
[in] | NumElemCoordinatess | - number of element coordinates. |
[in] | ElementCoordinatesi | - Initial Element Coordinates. |
[in] | ElementCoordinatesc | - Current element coordinates. |
[in] | ElementMap | - instance of Mapping with the Jacobian for each integration point. |
[in] | GeoProp | - instance of GeometricProperties. |
[in] | Mater | - instance of the material class. |
[out] | StiffMatrix | - element stiffness matrix stored in the SymmetricMatrix class. |
[out] | Fe | - element internal load vector stored in a double array. |
double * FiniteElement::Interpolation | ( | Vector & | UeSol, |
unsigned long | CoefOrder, | ||
unsigned long | PosOrder, | ||
unsigned long & | UePosSize | ||
) |
Calculates the local solution vector to the post processing mesh.
[in] | UeSol | - local solution vector calculated from the solution mesh. |
[in] | CoefOrder | - element solution order. |
[in] | PosOrder | - maximum post processing order. |
[out] | UePosSize | - size of the local solution vector of the post processing mesh. This size is number of collocation points X number of shape functions. |
FiniteElement::operator GradientMeasure & | ( | ) |
Cast operator for the reference of the class attribute "GM".
FiniteElement::operator ShapeFunctions & | ( | ) |
Cast operator for the reference of the class attribute "SF".
FiniteElement & FiniteElement::operator= | ( | FiniteElement & | Instance | ) |
Copies the contents of instance to the object.
[in] | Instance | - instance of the FiniteElement class. |
void FiniteElement::Print | ( | FILE * | File | ) |
Prints to the ASCII file the main attributes of the finite element.
[in] | File | - pointer to the ASCII file. |
void FiniteElement::Run1DLocalMatrices | ( | BuiltInArray< unsigned long > & | ElementOrder | ) |
Calculates the 1D mass, stiffness and mixed matrices for each integration point and element order.
[in] | ElementOrder | - An array of element order. If the pMesh type = pUNIFORM, this array will be just one position. |
void FiniteElement::SetFiniteElementAttributes | ( | FiniteElementAttributes_S & | FiniteElementAttributes | ) |
Sets the class attributes input in an instance of FiniteElementAttributes_S instance.
[in] | FiniteElementAttributes | - parameters of the finite element analysis. |
void FiniteElement::SetFiniteElementAttributes | ( | ElementShape_E | ElementShape, |
ProblemType_E | ProblemType, | ||
unsigned long | MaxSolutionOrder, | ||
unsigned long | Dim, | ||
CalculationProcedure_E | CalculationProcedure, | ||
MeshType_E | MeshType, | ||
Kinematics_E | Kinematics, | ||
StrainMeasure_E | StrainMeasure, | ||
FiniteFormulation_E | FiniteFormulation, | ||
pMesh_E | pMeshDistribution, | ||
MappingType_E | MappingType, | ||
unsigned long | MappingOrder, | ||
MassStiffType_E | MassType, | ||
StiffnessType_E | StiffType, | ||
MaterialType_E | MatType | ||
) |
Sets the class attributes as input parameters to be stored in the FiniteElementAttributes_S instance.
[in] | ElementShape | - shape of the finite element. |
[in] | EntityType | - Entity type. |
[in] | ProblemType | - problem type for the analysis |
[in] | CalculationProcedure | - calculation procedure for the finite element operators (STANDARD or 1D_MATRICES). |
[in] | MeshType | - mesh type which can be UNIFORM, NON_UNIFORM and UNSTRUCTURED. |
[in] | NumberDOFsNode | - number of dofs for the element nodes/modes. |
[in] | Kinematics | - type of kinematics for the element between infinitesimal or finite. |
[in] | StrainMeasure | - type of strain measure used by the element. |
[in] | FiniteFormulation | - type of finite element formulation for non-linear analysis. |
[in] | pMeshDistribution | - distribution of element orders in the mesh. |
Matrix FiniteElement::Kp [protected] |
@ brief - Displacement/pressure stiffness matrix used for incompressible problems.
Matrix FiniteElement::Kpaux [protected] |
@ brief - Displacement/pressure auxiliary stiffness matrix used for incompressible problems.
Matrix FiniteElement::Kpaux1 [protected] |
@ brief - Displacement/pressure auxiliary stiffness matrix used for incompressible problems.
SymmetricMatrix FiniteElement::Kteaux [protected] |
@ brief Auxiliary matrix used for operations.
Vector FiniteElement::Re [protected] |
@ brief Internal force vector, stored as a class variable.
Vector FiniteElement::UePos [protected] |
@ brief the local solution vector allocates calculated to post processing mesh.