Description
Face of a linear ChElementHexa_8 hexahedron.
This is a proxy to the hexahedron. It can be used to apply pressure loads. Corner nodes, obtainable with GetNodeN(), are in counterclockwise order seen from the outside.
v
^
3 o-----+-----o 2
| | |
--+-----+-----+-> u
| | |
0 o-----+-----o 1
#include <ChFaceHexa_8.h>


Public Member Functions | |
| ChFaceHexa_8 (std::shared_ptr< ChElementHexa_8 > mel, char mid) | |
| std::shared_ptr< ChNodeFEAxyz > | GetNodeN (int i) |
| void | ShapeFunctions (ChVectorN< double, 4 > &N, double x, double y) |
| Fills the N shape function vector (size 4) | |
| virtual int | LoadableGet_ndof_x () override |
| Gets the number of DOFs affected by this element (position part) | |
| virtual int | LoadableGet_ndof_w () override |
| Gets the number of DOFs affected by this element (speed part) | |
| virtual void | LoadableGetStateBlock_x (int block_offset, ChState &mD) override |
| Gets all the DOFs packed in a single vector (position part) | |
| virtual void | LoadableGetStateBlock_w (int block_offset, ChStateDelta &mD) override |
| Gets 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 int | Get_field_ncoords () override |
| Number of coordinates in the interpolated field: here the {x,y,z} displacement. | |
| virtual int | GetSubBlocks () override |
| Tell the number of DOFs blocks (ex. =1 for a body, =4 for a tetrahedron, etc.) | |
| virtual unsigned int | GetSubBlockOffset (int nblock) override |
| Get the offset of the i-th sub-block of DOFs in global vector. | |
| virtual unsigned int | GetSubBlockSize (int nblock) override |
| Get the size of the i-th sub-block of DOFs in global vector. | |
| 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 -1..+1 F is a load, N'*F is the resulting generalized load Returns also det[J] with J=[dx/du,..], that might be useful in gauss quadrature. More... | |
| virtual bool | IsTriangleIntegrationNeeded () override |
| If true, use quadrature over u,v in [0..1] range as triangle volumetric coords Regular quadrature used for this element. | |
| virtual ChVector | ComputeNormal (const double U, const double V) override |
| Gets the normal to the surface at the parametric coordinate u,v. More... | |
Protected Attributes | |
| char | face_id |
| std::shared_ptr< ChElementHexa_8 > | melement |
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 -1..+1 F is a load, N'*F is the resulting generalized load Returns also det[J] with J=[dx/du,..], that might be useful in gauss quadrature.
- Parameters
-
U parametric coordinate in surface V parametric coordinate in surface Qi Return result of N'*F here, maybe with offset block_offset detJ Return det[J] here 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 |
Gets the normal to the surface at the parametric coordinate u,v.
Note: the average normal is returned if the face is twisted. 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/ChFaceHexa_8.h