chrono::fea::ChElement3D Class Reference

## Description

Class for all 3-Dimensional elements.

#include <ChElement3D.h>

Inheritance diagram for chrono::fea::ChElement3D:
Collaboration diagram for chrono::fea::ChElement3D:

## Public Member Functions

double GetVolume ()

Public Member Functions inherited from chrono::fea::ChElementGeneric
ChKblockGenericKstiffness ()
Access the proxy to stiffness, for sparse solver.

virtual void EleIntLoadResidual_F (ChVectorDynamic<> &R, const double c) override
(This is a default (a bit unoptimal) book keeping so that in children classes you can avoid implementing this EleIntLoadResidual_F function, unless you need faster code)

virtual void EleIntLoadResidual_Mv (ChVectorDynamic<> &R, const ChVectorDynamic<> &w, const double c) override
(This is a default (VERY UNOPTIMAL) book keeping so that in children classes you can avoid implementing this EleIntLoadResidual_Mv function, unless you need faster code.)

virtual void ComputeMmatrixGlobal (ChMatrix<> &M) override
Returns the global mass matrix. More...

virtual void InjectKRMmatrices (ChSystemDescriptor &mdescriptor) override
Tell to a system descriptor that there are item(s) of type ChKblock in this object (for further passing it to a solver)

virtual void KRMmatricesLoad (double Kfactor, double Rfactor, double Mfactor) override
Adds the current stiffness K and damping R and mass M matrices in encapsulated ChKblock item(s), if any. More...

virtual void VariablesFbLoadInternalForces (double factor=1.) override
Adds the internal forces, expressed as nodal forces, into the encapsulated ChVariables, in the 'fb' part: qf+=forces*factor (This is a default (a bit unoptimal) book keeping so that in children classes you can avoid implementing this VariablesFbLoadInternalForces function, unless you need faster code)

virtual void VariablesFbIncrementMq () override
Adds M*q (internal masses multiplied current 'qb') to Fb, ex. More...

Public Member Functions inherited from chrono::fea::ChElementBase
virtual int GetNnodes ()=0
Gets the number of nodes used by this element.

virtual int GetNdofs ()=0
Gets the number of coordinates in the field used by the referenced nodes. More...

virtual int GetNodeNdofs (int n)=0
Get the number of coordinates from the n-th node that are used by this element. More...

virtual std::shared_ptr< ChNodeFEAbaseGetNodeN (int n)=0
Access the nth node.

virtual void GetStateBlock (ChMatrixDynamic<> &mD)=0
Fills the D vector (column matrix) with the current field values at the nodes of the element, with proper ordering. More...

virtual void ComputeNodalMass ()
Compute element's nodal masses.

virtual void ComputeKRMmatricesGlobal (ChMatrix<> &H, double Kfactor, double Rfactor=0, double Mfactor=0)=0
Sets H as the stiffness matrix K, scaled by Kfactor. More...

virtual void ComputeInternalForces (ChMatrixDynamic<> &Fi)=0
Computes the internal forces (ex. More...

virtual void SetupInitial (ChSystem *system)
Initial setup: This is used mostly to precompute matrices that do not change during the simulation, i.e. More...

virtual void Update ()
Update: this is called at least at each time step. More...

virtual void EleDoIntegration ()
This is optionally implemented if there is some internal state that requires integration. More...

## Protected Attributes

double Volume

Protected Attributes inherited from chrono::fea::ChElementGeneric
ChKblockGeneric Kmatr