Documentation 6b54b78464
Loading...
Searching...
No Matches
CElement Class Referenceabstract

Abstract class for defining finite elements. More...

#include <CElement.hpp>

Inheritance diagram for CElement:
[legend]

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.
 

Detailed Description

Abstract class for defining finite elements.

Note
Usage: Element instances are used to compute gradients (in reference or current coordinates), element matrices (stiffness, mass, etc.), and nodal residuals. The use-case is to set the coordinates, compute the gradients, and then incrementally build the matrices using the various "Add_XXX" methods.
Implementation: This base class provides a generic interface to an element, so that client numerics do not need to care about specific details (e.g. shape functions). However, more efficient code can be generated by caring about them, we try to strike a balance by tailoring the gradient computation to the specific sizes (number of integration points, nodes, and dimensions) of derived elements. This is done via the intermediate template class CElementWithKnownSizes from which derived elements can inherit the implementation of "ComputeGrad_XXX". To do so their constructors should consist of:
  • Call CElementWithKnownSizes's ctor to allocate parent class members.
  • Populate the "GaussWeights", and set the shape function values (Ni) in "GaussPoint".
  • Populate the "GaussCoords" and "dNiXj" fields of CElementWithKnownSizes.
  • Define the coordinates for nodal extrapolation of quantities at the Gauss points. Derived elements can also implement cheap methods of computing their area/volume.
Author
R. Sanchez

Member Enumeration Documentation

◆ anonymous enum

anonymous enum : size_t
protected
Enumerator
MAXNDIM 

◆ FrameType

Enumerator
REFERENCE 
CURRENT 

Constructor & Destructor Documentation

◆ CElement() [1/2]

CElement::CElement ( void  )
delete

Default constructor of the class, deleted to make sure derived classes always call the allocating constructor.

◆ CElement() [2/2]

CElement::CElement ( unsigned short  ngauss,
unsigned short  nnodes,
unsigned short  ndim 
)

Constructor of the class.

Parameters
[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).

◆ ~CElement()

virtual CElement::~CElement ( void  )
virtualdefault

Destructor of the class.

Member Function Documentation

◆ Add_DHiDHj()

template<class MatrixType >
void CElement::Add_DHiDHj ( const MatrixType &  val,
unsigned short  nodeA,
unsigned short  nodeB 
)
inline

Add the scalar product of the gradients of shape functions to the tangent matrix.

Parameters
[in]nodeA- index of Node a.
[in]nodeB- index of Node b.
[in]val- value of the scalar product of gradients of ansatz function.

◆ Add_DHiDHj_T()

template<class MatrixType >
void CElement::Add_DHiDHj_T ( const MatrixType &  val,
unsigned short  nodeA,
unsigned short  nodeB 
)
inline

Add the transposed scalar product of the gradients of shape functions to the tangent matrix.

Parameters
[in]nodeA- index of Node a.
[in]nodeB- index of Node b.
[in]val- value of the term that will contribute.

◆ Add_FDL_a()

void CElement::Add_FDL_a ( unsigned short  nodeA,
const su2double *  val_FDL_a 
)
inline

Add the value of the dead load for the computation of the residual.

Parameters
[in]nodeA- index of Node a.
[in]val_FDL_a- value of the term that will constitute the diagonal of the stress contribution.

◆ Add_HiHj()

void CElement::Add_HiHj ( su2double  val,
unsigned short  nodeA,
unsigned short  nodeB 
)
inline

Add the scalar product of the shape functions to the tangent matrix.

Parameters
[in]nodeA- index of Node a.
[in]nodeB- index of Node b.
[in]val- value of the scalar product of ansatz function.

◆ Add_Kab()

template<typename Matrix >
void CElement::Add_Kab ( unsigned short  nodeA,
unsigned short  nodeB,
Matrix &  val_Kab 
)
inline

Add the value of a submatrix K relating nodes a and b, for the constitutive term.

Parameters
[in]nodeA- index of Node a.
[in]nodeB- index of Node b.
[in]val_Kab- value of the matrix K.

◆ Add_Kab_T()

template<typename Matrix >
void CElement::Add_Kab_T ( unsigned short  nodeA,
unsigned short  nodeB,
Matrix &  val_Kab 
)
inline

Add the value of a submatrix K relating nodes a and b, for the constitutive term (symmetric terms need transpose)

Parameters
[in]nodeA- index of Node a.
[in]nodeB- index of Node b.
[in]val_Kab- value of the matrix K.

◆ Add_Ks_ab()

void CElement::Add_Ks_ab ( unsigned short  nodeA,
unsigned short  nodeB,
const su2double &  val_Ks_ab 
)
inline

Add the value of the diagonal term for the stress contribution to the stiffness of the system.

