Project Chrono: chrono::ChLoadable Class Reference

Public Member Functions | List of all members
chrono::ChLoadable Class Referenceabstract

## Description

Interface for objects that can be subject to loads (forces) Forces can be distributed on UV surfaces, or lines, etc.,so look also the more detailed children classes.

`#include <ChLoadable.h>`

Inheritance diagram for chrono::ChLoadable:
[legend]

## Public Member Functions
virtual unsigned int | GetLoadableNumCoordsPosLevel ()=0
| Gets the number of DOFs affected by this element (position part).
virtual unsigned int | GetLoadableNumCoordsVelLevel ()=0
| Gets the number of DOFs affected by this element (speed part).
virtual void | LoadableGetStateBlockPosLevel (int block_offset, ChState &mD)=0
| Gets all the DOFs packed in a single vector (position part).
virtual void | LoadableGetStateBlockVelLevel (int block_offset, ChStateDelta &mD)=0
| 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)=0
| Increment all DOFs using a delta.
virtual unsigned int | GetNumFieldCoords ()=0
| Number of coordinates in the interpolated field (e.g., 3 for a tetrahedron, 1 for a thermal problem, etc.).
virtual unsigned int | GetNumSubBlocks ()=0
| Get the number of DOFs sub-blocks (e.g., 1 for a body, 4 for a tetrahedron, etc.).
virtual unsigned int | GetSubBlockOffset (unsigned int nblock)=0
| Get the offset of the specified sub-block of DOFs in global vector.
virtual unsigned int | GetSubBlockSize (unsigned int nblock)=0
| Get the size of the specified sub-block of DOFs in global vector.
virtual bool | IsSubBlockActive (unsigned int nblock) const =0
| Check if the specified sub-block of DOFs is active.
virtual void | LoadableGetVariables (std::vector< ChVariables * > &mvars)=0
| Get the pointers to the contained ChVariables, appending to the mvars vector.

## Member Function Documentation

## ◆ GetLoadableNumCoordsPosLevel()

virtual unsigned int chrono::ChLoadable::GetLoadableNumCoordsPosLevel | ( |  | ) |
| pure virtual

Gets the number of DOFs affected by this element (position part).

Implemented in chrono::ChNodeXYZ, chrono::ChShaft, chrono::fea::ChContactTriangleXYZ, chrono::fea::ChContactTriangleXYZRot, chrono::fea::ChElementBeamANCF_3243, chrono::fea::ChElementBeamANCF_3333, chrono::fea::ChElementBeamEuler, chrono::fea::ChElementBeamIGA, chrono::fea::ChElementBeamTaperedTimoshenko, chrono::fea::ChElementCableANCF, chrono::fea::ChElementHexaANCF_3813, chrono::fea::ChElementHexaANCF_3813_9, chrono::fea::ChElementHexaANCF_3843, chrono::fea::ChElementHexaCorot_20, chrono::fea::ChElementHexaCorot_8, chrono::fea::ChElementShellANCF_3423, chrono::fea::ChElementShellANCF_3443, chrono::fea::ChElementShellANCF_3833, chrono::fea::ChElementShellBST, chrono::fea::ChElementShellReissner4, chrono::fea::ChElementTetraCorot_10, chrono::fea::ChElementTetraCorot_4, chrono::fea::ChElementTetraCorot_4_P, chrono::fea::ChHexahedronFace, chrono::fea::ChNodeFEAxyzD, chrono::fea::ChNodeFEAxyzDD, chrono::fea::ChNodeFEAxyzDDD, chrono::fea::ChNodeFEAxyzrot, and chrono::fea::ChTetrahedronFace.

## ◆ GetLoadableNumCoordsVelLevel()

virtual unsigned int chrono::ChLoadable::GetLoadableNumCoordsVelLevel | ( |  | ) |
| pure virtual

Gets the number of DOFs affected by this element (speed part).

