chrono::fea::ChElementShell Class Referenceabstract

Description

Base class for most structral elements of 'shell' type.

#include <ChElementShell.h>

Inheritance diagram for chrono::fea::ChElementShell:
Collaboration diagram for chrono::fea::ChElementShell:

Public Member Functions

virtual void EvaluateSectionDisplacement (const double u, const double v, const ChMatrix<> &displ, ChVector<> &u_displ, ChVector<> &u_rotaz)=0
 Gets the xyz displacement of a point on the shell, and the rotation RxRyRz of section reference, at parametric coordinates 'u' and 'v'. More...
 
virtual void EvaluateSectionFrame (const double u, const double v, const ChMatrix<> &displ, ChVector<> &point, ChQuaternion<> &rot)=0
 Gets the absolute xyz position of a point on the shell, and the absolute rotation of section reference, at parametric coordinates 'u' and 'v'. More...
 
virtual void EvaluateSectionPoint (const double u, const double v, const ChMatrix<> &displ, ChVector<> &point)=0
 Gets the absolute xyz position of a point on the shell, at parametric coordinates 'u' and 'v'. More...
 
virtual void EvaluateSectionVelNorm (double U, double V, ChVector<> &Result)=0
 Virtual method to plot velocity field distribution.
 
- Public Member Functions inherited from chrono::fea::ChElementGeneric
ChKblockGenericKstiffness ()
 Access the proxy to stiffness, for sparse solver.
 
virtual void EleIntLoadResidual_F (ChVectorDynamic<> &R, const double c) override
 (This is a default (a bit unoptimal) book keeping so that in children classes you can avoid implementing this EleIntLoadResidual_F function, unless you need faster code)
 
virtual void EleIntLoadResidual_Mv (ChVectorDynamic<> &R, const ChVectorDynamic<> &w, const double c) override
 (This is a default (VERY UNOPTIMAL) book keeping so that in children classes you can avoid implementing this EleIntLoadResidual_Mv function, unless you need faster code.)
 
virtual void ComputeMmatrixGlobal (ChMatrix<> &M) override
 Returns the global mass matrix. More...
 
virtual void InjectKRMmatrices (ChSystemDescriptor &mdescriptor) override
 Tell to a system descriptor that there are item(s) of type ChKblock in this object (for further passing it to a solver)
 
virtual void KRMmatricesLoad (double Kfactor, double Rfactor, double Mfactor) override
 Adds the current stiffness K and damping R and mass M matrices in encapsulated ChKblock item(s), if any. More...
 
virtual void VariablesFbLoadInternalForces (double factor=1.) override
 Adds the internal forces, expressed as nodal forces, into the encapsulated ChVariables, in the 'fb' part: qf+=forces*factor (This is a default (a bit unoptimal) book keeping so that in children classes you can avoid implementing this VariablesFbLoadInternalForces function, unless you need faster code)
 
virtual void VariablesFbIncrementMq () override
 Adds M*q (internal masses multiplied current 'qb') to Fb, ex. More...
 
- Public Member Functions inherited from chrono::fea::ChElementBase
virtual int GetNnodes ()=0
 Gets the number of nodes used by this element.
 
virtual int GetNdofs ()=0
 Gets the number of coordinates in the field used by the referenced nodes. More...
 
virtual int GetNodeNdofs (int n)=0
 Get the number of coordinates from the n-th node that are used by this element. More...
 
virtual std::shared_ptr
< ChNodeFEAbase
GetNodeN (int n)=0
 Access the nth node.
 
virtual void GetStateBlock (ChMatrixDynamic<> &mD)=0
 Fills the D vector (column matrix) with the current field values at the nodes of the element, with proper ordering. More...
 
virtual void ComputeNodalMass ()
 Compute element's nodal masses.
 
virtual void ComputeKRMmatricesGlobal (ChMatrix<> &H, double Kfactor, double Rfactor=0, double Mfactor=0)=0
 Sets H as the stiffness matrix K, scaled by Kfactor. More...
 
virtual void ComputeInternalForces (ChMatrixDynamic<> &Fi)=0
 Computes the internal forces (ex. More...
 
virtual void SetupInitial (ChSystem *system)
 Initial setup: This is used mostly to precompute matrices that do not change during the simulation, i.e. More...
 
virtual void Update ()
 Update: this is called at least at each time step. More...
 

Protected Attributes

double mass
 
- Protected Attributes inherited from chrono::fea::ChElementGeneric
ChKblockGeneric Kmatr
 

Member Function Documentation

virtual void chrono::fea::ChElementShell::EvaluateSectionDisplacement ( const double  u,
const double  v,
const ChMatrix<> &  displ,
ChVector<> &  u_displ,
ChVector<> &  u_rotaz 
)
pure virtual

Gets the xyz displacement of a point on the shell, and the rotation RxRyRz of section reference, at parametric coordinates 'u' and 'v'.

Note, u=-1..+1 , v= -1..+1. Note, 'displ' is the displ.state of nodes, ex. get it as GetStateBlock() Results are not corotated.

Implemented in chrono::fea::ChElementShellReissner4, and chrono::fea::ChElementShellANCF.

virtual void chrono::fea::ChElementShell::EvaluateSectionFrame ( const double  u,
const double  v,
const ChMatrix<> &  displ,
ChVector<> &  point,
ChQuaternion<> &  rot 
)
pure virtual

Gets the absolute xyz position of a point on the shell, and the absolute rotation of section reference, at parametric coordinates 'u' and 'v'.

Note, u=-1..+1 , v= -1..+1. Note, 'displ' is the displ.state of nodes, ex. get it as GetStateBlock() Results are corotated.

Implemented in chrono::fea::ChElementShellReissner4, and chrono::fea::ChElementShellANCF.

virtual void chrono::fea::ChElementShell::EvaluateSectionPoint ( const double  u,
const double  v,
const ChMatrix<> &  displ,
ChVector<> &  point 
)
pure virtual

Gets the absolute xyz position of a point on the shell, at parametric coordinates 'u' and 'v'.

Note, u=-1..+1 , v= -1..+1. Note, 'displ' is the displ.state of nodes, ex. get it as GetStateBlock() Results are corotated.

Implemented in chrono::fea::ChElementShellReissner4, and chrono::fea::ChElementShellANCF.