Parameters
[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.

◆ Add_Kt_a()

void CElement::Add_Kt_a ( unsigned short  nodeA,
const su2double *  val_Kt_a 
)
inline

Add the value of the nodal stress term for the computation of the residual.

Parameters
[in]nodeA- index of Node a.
[in]val_Kt_a- value of the term that will constitute the diagonal of the stress contribution.

◆ Add_Mab()

void CElement::Add_Mab ( unsigned short  nodeA,
unsigned short  nodeB,
const su2double &  val_Mab 
)
inline

Add the value of the diagonal term for the mass matrix.

Parameters
[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.

◆ Add_NodalStress()

void CElement::Add_NodalStress ( unsigned short  iNode,
unsigned short  iVar,
const su2double &  val_Stress 
)
inline

Add a value to the nodal stress for an element.

Parameters
[in]iNode- Index of the node.
[in]iVar- Variable index.
[in]val_Stress- Value of the stress added.

◆ ClearElement()

void CElement::ClearElement ( void  )

Sets matrices to 0.

◆ ClearStress()

void CElement::ClearStress ( void  )
inline

Restarts the values of stress in the element.

◆ ComputeArea()

virtual su2double CElement::ComputeArea ( const FrameType  mode = REFERENCE) const
inlinevirtual

Compute the value of the area of the element.

Parameters
[in]mode- Type of coordinates to consider in the computation.
Returns
Area of the (2D) element.

Reimplemented in CTRIA1, CQUAD4, and CTRIA3.

◆ ComputeCurrentArea()

su2double CElement::ComputeCurrentArea ( void  ) const
inline

Compute the value of the area of the element in current coordinates (wrapper to ComputeArea(CURRENT)).

Returns
Current area of the (2D) element.

◆ ComputeCurrentVolume()

su2double CElement::ComputeCurrentVolume ( void  ) const
inline

Compute the value of the volume of the element in current coordinates (wrapper to ComputeVolume(CURRENT)).

Returns
Current volume of the (3D) element.

◆ ComputeGrad_Linear()

virtual void CElement::ComputeGrad_Linear ( void  )
pure virtual

◆ ComputeGrad_NonLinear()

virtual void CElement::ComputeGrad_NonLinear ( void  )
pure virtual

◆ ComputeGrad_SurfaceEmbedded()

virtual void CElement::ComputeGrad_SurfaceEmbedded ( void  )
pure virtual

◆ ComputeLength()

virtual su2double CElement::ComputeLength ( const FrameType  mode = REFERENCE) const
inlinevirtual

Compute the value of the length of the element.

Parameters
[in]mode- Type of coordinates to consider in the computation.
Returns
Length of the (1D) element.

Reimplemented in CLINE.

◆ ComputeVolume()

virtual su2double CElement::ComputeVolume ( const FrameType  mode = REFERENCE) const
inlinevirtual

Compute the value of the volume of the element.

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

Reimplemented in CTETRA1, CHEXA8, CPYRAM5, CPRISM6, CTETRA4, and CPYRAM6.

◆ Get_DHiDHj()

su2activematrix & CElement::Get_DHiDHj ( unsigned short  nodeA,
unsigned short  nodeB 
)
inline

Get the scalar product of the gradients of shape functions to the tangent matrix.

Parameters
[in]nodeA- index of Node a.
[in]nodeB- index of Node b.
Returns
val - value of the scalar product of gradients of ansatz function.

◆ Get_FDL_a()

const su2double * CElement::Get_FDL_a ( unsigned short  nodeA) const
inline

Return the values of the dead load components of the residual for node a.

Parameters
[in]nodeA- index of Node a.
Returns
Value of the dead loads.

◆ Get_HiHj()

su2double CElement::Get_HiHj ( unsigned short  nodeA,
unsigned short  nodeB 
)
inline

Get the scalar product of the shape functions to the tangent matrix.

Parameters
[in]nodeA- index of Node a.
[in]nodeB- index of Node b.
[out]val- value of the scalar product of ansatz function.

◆ Get_iDe()

unsigned long CElement::Get_iDe ( void  ) const
inline

Return the value of the identifier for the Dielectric Elastomers.

Returns
Identifier of the DE property.

◆ Get_iDV()

unsigned long CElement::Get_iDV ( void  ) const
inline

Return the value of the identifier for the Design Variable.

Returns
Identifier of the DV.

◆ Get_iProp()

unsigned long CElement::Get_iProp ( void  ) const
inline

Return the value of the identifier for the Element Property.

Returns
Identifier of the property.

◆ Get_Kab()

const su2double * CElement::Get_Kab ( unsigned short  nodeA,
unsigned short  nodeB 
) const
inline

Return the value of the submatrix K relating nodes a and b.

Parameters
[in]nodeA- index of Node a.
[in]nodeB- index of Node b.
Returns
Values of the matrix K.

◆ Get_Ks_ab()

su2double CElement::Get_Ks_ab ( unsigned short  nodeA,
unsigned short  nodeB 
) const
inline

Return the value of the diagonal term for the stress contribution, relating nodes a and b.

Parameters
[in]nodeA- index of Node a.
[in]nodeB- index of Node b.
Returns
Value of the matrix Ks.

◆ Get_Kt_a()

const su2double * CElement::Get_Kt_a ( unsigned short  nodeA) const
inline

Return the values of the nodal stress components of the residual for node a.

Parameters
[in]nodeA- index of Node a.
Returns
Values of the stress term.

◆ Get_Mab()

su2double CElement::Get_Mab ( unsigned short  nodeA,
unsigned short  nodeB 
) const
inline

Return the value of the diagonal term for the mass matrix, relating nodes a and b.

Parameters
[in]nodeA- index of Node a.
[in]nodeB- index of Node b.
Returns
Value of the diagonal term of Mab.

◆ Get_NodalStress()

su2double CElement::Get_NodalStress ( unsigned short  iNode,
unsigned short  iVar 
) const
inline

Retrieve the value of the nodal stress for an element.

Parameters
[in]iNode- Index of the node.
[in]iVar- Variable index.
Returns
Value of the stress.

◆ GetCurr_Coord()

su2double CElement::GetCurr_Coord ( unsigned short  iNode,
unsigned short  iDim 
) const
inline

Get the value of the coordinate of the nodes in the current configuration.

Parameters
[in]iNode- Index of node.
[in]iDim- Dimension.
Returns
Current coordinate.

◆ GetElement_Pressure()

su2double CElement::GetElement_Pressure ( void  ) const
inline

Retrieve the value of the pressure in the element for incompressible materials.

Returns
Value of the pressure.

◆ GetGradNi_X()

su2double CElement::GetGradNi_X ( unsigned short  iNode,
unsigned short  iGauss,
unsigned short  iDim 
) const
inline

Retrieve the value of the gradient of the shape functions respect to the reference configuration.

Parameters
[in]iNode- Index of the node.
[in]iGauss- Index of the Gaussian Point.
[in]iDim- Coordinate index.
Returns
Gradient of the shape function related to node iNode and evaluated at Gaussian Point iGauss

◆ GetGradNi_x()

su2double CElement::GetGradNi_x ( unsigned short  iNode,
unsigned short  iGauss,
unsigned short  iDim 
) const
inline

Retrieve the value of the gradient of the shape functions respect to the current configuration.

Parameters
[in]iNode- Index of the node.
[in]iGauss- Index of the Gaussian Point.
[in]iDim- Coordinate index.
Returns
Gradient of the shape function related to node iNode and evaluated at Gaussian Point iGauss

◆ GetJ_X()

su2double CElement::GetJ_X ( unsigned short  iGauss) const
inline

Get the Jacobian respect to the reference configuration for the Gaussian Point iGauss.

Parameters
[in]iGauss- index of the Gaussian point.
Returns
Jacobian.

◆ GetJ_x()

su2double CElement::GetJ_x ( unsigned short  iGauss) const
inline

Get the jacobian respect to the current configuration for the Gaussian Point iGauss.

Parameters
[in]iGauss- index of the Gaussian point.
Returns
Jacobian.

◆ GetnGaussPoints()

unsigned short CElement::GetnGaussPoints ( void  ) const
inline

Retrieve the number of nodes of the element.

Returns
Number of Gaussian Points of the element.

◆ GetNi()

su2double CElement::GetNi ( unsigned short  iNode,
unsigned short  iGauss 
) const
inline

Retrieve the value of the shape functions.

Parameters
[in]iNode- Index of the node.
[in]iGauss- Index of the Gaussian Point.
Returns
Gradient of the shape function related to node iNode and evaluated at Gaussian Point iGauss

◆ GetNi_Extrap()

su2double CElement::GetNi_Extrap ( unsigned short  iNode,
unsigned short  iGauss 
) const
inline

Retrieve the value of the gradient of the shape functions respect to the reference configuration.

Parameters
[in]iNode- Index of the node.
[in]iGauss- Index of the Gaussian Point.
Returns
Value of the shape function at the nodes for extrapolation purposes

◆ GetnNodes()

unsigned short CElement::GetnNodes ( void  ) const
inline

Retrieve the number of nodes of the element.

Returns
Number of nodes of the element.

◆ GetRef_Coord()

su2double CElement::GetRef_Coord ( unsigned short  iNode,
unsigned short  iDim 
) const
inline

Get the value of the coordinate of the nodes in the reference configuration.

Parameters
[in]iNode- Index of node.
[in]iDim- Dimension.
Returns
Reference coordinate.

◆ GetTemperature()

su2double CElement::GetTemperature ( unsigned short  iGauss) const
inline

Get the value of the temperature at a Gaussian integration point.

◆ GetWeight()

su2double CElement::GetWeight ( unsigned short  iGauss) const
inline

Get the weight of the corresponding Gaussian Point.

Parameters
[in]iGauss- index of the Gaussian point.
Returns
Weight.

◆ Set_ElProperties()

void CElement::Set_ElProperties ( const CProperty *  element_property)
inline

Store the values of the identifiers for element properties.

Parameters
[in]element_property- element properties container.

◆ Set_iDe()

void CElement::Set_iDe ( unsigned long  val_iDe)
inline

Store the value of the identifier for the Dielectric Elastomers.

Parameters
[in]val_iDe- identifier of the DE property.

◆ SetCurr_Coord()

void CElement::SetCurr_Coord ( unsigned short  iNode,
unsigned short  iDim,
const su2double &  val_CoordCurr 
)
inline

Set the value of the coordinate of the nodes in the current configuration.

Parameters
[in]iNode- Index of node.
[in]iDim- Dimension.
[in]val_CoordRef- Value of the coordinate.

◆ SetPreaccIn_Coords()

void CElement::SetPreaccIn_Coords ( bool  nonlinear = true)
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.

◆ SetPreaccOut_FDL_a()

void CElement::SetPreaccOut_FDL_a ( void  )
inline

Register the dead load as a pre-accumulation output.

◆ SetPreaccOut_Kt_a()

void CElement::SetPreaccOut_Kt_a ( void  )
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.

◆ SetPreaccOut_Mab()

void CElement::SetPreaccOut_Mab ( void  )
inline

Register the mass matrix as a pre-accumulation output.

◆ SetRef_Coord()

void CElement::SetRef_Coord ( unsigned short  iNode,
unsigned short  iDim,
const su2double &  val_CoordRef 
)
inline

Set the value of the coordinate of the nodes in the reference configuration.

Parameters
[in]iNode- Index of node.
[in]iDim- Dimension.
[in]val_CoordRef- Value of the coordinate.

◆ SetTemperature() [1/2]

void CElement::SetTemperature ( const su2double &  val_Temperature)
inline

Set the value of the temperature of all nodes.

◆ SetTemperature() [2/2]

void CElement::SetTemperature ( unsigned short  iNode,
const su2double &  val_Temperature 
)
inline

Set the value of the temperature of a node.

Member Data Documentation

◆ CurrentCoord

su2activematrix CElement::CurrentCoord
protected

Coordinates in the current frame.

◆ DHiDHj

std::vector<std::vector<su2activematrix> > CElement::DHiDHj
protected

Scalar product of the gradients of 2 ansatz functions.

◆ el_Pressure

su2double CElement::el_Pressure = 0.0
protected

Pressure in the element.

◆ FDL_a

su2activematrix CElement::FDL_a
protected

Matrix of dead loads for residual computation.

◆ GaussPoint

std::vector<CGaussVariable> CElement::GaussPoint
protected

Vector of Gaussian Points.

◆ GaussWeight

su2activevector CElement::GaussWeight
protected

Weight of the Gaussian Points for the integration.

◆ HiHj

su2activematrix CElement::HiHj = 0.0
protected

Scalar product of 2 ansatz functions.

◆ iDe

unsigned long CElement::iDe = 0
protected

ID of the dielectric elastomer.

◆ iDV

unsigned long CElement::iDV = 0
protected

ID of the Design Variable (if it is element based).

◆ iProp

unsigned long CElement::iProp = 0
protected

ID of the Element Property.

◆ Kab

std::vector<su2activematrix> CElement::Kab
protected

Structure for the constitutive component of the tangent matrix.

◆ Ks_ab

su2activematrix CElement::Ks_ab
protected

Structure for the stress component of the tangent matrix.

◆ Kt_a

su2activematrix CElement::Kt_a
protected

Matrix of nodal stress terms for residual computation.

◆ Mab

su2activematrix CElement::Mab
protected

Structure for the nodal components of the mass matrix.

◆ nDim

unsigned short CElement::nDim
protected

Number of dimension of the problem.

◆ nGaussPoints

unsigned short CElement::nGaussPoints
protected

Number of gaussian points.

◆ nNodes

unsigned short CElement::nNodes
protected

Number of geometric points.

◆ NodalExtrap

su2activematrix CElement::NodalExtrap
protected

Coordinates of the nodal points for Gaussian extrapolation.

◆ NodalStress

su2activematrix CElement::NodalStress
protected

Stress at the nodes.

◆ NodalTemperature

su2activevector CElement::NodalTemperature
protected

Temperature at the nodes.

◆ RefCoord

su2activematrix CElement::RefCoord
protected

Coordinates in the reference frame.


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