Description
Face of a tetrahedron-shaped element.
The face is identified by the number of the vertex to which it is opposed: 0,1,2,3. Corner nodes, obtainable with GetNode(), are in counterclockwise order seen from the outside.
#include <ChTetrahedronFace.h>
Public Member Functions | |
ChTetrahedronFace (std::shared_ptr< ChElementTetrahedron > element, char id) | |
Construct the specified face (0 <= id <= 3) on the given tetrahedral element. | |
std::shared_ptr< ChNodeFEAxyz > | GetNode (unsigned int i) const |
void | ShapeFunctions (ChVectorN< double, 3 > &N, double r, double s) |
Fills the N shape function vector (size 3) with the values of shape functions at r,s 'area' coordinates, all ranging in [0...1]. | |
virtual unsigned int | GetLoadableNumCoordsPosLevel () override |
Get the number of DOFs affected by this element (position part). | |
virtual unsigned int | GetLoadableNumCoordsVelLevel () override |
Get the number of DOFs affected by this element (speed part). | |
virtual void | LoadableGetStateBlockPosLevel (int block_offset, ChState &mD) override |
Get all the DOFs packed in a single vector (position part). | |
virtual void | LoadableGetStateBlockVelLevel (int block_offset, ChStateDelta &mD) override |
Get all the DOFs packed in a single vector (speed part). | |
virtual void | LoadableStateIncrement (const unsigned int off_x, ChState &x_new, const ChState &x, const unsigned int off_v, const ChStateDelta &Dv) override |
Increment all DOFs using a delta. | |
virtual unsigned int | GetNumFieldCoords () override |
Number of coordinates in the interpolated field: here the {x,y,z} displacement. | |
virtual unsigned int | GetNumSubBlocks () override |
Get the number of DOFs sub-blocks. | |
virtual unsigned int | GetSubBlockOffset (unsigned int nblock) override |
Get the offset of the specified sub-block of DOFs in global vector. | |
virtual unsigned int | GetSubBlockSize (unsigned int nblock) override |
Get the size of the specified sub-block of DOFs in global vector. | |
virtual bool | IsSubBlockActive (unsigned int nblock) const override |
Check if the specified sub-block of DOFs is active. | |
virtual void | LoadableGetVariables (std::vector< ChVariables * > &mvars) override |
Get the pointers to the contained ChVariables, appending to the mvars vector. | |
virtual void | ComputeNF (const double U, const double V, ChVectorDynamic<> &Qi, double &detJ, const ChVectorDynamic<> &F, ChVectorDynamic<> *state_x, ChVectorDynamic<> *state_w) override |
Evaluate N'*F , where N is some type of shape function evaluated at U,V coordinates of the surface, each ranging in 0..+1 F is a load, N'*F is the resulting generalized load. More... | |
virtual bool | IsTriangleIntegrationNeeded () override |
If true, use quadrature over u,v in [0..1] range as triangle volumetric coords. | |
virtual ChVector3d | ComputeNormal (const double U, const double V) override |
Get the normal to the surface at the parametric coordinate u,v. More... | |
Member Function Documentation
◆ ComputeNF()
|
inlineoverridevirtual |
Evaluate N'*F , where N is some type of shape function evaluated at U,V coordinates of the surface, each ranging in 0..+1 F is a load, N'*F is the resulting generalized load.
Returns also det[J] with J=[dx/du,..], which may be useful in Gauss quadrature.
- Parameters
-
U parametric coordinate in surface V parametric coordinate in surface Qi result of N'*F , maybe with offset block_offset detJ det[J] F Input F vector, size is = n.field coords. state_x if != 0, update state (pos. part) to this, then evaluate Q state_w if != 0, update state (speed part) to this, then evaluate Q
Implements chrono::ChLoadableUV.
◆ ComputeNormal()
|
inlineoverridevirtual |
Get the normal to the surface at the parametric coordinate u,v.
Normal must be considered pointing outside in case the surface is a boundary to a volume.
Implements chrono::ChLoadableUV.
The documentation for this class was generated from the following file:
- /builds/uwsbel/chrono/src/chrono/fea/ChTetrahedronFace.h