Description
Loadable volume of an element, with reference to some interpolated field.
This is used to apply UVW loads of ChLoaderUVWdistributed type, like gravity
#include <ChFieldElementLoadableVolume.h>


Public Member Functions | |
| ChFieldElementLoadableVolume (std::shared_ptr< ChFieldElementVolume > element, std::shared_ptr< ChFieldBase > field) | |
| Construct a loadable volume the given solid finite element and a field. More... | |
| virtual void | SetElement (std::shared_ptr< ChFieldElementVolume > element) |
| Set the element to wrap as loadable. | |
| 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. | |
| 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, const double W, 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. More... | |
| virtual double | GetDensity () override |
| This has no density - it requires a ChMaterial etc. | |
| virtual bool | IsTetrahedronIntegrationNeeded () override |
| If true, use quadrature over u,v in [0..1] range as triangle volumetric coords. | |
| virtual bool | IsTrianglePrismIntegrationNeeded () override |
| If true, use quadrature over u,v in [0..1] range as triangle natural coords (with z=1-u-v), and use linear quadrature over w in [-1..+1], otherwise use default quadrature over u,v,w in [-1..+1] as box isoparametric coords. | |
Constructor & Destructor Documentation
◆ ChFieldElementLoadableVolume()
|
inline |
Construct a loadable volume the given solid finite element and a field.
For example if the field is ChFieldTemperature, this can be used to receive a volumetric heat source. If the field is ChFieldDisplacement, this can receive gravity, etc.
Member Function Documentation
◆ ComputeNF()
|
overridevirtual |
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,..], which may be useful in Gauss quadrature.
- Parameters
-
U parametric coordinate in surface V parametric coordinate in surface W 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::ChLoadableUVW.
The documentation for this class was generated from the following files:
- /builds/uwsbel/chrono/src/chrono/fea/ChFieldElementLoadableVolume.h
- /builds/uwsbel/chrono/src/chrono/fea/ChFieldElementLoadableVolume.cpp