chrono::fea::ChFieldElementTetrahedron4 Class Reference

Description

Linear tetrahedron for generic constitutive laws.

Can be used for multiphysics. Because of linear interpolation, some closed form ad-hoc expressions are used here for J, dNdX, etc., aiming at higher performance.

#include <ChFieldElementTetrahedron4.h>

Inheritance diagram for chrono::fea::ChFieldElementTetrahedron4:
Collaboration diagram for chrono::fea::ChFieldElementTetrahedron4:

Public Member Functions

virtual std::shared_ptr< ChNodeFEAfieldXYZGetTetrahedronNode (unsigned int n)
 Return the specified tetrahedron node (0 <= n <= 3).
 
virtual void SetTetrahedronNode (unsigned int n, std::shared_ptr< ChNodeFEAfieldXYZ > mnode)
 Set the specified tetrahedron node (0 <= n <= 3).
 
virtual void SetNodes (std::shared_ptr< ChNodeFEAfieldXYZ > nodeA, std::shared_ptr< ChNodeFEAfieldXYZ > nodeB, std::shared_ptr< ChNodeFEAfieldXYZ > nodeC, std::shared_ptr< ChNodeFEAfieldXYZ > nodeD)
 Set the nodes used by this tetrahedron.
 
virtual unsigned int GetNumNodes () override
 Get the number of nodes used by this element.
 
virtual std::shared_ptr< ChNodeFEAbaseGetNode (unsigned int n) override
 Access the nth node.
 
virtual int GetSpatialDimensions () const override
 
virtual void ComputeN (const ChVector3d eta, ChRowVectorDynamic<> &N) override
 
virtual void ComputedNde (const ChVector3d eta, ChMatrixDynamic<> &dNde) override
 
virtual double ComputeJ (const ChVector3d eta, ChMatrix33d &J) override
 Compute Jacobian J = dX/dη, and returns its determinant. More...
 
virtual double ComputeJinv (const ChVector3d eta, ChMatrix33d &Jinv) override
 
virtual int GetNumQuadraturePointsForOrder (const int order) const override
 
virtual void GetMaterialPointWeight (const int order, const int i, double &weight, ChVector3d &coords) const override
 
virtual void Update () override
 Update, called at least at each time step. More...
 
virtual bool IsTetrahedronIntegrationCompatible () const override
 
virtual bool IsTrianglePrismIntegrationCompatible () const override
 
virtual int GetNumFaces () override
 
virtual std::shared_ptr< ChFieldElementSurfaceBuildFace (int i_face, std::shared_ptr< ChFieldElementVolume > shared_this) override
 
- Public Member Functions inherited from chrono::fea::ChFieldElementVolume
virtual int GetManifoldDimensions () const override
 
- Public Member Functions inherited from chrono::fea::ChFieldElement
virtual void ComputedNdX (const ChVector3d eta, ChMatrixDynamic<> &dNdX)
 
virtual int GetQuadratureOrder () const
 
virtual void SetQuadratureOrder (const int morder)
 
virtual int GetNumMaterialPoints () const
 

Additional Inherited Members

- Protected Attributes inherited from chrono::fea::ChFieldElement
int quadrature_order = 1
 

Member Function Documentation

◆ ComputeJ()

double chrono::fea::ChFieldElementTetrahedron4::ComputeJ ( const ChVector3d  eta,
ChMatrix33d J 
)
overridevirtual

Compute Jacobian J = dX/dη, and returns its determinant.

Compute Jacobian J = dX/deta, and returns its determinant.

FALLBACK default implementation; but if possible implement a faster ad hoc computation.

Reimplemented from chrono::fea::ChFieldElementVolume.

◆ Update()

virtual void chrono::fea::ChFieldElementTetrahedron4::Update ( )
inlineoverridevirtual

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 from chrono::fea::ChFieldElement.


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