Implemented in chrono::ChNodeXYZ, chrono::ChShaft, chrono::fea::ChContactTriangleXYZ, chrono::fea::ChContactTriangleXYZRot, chrono::fea::ChElementBeamANCF_3243, chrono::fea::ChElementBeamANCF_3333, chrono::fea::ChElementBeamEuler, chrono::fea::ChElementBeamIGA, chrono::fea::ChElementBeamTaperedTimoshenko, chrono::fea::ChElementCableANCF, chrono::fea::ChElementHexaANCF_3813, chrono::fea::ChElementHexaANCF_3813_9, chrono::fea::ChElementHexaANCF_3843, chrono::fea::ChElementHexaCorot_20, chrono::fea::ChElementHexaCorot_8, chrono::fea::ChElementShellANCF_3423, chrono::fea::ChElementShellANCF_3443, chrono::fea::ChElementShellANCF_3833, chrono::fea::ChElementShellBST, chrono::fea::ChElementShellReissner4, chrono::fea::ChElementTetraCorot_10, chrono::fea::ChElementTetraCorot_4, chrono::fea::ChElementTetraCorot_4_P, chrono::fea::ChHexahedronFace, chrono::fea::ChNodeFEAxyzD, chrono::fea::ChNodeFEAxyzDD, chrono::fea::ChNodeFEAxyzDDD, chrono::fea::ChNodeFEAxyzrot, and chrono::fea::ChTetrahedronFace.

## ◆ GetNumFieldCoords()

virtual unsigned int chrono::ChLoadable::GetNumFieldCoords | ( |  | ) |
| pure virtual

Number of coordinates in the interpolated field (e.g., 3 for a tetrahedron, 1 for a thermal problem, etc.).

Implemented in chrono::ChNodeXYZ, chrono::ChShaft, chrono::fea::ChContactTriangleXYZ, chrono::fea::ChContactTriangleXYZRot, chrono::fea::ChElementBeamANCF_3243, chrono::fea::ChElementBeamANCF_3333, chrono::fea::ChElementBeamEuler, chrono::fea::ChElementBeamIGA, chrono::fea::ChElementBeamTaperedTimoshenko, chrono::fea::ChElementCableANCF, chrono::fea::ChElementHexaANCF_3813, chrono::fea::ChElementHexaANCF_3813_9, chrono::fea::ChElementHexaANCF_3843, chrono::fea::ChElementHexaCorot_20, chrono::fea::ChElementHexaCorot_8, chrono::fea::ChElementShellANCF_3423, chrono::fea::ChElementShellANCF_3443, chrono::fea::ChElementShellANCF_3833, chrono::fea::ChElementShellBST, chrono::fea::ChElementShellReissner4, chrono::fea::ChElementTetraCorot_10, chrono::fea::ChElementTetraCorot_4, chrono::fea::ChElementTetraCorot_4_P, chrono::fea::ChHexahedronFace, chrono::fea::ChNodeFEAxyzD, chrono::fea::ChNodeFEAxyzDD, chrono::fea::ChNodeFEAxyzDDD, chrono::fea::ChNodeFEAxyzrot, and chrono::fea::ChTetrahedronFace.

## ◆ GetNumSubBlocks()

virtual unsigned int chrono::ChLoadable::GetNumSubBlocks | ( |  | ) |
| pure virtual

Get the number of DOFs sub-blocks (e.g., 1 for a body, 4 for a tetrahedron, etc.).

Implemented in chrono::ChNodeXYZ, chrono::ChShaft, chrono::fea::ChContactTriangleXYZ, chrono::fea::ChContactTriangleXYZRot, chrono::fea::ChElementBeamANCF_3243, chrono::fea::ChElementBeamANCF_3333, chrono::fea::ChElementBeamEuler, chrono::fea::ChElementBeamIGA, chrono::fea::ChElementBeamTaperedTimoshenko, chrono::fea::ChElementCableANCF, chrono::fea::ChElementHexaANCF_3813, chrono::fea::ChElementHexaANCF_3813_9, chrono::fea::ChElementHexaANCF_3843, chrono::fea::ChElementHexaCorot_20, chrono::fea::ChElementHexaCorot_8, chrono::fea::ChElementShellANCF_3423, chrono::fea::ChElementShellANCF_3443, chrono::fea::ChElementShellANCF_3833, chrono::fea::ChElementShellBST, chrono::fea::ChElementShellReissner4, chrono::fea::ChElementTetraCorot_10, chrono::fea::ChElementTetraCorot_4, chrono::fea::ChElementTetraCorot_4_P, chrono::fea::ChHexahedronFace, chrono::fea::ChNodeFEAxyzrot, and chrono::fea::ChTetrahedronFace.

## ◆ GetSubBlockOffset()

virtual unsigned int chrono::ChLoadable::GetSubBlockOffset | ( | unsigned int | nblock | ) |
| pure virtual

Get the offset of the specified sub-block of DOFs in global vector.

Implemented in chrono::ChNodeXYZ, chrono::ChShaft, chrono::fea::ChContactTriangleXYZ, chrono::fea::ChContactTriangleXYZRot, chrono::fea::ChElementBeamANCF_3243, chrono::fea::ChElementBeamANCF_3333, chrono::fea::ChElementBeamEuler, chrono::fea::ChElementBeamIGA, chrono::fea::ChElementBeamTaperedTimoshenko, chrono::fea::ChElementCableANCF, chrono::fea::ChElementHexaANCF_3813, chrono::fea::ChElementHexaANCF_3813_9, chrono::fea::ChElementHexaANCF_3843, chrono::fea::ChElementHexaCorot_20, chrono::fea::ChElementHexaCorot_8, chrono::fea::ChElementShellANCF_3423, chrono::fea::ChElementShellANCF_3443, chrono::fea::ChElementShellANCF_3833, chrono::fea::ChElementShellBST, chrono::fea::ChElementShellReissner4, chrono::fea::ChElementTetraCorot_10, chrono::fea::ChElementTetraCorot_4, chrono::fea::ChElementTetraCorot_4_P, chrono::fea::ChHexahedronFace, chrono::fea::ChNodeFEAxyzrot, and chrono::fea::ChTetrahedronFace.

## ◆ GetSubBlockSize()

virtual unsigned int chrono::ChLoadable::GetSubBlockSize | ( | unsigned int | nblock | ) |
| pure virtual

Get the size of the specified sub-block of DOFs in global vector.

Implemented in chrono::ChNodeXYZ, chrono::ChShaft, chrono::fea::ChContactTriangleXYZ, chrono::fea::ChContactTriangleXYZRot, chrono::fea::ChElementBeamANCF_3243, chrono::fea::ChElementBeamANCF_3333, chrono::fea::ChElementBeamEuler, chrono::fea::ChElementBeamIGA, chrono::fea::ChElementBeamTaperedTimoshenko, chrono::fea::ChElementCableANCF, chrono::fea::ChElementHexaANCF_3813, chrono::fea::ChElementHexaANCF_3813_9, chrono::fea::ChElementHexaANCF_3843, chrono::fea::ChElementHexaCorot_20, chrono::fea::ChElementHexaCorot_8, chrono::fea::ChElementShellANCF_3423, chrono::fea::ChElementShellANCF_3443, chrono::fea::ChElementShellANCF_3833, chrono::fea::ChElementShellBST, chrono::fea::ChElementShellReissner4, chrono::fea::ChElementTetraCorot_10, chrono::fea::ChElementTetraCorot_4, chrono::fea::ChElementTetraCorot_4_P, chrono::fea::ChHexahedronFace, chrono::fea::ChNodeFEAxyzD, chrono::fea::ChNodeFEAxyzDD, chrono::fea::ChNodeFEAxyzDDD, chrono::fea::ChNodeFEAxyzrot, and chrono::fea::ChTetrahedronFace.

## ◆ IsSubBlockActive()

virtual bool chrono::ChLoadable::IsSubBlockActive | ( | unsigned int | nblock | ) | const
| pure virtual

Check if the specified sub-block of DOFs is active.

Implemented in chrono::ChNodeXYZ, chrono::ChShaft, chrono::fea::ChContactTriangleXYZ, chrono::fea::ChContactTriangleXYZRot, chrono::fea::ChElementBeamANCF_3243, chrono::fea::ChElementBeamANCF_3333, chrono::fea::ChElementBeamEuler, chrono::fea::ChElementBeamIGA, chrono::fea::ChElementBeamTaperedTimoshenko, chrono::fea::ChElementCableANCF, chrono::fea::ChElementHexaANCF_3813, chrono::fea::ChElementHexaANCF_3813_9, chrono::fea::ChElementHexaANCF_3843, chrono::fea::ChElementHexaCorot_20, chrono::fea::ChElementHexaCorot_8, chrono::fea::ChElementShellANCF_3423, chrono::fea::ChElementShellANCF_3443, chrono::fea::ChElementShellANCF_3833, chrono::fea::ChElementShellBST, chrono::fea::ChElementShellReissner4, chrono::fea::ChElementTetraCorot_10, chrono::fea::ChElementTetraCorot_4, chrono::fea::ChElementTetraCorot_4_P, chrono::fea::ChHexahedronFace, chrono::fea::ChNodeFEAxyzrot, and chrono::fea::ChTetrahedronFace.

## ◆ LoadableGetStateBlockPosLevel()

virtual void chrono::ChLoadable::LoadableGetStateBlockPosLevel | ( | int | block_offset,
|  | ChState & | mD )
| pure virtual

Gets all the DOFs packed in a single vector (position part).

Implemented in chrono::ChBody, chrono::ChNodeXYZ, chrono::ChShaft, chrono::fea::ChContactTriangleXYZ, chrono::fea::ChContactTriangleXYZRot, chrono::fea::ChElementBeamANCF_3243, chrono::fea::ChElementBeamANCF_3333, chrono::fea::ChElementBeamEuler, chrono::fea::ChElementBeamIGA, chrono::fea::ChElementBeamTaperedTimoshenko, chrono::fea::ChElementCableANCF, chrono::fea::ChElementHexaANCF_3813, chrono::fea::ChElementHexaANCF_3813_9, chrono::fea::ChElementHexaANCF_3843, chrono::fea::ChElementHexaCorot_20, chrono::fea::ChElementHexaCorot_8, chrono::fea::ChElementShellANCF_3423, chrono::fea::ChElementShellANCF_3443, chrono::fea::ChElementShellANCF_3833, chrono::fea::ChElementShellBST, chrono::fea::ChElementShellReissner4, chrono::fea::ChElementTetraCorot_10, chrono::fea::ChElementTetraCorot_4, chrono::fea::ChElementTetraCorot_4_P, chrono::fea::ChHexahedronFace, chrono::fea::ChNodeFEAxyzD, chrono::fea::ChNodeFEAxyzDD, chrono::fea::ChNodeFEAxyzDDD, chrono::fea::ChNodeFEAxyzrot, and chrono::fea::ChTetrahedronFace.

## ◆ LoadableGetStateBlockVelLevel()

virtual void chrono::ChLoadable::LoadableGetStateBlockVelLevel | ( | int | block_offset,
|  | ChStateDelta & | mD )
| pure virtual

Gets all the DOFs packed in a single vector (speed part).

Implemented in chrono::ChBody, chrono::ChNodeXYZ, chrono::ChShaft, chrono::fea::ChContactTriangleXYZ, chrono::fea::ChContactTriangleXYZRot, chrono::fea::ChElementBeamANCF_3243, chrono::fea::ChElementBeamANCF_3333, chrono::fea::ChElementBeamEuler, chrono::fea::ChElementBeamIGA, chrono::fea::ChElementBeamTaperedTimoshenko, chrono::fea::ChElementCableANCF, chrono::fea::ChElementHexaANCF_3813, chrono::fea::ChElementHexaANCF_3813_9, chrono::fea::ChElementHexaANCF_3843, chrono::fea::ChElementHexaCorot_20, chrono::fea::ChElementHexaCorot_8, chrono::fea::ChElementShellANCF_3423, chrono::fea::ChElementShellANCF_3443, chrono::fea::ChElementShellANCF_3833, chrono::fea::ChElementShellBST, chrono::fea::ChElementShellReissner4, chrono::fea::ChElementTetraCorot_10, chrono::fea::ChElementTetraCorot_4, chrono::fea::ChElementTetraCorot_4_P, chrono::fea::ChHexahedronFace, chrono::fea::ChNodeFEAxyzD, chrono::fea::ChNodeFEAxyzDD, chrono::fea::ChNodeFEAxyzDDD, chrono::fea::ChNodeFEAxyzrot, and chrono::fea::ChTetrahedronFace.

