chrono::ChLoadableU Class Referenceabstract

Description

Interface for objects that can be subject to line loads, distributed along U coordinate of the object.

For instance finite elements like beams.

#include <ChLoadable.h>

Inheritance diagram for chrono::ChLoadableU:
Collaboration diagram for chrono::ChLoadableU:

Public Member Functions

virtual void ComputeNF (const double U, ChVectorDynamic<> &Qi, double &detJ, const ChVectorDynamic<> &F, ChVectorDynamic<> *state_x, ChVectorDynamic<> *state_w)=0
 Evaluate N'*F , where N is some type of shape function evaluated at U coordinate of the line, 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...
 
- Public Member Functions inherited from chrono::ChLoadable
virtual int LoadableGet_ndof_x ()=0
 Gets the number of DOFs affected by this element (position part)
 
virtual int LoadableGet_ndof_w ()=0
 Gets the number of DOFs affected by this element (speed part)
 
virtual void LoadableGetStateBlock_x (int block_offset, ChState &mD)=0
 Gets all the DOFs packed in a single vector (position part)
 
virtual void LoadableGetStateBlock_w (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. More...
 
virtual int Get_field_ncoords ()=0
 Number of coordinates in the interpolated field, ex=3 for a tetrahedron finite element or a cable, = 1 for a thermal problem, etc. More...
 
virtual int GetSubBlocks ()=0
 Tell the number of DOFs blocks (ex. =1 for a body, =4 for a tetrahedron, etc.)
 
virtual unsigned int GetSubBlockOffset (int nblock)=0
 Get the offset of the i-th sub-block of DOFs in global vector.
 
virtual unsigned int GetSubBlockSize (int nblock)=0
 Get the size of the i-th sub-block of DOFs in global vector.
 
virtual void LoadableGetVariables (std::vector< ChVariables * > &mvars)=0
 Get the pointers to the contained ChVariables, appending to the mvars vector.
 

Member Function Documentation

virtual void chrono::ChLoadableU::ComputeNF ( const double  U,
ChVectorDynamic<> &  Qi,
double &  detJ,
const ChVectorDynamic<> &  F,
ChVectorDynamic<> *  state_x,
ChVectorDynamic<> *  state_w 
)
pure virtual

Evaluate N'*F , where N is some type of shape function evaluated at U coordinate of the line, 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
Uparametric coordinate in line
QiReturn result of Q = N'*F here
detJReturn det[J] here
FInput F vector, size is =n. field coords.
state_xif != 0, update state (pos. part) to this, then evaluate Q
state_wif != 0, update state (speed part) to this, then evaluate Q

Implemented in chrono::fea::ChElementBeamEuler, chrono::fea::ChElementCableANCF, and chrono::fea::ChElementBeamANCF.