Description
Loadable surface of an element, with reference to some interpolated field.
This is used to apply UV loads of ChLoaderUVdistributed type, like pressure (for problems where the field is displacement), heat flux (for problems where the field is temperature), etc.
#include <ChFieldElementLoadableSurface.h>


Public Member Functions | |
| ChFieldElementLoadableSurface (std::shared_ptr< ChFieldElementSurface > element, std::shared_ptr< ChFieldBase > field) | |
| Construct a loadable surface the given a surface element (ex. More... | |
| virtual void | SetElement (std::shared_ptr< ChFieldElementSurface > element) |
| Set the element to wrap as loadable. | |
| virtual std::shared_ptr< ChFieldElementSurface > | GetElement () const |
| Get the wrapped element. | |
| 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, 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 bool | IsTriangleIntegrationNeeded () override |
| If true, use quadrature over u,v in [0..1] range as triangle coords. | |
| virtual ChVector3d | ComputeNormal (const double U, const double V) override |
| Gets the normal to the surface at the parametric coordinate u,v. More... | |
Constructor & Destructor Documentation
◆ ChFieldElementLoadableSurface()
|
inline |
Construct a loadable surface the given a surface element (ex.
a ChFieldElementTetrahedron4Face) and a field. For example if the field is ChFieldTemperature, this can be used to receive a surface heat flux loader. If the field is ChFieldDisplacement, this can receive pressure loaders, 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 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 |
Gets 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 files:
- /builds/uwsbel/chrono/src/chrono/fea/ChFieldElementLoadableSurface.h
- /builds/uwsbel/chrono/src/chrono/fea/ChFieldElementLoadableSurface.cpp