![]() |
Documentation 6b54b78464
|
Abstract class for defining finite elements. More...
#include <CElement.hpp>
Public Types | |
| enum | FrameType { REFERENCE = 1 , CURRENT = 2 } |
Public Member Functions | |
| CElement (void)=delete | |
| Default constructor of the class, deleted to make sure derived classes always call the allocating constructor. | |
| CElement (unsigned short ngauss, unsigned short nnodes, unsigned short ndim) | |
| Constructor of the class. | |
| virtual | ~CElement (void)=default |
| Destructor of the class. | |
| virtual void | ComputeGrad_Linear (void)=0 |
| Set the value of the gradient of the shape functions wrt the reference configuration. | |
| virtual void | ComputeGrad_NonLinear (void)=0 |
| Set the value of the gradient of the shape functions wrt the current configuration. | |
| virtual void | ComputeGrad_SurfaceEmbedded (void)=0 |
| Set the value of the gradient of the shape functions wrt the reference configuration. | |
| void | ClearElement (void) |
| Sets matrices to 0. | |
| unsigned short | GetnNodes (void) const |
| Retrieve the number of nodes of the element. | |
| unsigned short | GetnGaussPoints (void) const |
| Retrieve the number of nodes of the element. | |
| void | SetRef_Coord (unsigned short iNode, unsigned short iDim, const su2double &val_CoordRef) |
| Set the value of the coordinate of the nodes in the reference configuration. | |
| void | SetCurr_Coord (unsigned short iNode, unsigned short iDim, const su2double &val_CoordCurr) |
| Set the value of the coordinate of the nodes in the current configuration. | |
| void | SetTemperature (unsigned short iNode, const su2double &val_Temperature) |
| Set the value of the temperature of a node. | |
| void | SetTemperature (const su2double &val_Temperature) |
| Set the value of the temperature of all nodes. | |
| su2double | GetRef_Coord (unsigned short iNode, unsigned short iDim) const |
| Get the value of the coordinate of the nodes in the reference configuration. | |
| su2double | GetCurr_Coord (unsigned short iNode, unsigned short iDim) const |
| Get the value of the coordinate of the nodes in the current configuration. | |
| su2double | GetTemperature (unsigned short iGauss) const |
| Get the value of the temperature at a Gaussian integration point. | |
| su2double | GetWeight (unsigned short iGauss) const |
| Get the weight of the corresponding Gaussian Point. | |
| su2double | GetJ_X (unsigned short iGauss) const |
| Get the Jacobian respect to the reference configuration for the Gaussian Point iGauss. | |
| su2double | GetJ_x (unsigned short iGauss) const |
| Get the jacobian respect to the current configuration for the Gaussian Point iGauss. | |
| su2double | GetElement_Pressure (void) const |
| Retrieve the value of the pressure in the element for incompressible materials. | |
| void | Add_Mab (unsigned short nodeA, unsigned short nodeB, const su2double &val_Mab) |
| Add the value of the diagonal term for the mass matrix. | |
| template<typename Matrix > | |
| void | Add_Kab (unsigned short nodeA, unsigned short nodeB, Matrix &val_Kab) |
| Add the value of a submatrix K relating nodes a and b, for the constitutive term. | |
| template<typename Matrix > | |
| void | Add_Kab_T (unsigned short nodeA, unsigned short nodeB, Matrix &val_Kab) |
| Add the value of a submatrix K relating nodes a and b, for the constitutive term (symmetric terms need transpose) | |
| void | Add_Ks_ab (unsigned short nodeA, unsigned short nodeB, const su2double &val_Ks_ab) |
| Add the value of the diagonal term for the stress contribution to the stiffness of the system. | |
| void | Add_Kt_a (unsigned short nodeA, const su2double *val_Kt_a) |
| Add the value of the nodal stress term for the computation of the residual. | |
| void | Add_FDL_a (unsigned short nodeA, const su2double *val_FDL_a) |
| Add the value of the dead load for the computation of the residual. | |
| void | ClearStress (void) |
| Restarts the values of stress in the element. | |
| su2double | Get_Mab (unsigned short nodeA, unsigned short nodeB) const |
| Return the value of the diagonal term for the mass matrix, relating nodes a and b. | |
| const su2double * | Get_Kab (unsigned short nodeA, unsigned short nodeB) const |
| Return the value of the submatrix K relating nodes a and b. | |
| su2double | Get_Ks_ab (unsigned short nodeA, unsigned short nodeB) const |
| Return the value of the diagonal term for the stress contribution, relating nodes a and b. | |
| const su2double * | Get_Kt_a (unsigned short nodeA) const |
| Return the values of the nodal stress components of the residual for node a. | |
| const su2double * | Get_FDL_a (unsigned short nodeA) const |
| Return the values of the dead load components of the residual for node a. | |
| su2double | GetNi (unsigned short iNode, unsigned short iGauss) const |
| Retrieve the value of the shape functions. | |
| su2double | GetGradNi_X (unsigned short iNode, unsigned short iGauss, unsigned short iDim) const |
| Retrieve the value of the gradient of the shape functions respect to the reference configuration. | |
| su2double | GetGradNi_x (unsigned short iNode, unsigned short iGauss, unsigned short iDim) const |
| Retrieve the value of the gradient of the shape functions respect to the current configuration. | |
| su2double | GetNi_Extrap (unsigned short iNode, unsigned short iGauss) const |
| Retrieve the value of the gradient of the shape functions respect to the reference configuration. | |
| void | Add_NodalStress (unsigned short iNode, unsigned short iVar, const su2double &val_Stress) |
| Add a value to the nodal stress for an element. | |
| su2double | Get_NodalStress (unsigned short iNode, unsigned short iVar) const |
| Retrieve the value of the nodal stress for an element. | |
| void | Set_ElProperties (const CProperty *element_property) |
| Store the values of the identifiers for element properties. | |
| void | Set_iDe (unsigned long val_iDe) |
| Store the value of the identifier for the Dielectric Elastomers. | |
| unsigned long | Get_iDe (void) const |
| Return the value of the identifier for the Dielectric Elastomers. | |
| unsigned long | Get_iDV (void) const |
| Return the value of the identifier for the Design Variable. | |
| unsigned long | Get_iProp (void) const |
| Return the value of the identifier for the Element Property. | |
| virtual su2double | ComputeLength (const FrameType mode=REFERENCE) const |
| Compute the value of the length of the element. | |
| virtual su2double | ComputeArea (const FrameType mode=REFERENCE) const |
| Compute the value of the area of the element. | |
| virtual su2double | ComputeVolume (const FrameType mode=REFERENCE) const |
| Compute the value of the volume of the element. | |
| su2double | ComputeCurrentArea (void) const |
| Compute the value of the area of the element in current coordinates (wrapper to ComputeArea(CURRENT)). | |
| su2double | ComputeCurrentVolume (void) const |
| Compute the value of the volume of the element in current coordinates (wrapper to ComputeVolume(CURRENT)). | |
| void | SetPreaccIn_Coords (bool nonlinear=true) |
| Register the current and reference coordinates of the element as pre-accumulation inputs the latter are needed for compatibility with shape derivatives, there is no problem registering because inactive variables are ignored. | |
| void | SetPreaccOut_Kt_a (void) |
| Register the stress residual as a pre-accumulation output. When computing the element stiffness matrix this is the only term that sees its way into the RHS of the system. | |
| void | SetPreaccOut_Mab (void) |
| Register the mass matrix as a pre-accumulation output. | |
| void | SetPreaccOut_FDL_a (void) |
| Register the dead load as a pre-accumulation output. | |
| void | Add_HiHj (su2double val, unsigned short nodeA, unsigned short nodeB) |
| Add the scalar product of the shape functions to the tangent matrix. | |
| template<class MatrixType > | |
| void | Add_DHiDHj (const MatrixType &val, unsigned short nodeA, unsigned short nodeB) |
| Add the scalar product of the gradients of shape functions to the tangent matrix. | |
| template<class MatrixType > | |
| void | Add_DHiDHj_T (const MatrixType &val, unsigned short nodeA, unsigned short nodeB) |
| Add the transposed scalar product of the gradients of shape functions to the tangent matrix. | |
| su2double | Get_HiHj (unsigned short nodeA, unsigned short nodeB) |
| Get the scalar product of the shape functions to the tangent matrix. | |
| su2activematrix & | Get_DHiDHj (unsigned short nodeA, unsigned short nodeB) |
| Get the scalar product of the gradients of shape functions to the tangent matrix. | |
Protected Types | |
| enum | : size_t { MAXNDIM = 3 } |
Protected Attributes | |
| std::vector< CGaussVariable > | GaussPoint |
| Vector of Gaussian Points. | |
| su2activematrix | CurrentCoord |
| Coordinates in the current frame. | |
| su2activematrix | RefCoord |
| Coordinates in the reference frame. | |
| su2activevector | GaussWeight |
| Weight of the Gaussian Points for the integration. | |
| su2activematrix | NodalExtrap |
| Coordinates of the nodal points for Gaussian extrapolation. | |
| su2activematrix | NodalStress |
| Stress at the nodes. | |
| su2activevector | NodalTemperature |
| Temperature at the nodes. | |
| std::vector< su2activematrix > | Kab |
| Structure for the constitutive component of the tangent matrix. | |
| su2activematrix | Mab |
| Structure for the nodal components of the mass matrix. | |
| su2activematrix | Ks_ab |
| Structure for the stress component of the tangent matrix. | |
| su2activematrix | Kt_a |
| Matrix of nodal stress terms for residual computation. | |
| su2activematrix | FDL_a |
| Matrix of dead loads for residual computation. | |
| su2double | el_Pressure = 0.0 |
| Pressure in the element. | |
| unsigned long | iProp = 0 |
| ID of the Element Property. | |
| unsigned long | iDV = 0 |
| ID of the Design Variable (if it is element based). | |
| unsigned long | iDe = 0 |
| ID of the dielectric elastomer. | |
| unsigned short | nGaussPoints |
| Number of gaussian points. | |
| unsigned short | nNodes |
| Number of geometric points. | |
| unsigned short | nDim |
| Number of dimension of the problem. | |
| su2activematrix | HiHj = 0.0 |
| Scalar product of 2 ansatz functions. | |
| std::vector< std::vector< su2activematrix > > | DHiDHj |
| Scalar product of the gradients of 2 ansatz functions. | |
Abstract class for defining finite elements.
| enum CElement::FrameType |
|
delete |
Default constructor of the class, deleted to make sure derived classes always call the allocating constructor.
| CElement::CElement | ( | unsigned short | ngauss, |
| unsigned short | nnodes, | ||
| unsigned short | ndim | ||
| ) |
Constructor of the class.
| [in] | ngauss | - Number of Gaussian integration points. |
| [in] | nnodes | - Number of nodes of the element. |
| [in] | ndim | - Number of dimensions of the problem (2D, 3D). |
|
virtualdefault |
Destructor of the class.
|
inline |
Add the scalar product of the gradients of shape functions to the tangent matrix.
| [in] | nodeA | - index of Node a. |
| [in] | nodeB | - index of Node b. |
| [in] | val | - value of the scalar product of gradients of ansatz function. |
|
inline |
Add the transposed scalar product of the gradients of shape functions to the tangent matrix.
| [in] | nodeA | - index of Node a. |
| [in] | nodeB | - index of Node b. |
| [in] | val | - value of the term that will contribute. |
|
inline |
Add the value of the dead load for the computation of the residual.
| [in] | nodeA | - index of Node a. |
| [in] | val_FDL_a | - value of the term that will constitute the diagonal of the stress contribution. |
|
inline |
Add the scalar product of the shape functions to the tangent matrix.
| [in] | nodeA | - index of Node a. |
| [in] | nodeB | - index of Node b. |
| [in] | val | - value of the scalar product of ansatz function. |
|
inline |
Add the value of a submatrix K relating nodes a and b, for the constitutive term.
| [in] | nodeA | - index of Node a. |
| [in] | nodeB | - index of Node b. |
| [in] | val_Kab | - value of the matrix K. |
|
inline |
Add the value of a submatrix K relating nodes a and b, for the constitutive term (symmetric terms need transpose)
| [in] | nodeA | - index of Node a. |
| [in] | nodeB | - index of Node b. |
| [in] | val_Kab | - value of the matrix K. |
|
inline |
Add the value of the diagonal term for the stress contribution to the stiffness of the system.
| [in] | nodeA | - index of Node a. |
| [in] | nodeB | - index of Node b. |
| [in] | val_Ks_ab | - value of the term that will constitute the diagonal of the stress contribution. |
|
inline |
Add the value of the nodal stress term for the computation of the residual.
| [in] | nodeA | - index of Node a. |
| [in] | val_Kt_a | - value of the term that will constitute the diagonal of the stress contribution. |
|
inline |
Add the value of the diagonal term for the mass matrix.
| [in] | nodeA | - index of Node a. |
| [in] | nodeB | - index of Node b. |
| [in] | val_Ks_ab | - value of the term that will constitute the diagonal of the stress contribution. |
|
inline |
Add a value to the nodal stress for an element.
| [in] | iNode | - Index of the node. |
| [in] | iVar | - Variable index. |
| [in] | val_Stress | - Value of the stress added. |
| void CElement::ClearElement | ( | void | ) |
Sets matrices to 0.
|
inline |
Restarts the values of stress in the element.
|
inline |
Compute the value of the area of the element in current coordinates (wrapper to ComputeArea(CURRENT)).
|
inline |
Compute the value of the volume of the element in current coordinates (wrapper to ComputeVolume(CURRENT)).
|
pure virtual |
Set the value of the gradient of the shape functions wrt the reference configuration.
Implemented in CElementWithKnownSizes< NGAUSS, NNODE, NDIM >, CElementWithKnownSizes< 1, 3, 2 >, CElementWithKnownSizes< 1, 4, 3 >, CElementWithKnownSizes< 2, 2, 1 >, CElementWithKnownSizes< 3, 3, 2 >, CElementWithKnownSizes< 4, 4, 2 >, CElementWithKnownSizes< 4, 4, 3 >, CElementWithKnownSizes< 5, 5, 3 >, CElementWithKnownSizes< 6, 5, 3 >, CElementWithKnownSizes< 6, 6, 3 >, and CElementWithKnownSizes< 8, 8, 3 >.
|
pure virtual |
Set the value of the gradient of the shape functions wrt the current configuration.
Implemented in CElementWithKnownSizes< NGAUSS, NNODE, NDIM >, CElementWithKnownSizes< 1, 3, 2 >, CElementWithKnownSizes< 1, 4, 3 >, CElementWithKnownSizes< 2, 2, 1 >, CElementWithKnownSizes< 3, 3, 2 >, CElementWithKnownSizes< 4, 4, 2 >, CElementWithKnownSizes< 4, 4, 3 >, CElementWithKnownSizes< 5, 5, 3 >, CElementWithKnownSizes< 6, 5, 3 >, CElementWithKnownSizes< 6, 6, 3 >, and CElementWithKnownSizes< 8, 8, 3 >.
|
pure virtual |
Set the value of the gradient of the shape functions wrt the reference configuration.
Implemented in CElementWithKnownSizes< NGAUSS, NNODE, NDIM >, CElementWithKnownSizes< 1, 3, 2 >, CElementWithKnownSizes< 1, 4, 3 >, CElementWithKnownSizes< 2, 2, 1 >, CElementWithKnownSizes< 3, 3, 2 >, CElementWithKnownSizes< 4, 4, 2 >, CElementWithKnownSizes< 4, 4, 3 >, CElementWithKnownSizes< 5, 5, 3 >, CElementWithKnownSizes< 6, 5, 3 >, CElementWithKnownSizes< 6, 6, 3 >, and CElementWithKnownSizes< 8, 8, 3 >.
Compute the value of the length of the element.
| [in] | mode | - Type of coordinates to consider in the computation. |
Reimplemented in CLINE.
|
inline |
Get the scalar product of the gradients of shape functions to the tangent matrix.
| [in] | nodeA | - index of Node a. |
| [in] | nodeB | - index of Node b. |
|
inline |
Return the values of the dead load components of the residual for node a.
| [in] | nodeA | - index of Node a. |
|
inline |
Get the scalar product of the shape functions to the tangent matrix.
| [in] | nodeA | - index of Node a. |
| [in] | nodeB | - index of Node b. |
| [out] | val | - value of the scalar product of ansatz function. |
|
inline |
Return the value of the identifier for the Dielectric Elastomers.
|
inline |
Return the value of the identifier for the Design Variable.
|
inline |
Return the value of the identifier for the Element Property.
|
inline |
Return the value of the submatrix K relating nodes a and b.
| [in] | nodeA | - index of Node a. |
| [in] | nodeB | - index of Node b. |
|
inline |
Return the value of the diagonal term for the stress contribution, relating nodes a and b.
| [in] | nodeA | - index of Node a. |
| [in] | nodeB | - index of Node b. |
|
inline |
Return the values of the nodal stress components of the residual for node a.
| [in] | nodeA | - index of Node a. |
|
inline |
Return the value of the diagonal term for the mass matrix, relating nodes a and b.
| [in] | nodeA | - index of Node a. |
| [in] | nodeB | - index of Node b. |
|
inline |
Retrieve the value of the nodal stress for an element.
| [in] | iNode | - Index of the node. |
| [in] | iVar | - Variable index. |
|
inline |
Get the value of the coordinate of the nodes in the current configuration.
| [in] | iNode | - Index of node. |
| [in] | iDim | - Dimension. |
|
inline |
Retrieve the value of the pressure in the element for incompressible materials.
|
inline |
Retrieve the value of the gradient of the shape functions respect to the reference configuration.
| [in] | iNode | - Index of the node. |
| [in] | iGauss | - Index of the Gaussian Point. |
| [in] | iDim | - Coordinate index. |
|
inline |
Retrieve the value of the gradient of the shape functions respect to the current configuration.
| [in] | iNode | - Index of the node. |
| [in] | iGauss | - Index of the Gaussian Point. |
| [in] | iDim | - Coordinate index. |
|
inline |
Get the Jacobian respect to the reference configuration for the Gaussian Point iGauss.
| [in] | iGauss | - index of the Gaussian point. |
|
inline |
Get the jacobian respect to the current configuration for the Gaussian Point iGauss.
| [in] | iGauss | - index of the Gaussian point. |
|
inline |
Retrieve the number of nodes of the element.
|
inline |
Retrieve the value of the shape functions.
| [in] | iNode | - Index of the node. |
| [in] | iGauss | - Index of the Gaussian Point. |
|
inline |
Retrieve the value of the gradient of the shape functions respect to the reference configuration.
| [in] | iNode | - Index of the node. |
| [in] | iGauss | - Index of the Gaussian Point. |
|
inline |
Retrieve the number of nodes of the element.
|
inline |
Get the value of the coordinate of the nodes in the reference configuration.
| [in] | iNode | - Index of node. |
| [in] | iDim | - Dimension. |
|
inline |
Get the value of the temperature at a Gaussian integration point.
|
inline |
Get the weight of the corresponding Gaussian Point.
| [in] | iGauss | - index of the Gaussian point. |
|
inline |
Store the values of the identifiers for element properties.
| [in] | element_property | - element properties container. |
|
inline |
Store the value of the identifier for the Dielectric Elastomers.
| [in] | val_iDe | - identifier of the DE property. |
|
inline |
Set the value of the coordinate of the nodes in the current configuration.
| [in] | iNode | - Index of node. |
| [in] | iDim | - Dimension. |
| [in] | val_CoordRef | - Value of the coordinate. |
|
inline |
Register the current and reference coordinates of the element as pre-accumulation inputs the latter are needed for compatibility with shape derivatives, there is no problem registering because inactive variables are ignored.
|
inline |
Register the dead load as a pre-accumulation output.
|
inline |
Register the stress residual as a pre-accumulation output. When computing the element stiffness matrix this is the only term that sees its way into the RHS of the system.
|
inline |
Register the mass matrix as a pre-accumulation output.
|
inline |
Set the value of the coordinate of the nodes in the reference configuration.
| [in] | iNode | - Index of node. |
| [in] | iDim | - Dimension. |
| [in] | val_CoordRef | - Value of the coordinate. |
|
inline |
Set the value of the temperature of all nodes.
|
inline |
Set the value of the temperature of a node.
|
protected |
Coordinates in the current frame.
|
protected |
Scalar product of the gradients of 2 ansatz functions.
|
protected |
Pressure in the element.
|
protected |
Matrix of dead loads for residual computation.
|
protected |
Vector of Gaussian Points.
|
protected |
Weight of the Gaussian Points for the integration.
|
protected |
Scalar product of 2 ansatz functions.
|
protected |
ID of the dielectric elastomer.
|
protected |
ID of the Design Variable (if it is element based).
|
protected |
ID of the Element Property.
|
protected |
Structure for the constitutive component of the tangent matrix.
|
protected |
Structure for the stress component of the tangent matrix.
|
protected |
Matrix of nodal stress terms for residual computation.
|
protected |
Structure for the nodal components of the mass matrix.
|
protected |
Number of dimension of the problem.
|
protected |
Number of gaussian points.
|
protected |
Number of geometric points.
|
protected |
Coordinates of the nodal points for Gaussian extrapolation.
|
protected |
Stress at the nodes.
|
protected |
Temperature at the nodes.
|
protected |
Coordinates in the reference frame.