## ◆ LoadableGetVariables()

virtual void chrono::ChLoadable::LoadableGetVariables | ( | std::vector< ChVariables * > & | mvars | ) |
| pure virtual

Get the pointers to the contained ChVariables, appending to the mvars vector.

Implemented in chrono::ChBody, chrono::ChNodeXYZ, chrono::ChShaft, chrono::fea::ChContactTriangleXYZ, chrono::fea::ChContactTriangleXYZRot, chrono::fea::ChElementBeamANCF_3243, chrono::fea::ChElementBeamANCF_3333, chrono::fea::ChElementBeamEuler, chrono::fea::ChElementBeamIGA, chrono::fea::ChElementBeamTaperedTimoshenko, chrono::fea::ChElementCableANCF, chrono::fea::ChElementHexaANCF_3813, chrono::fea::ChElementHexaANCF_3813_9, chrono::fea::ChElementHexaANCF_3843, chrono::fea::ChElementHexaCorot_20, chrono::fea::ChElementHexaCorot_8, chrono::fea::ChElementShellANCF_3423, chrono::fea::ChElementShellANCF_3443, chrono::fea::ChElementShellANCF_3833, chrono::fea::ChElementShellBST, chrono::fea::ChElementShellReissner4, chrono::fea::ChElementTetraCorot_10, chrono::fea::ChElementTetraCorot_4, chrono::fea::ChElementTetraCorot_4_P, chrono::fea::ChHexahedronFace, chrono::fea::ChNodeFEAxyzD, chrono::fea::ChNodeFEAxyzDD, chrono::fea::ChNodeFEAxyzDDD, chrono::fea::ChNodeFEAxyzrot, and chrono::fea::ChTetrahedronFace.

## ◆ LoadableStateIncrement()

virtual void chrono::ChLoadable::LoadableStateIncrement | ( | const unsigned int | off_x,
|  | ChState & | x_new,
|  | const ChState & | x,
|  | const unsigned int | off_v,
|  | const ChStateDelta & | Dv )
| pure virtual

Increment all DOFs using a delta.

Default is sum, but may override if ndof_x is different than ndof_w, for example with rotation quaternions and angular w vel. This could be invoked, for example, by the BDF differentiation that computes the jacobians.

Implemented in chrono::ChBody, chrono::ChNodeXYZ, chrono::ChShaft, chrono::fea::ChContactTriangleXYZ, chrono::fea::ChContactTriangleXYZRot, chrono::fea::ChElementBeamANCF_3243, chrono::fea::ChElementBeamANCF_3333, chrono::fea::ChElementBeamEuler, chrono::fea::ChElementBeamIGA, chrono::fea::ChElementBeamTaperedTimoshenko, chrono::fea::ChElementCableANCF, chrono::fea::ChElementHexaANCF_3813, chrono::fea::ChElementHexaANCF_3813_9, chrono::fea::ChElementHexaANCF_3843, chrono::fea::ChElementHexaCorot_20, chrono::fea::ChElementHexaCorot_8, chrono::fea::ChElementShellANCF_3423, chrono::fea::ChElementShellANCF_3443, chrono::fea::ChElementShellANCF_3833, chrono::fea::ChElementShellBST, chrono::fea::ChElementShellReissner4, chrono::fea::ChElementTetraCorot_10, chrono::fea::ChElementTetraCorot_4, chrono::fea::ChElementTetraCorot_4_P, chrono::fea::ChHexahedronFace, chrono::fea::ChNodeFEAxyzD, chrono::fea::ChNodeFEAxyzDD, chrono::fea::ChNodeFEAxyzDDD, chrono::fea::ChNodeFEAxyzrot, and chrono::fea::ChTetrahedronFace.

The documentation for this class was generated from the following file:

- D:/W/B/src/chrono-9.0.1/src/chrono/physics/ChLoadable.h