Documentation 6b54b78464
Loading...
Searching...
No Matches
CHEXA8 Class Referencefinal

Hexahedral element with 8 Gauss Points. More...

#include <CElement.hpp>

Inheritance diagram for CHEXA8:
[legend]

Public Member Functions

 CHEXA8 ()
 Constructor of the class.
 
su2double ComputeVolume (const FrameType mode=REFERENCE) const override
 Compute the value of the volume of the element.
 
- Public Member Functions inherited from CElementWithKnownSizes< 8, 8, 3 >
void ComputeGrad_Linear (void) final
 Set the value of the gradient of the shape functions wrt the reference configuration.
 
void ComputeGrad_NonLinear (void) final
 Set the value of the gradient of the shape functions wrt the current configuration.
 
void ComputeGrad_SurfaceEmbedded () final
 Overload needed for deformed 2D elements on a surface in 3D or 1D elements on a 2D curve.
 
- Public Member Functions inherited from CElement
 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.
 
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.
 
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.
 

Additional Inherited Members

- Public Types inherited from CElement
enum  FrameType { REFERENCE = 1 , CURRENT = 2 }
 
- Protected Types inherited from CElement
enum  : size_t { MAXNDIM = 3 }
 
- Protected Member Functions inherited from CElementWithKnownSizes< 8, 8, 3 >
 CElementWithKnownSizes ()
 Constructor of the class.
 
void ComputeGrad_impl (void)
 Implementation of gradient computation leveraging the static sizes.
 
void ComputeGrad_impl_surf_embedded ()
 
- Protected Attributes inherited from CElementWithKnownSizes< 8, 8, 3 >
su2double GaussCoord [NGAUSS][NDIM]
 Coordinates of the integration points.
 
su2double dNiXj [NGAUSS][NNODE][NDIM]
 Shape function derivatives evaluated at the Gauss points.
 
- Protected Attributes inherited from CElement
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.
 

Detailed Description

Hexahedral element with 8 Gauss Points.

Author
R. Sanchez

Constructor & Destructor Documentation

◆ CHEXA8()

CHEXA8::CHEXA8 ( )

Constructor of the class.

Member Function Documentation

◆ ComputeVolume()

su2double CHEXA8::ComputeVolume ( const FrameType  mode = REFERENCE) const
overridevirtual

Compute the value of the volume of the element.

Parameters
[in]mode- Type of coordinates to consider in the computation.
Returns
Volume of the element.

Reimplemented from CElement.


The documentation for this class was generated from the following files: