chrono::fea::ChFieldElement Class Referenceabstract

Description

Base class for finite elements over generic fields (scalrar, vectorial, etc), to be used in the new PDE multiphysics system that uses ChField and ChDomain managers.

These elements are NOT of the same class of the old ones, that typically were inherited from ChElementBase and ChElementGeneric, because the element here does not provide any constitutive law or material: it only provides shape function interpolation, shape function derivatives, jacobian, list of nodes and quadrature schemes, and few ingredients that later one can take advantage of, say in a ChDomainDeformation or ChDomainThermal, if some proper ChField is attached to the nodes.

#include <ChFieldElement.h>

Inheritance diagram for chrono::fea::ChFieldElement:

Public Member Functions

virtual unsigned int GetNumNodes ()=0
 Get the number of nodes used by this element.
 
virtual std::shared_ptr< ChNodeFEAbaseGetNode (unsigned int n)=0
 Access the nth node.
 
virtual int GetSpatialDimensions () const =0
 
virtual int GetManifoldDimensions () const =0
 
virtual void ComputeN (const ChVector3d eta, ChRowVectorDynamic<> &N)=0
 
virtual void ComputedNde (const ChVector3d eta, ChMatrixDynamic<> &dNde)=0
 
virtual void ComputedNdX (const ChVector3d eta, ChMatrixDynamic<> &dNdX)
 
virtual double ComputeJ (const ChVector3d eta, ChMatrix33d &J)=0
 
virtual double ComputeJinv (const ChVector3d eta, ChMatrix33d &Jinv)
 
virtual int GetQuadratureOrder () const
 
virtual void SetQuadratureOrder (const int morder)
 
virtual int GetNumQuadraturePointsForOrder (const int order) const =0
 
virtual int GetNumMaterialPoints () const
 
virtual void GetMaterialPointWeight (const int order, const int i, double &weight, ChVector3d &coords) const =0
 
virtual void Update ()
 Update, called at least at each time step. More...
 
virtual void SetupInitial (ChSystem *system)
 Initial setup (called once before start of simulation). More...
 

Protected Attributes

int quadrature_order = 1
 

Member Function Documentation

◆ SetupInitial()

virtual void chrono::fea::ChFieldElement::SetupInitial ( ChSystem system)
inlinevirtual

Initial setup (called once before start of simulation).

This is used mostly to precompute matrices that do not change during the simulation, i.e. the local stiffness of each element, if any, the mass, etc.

◆ Update()

virtual void chrono::fea::ChFieldElement::Update ( )
inlinevirtual

Update, called at least at each time step.

If the element has to keep updated some auxiliary data, such as the rotation matrices for corotational approach, this should be implemented in this function.

Reimplemented in chrono::fea::ChFieldElementTetrahedron4, and chrono::fea::ChFieldElementHexahedron8.


The documentation for this class was generated from the following file:
  • /builds/uwsbel/chrono/src/chrono/fea/ChFieldElement.h