Description
Base class for most structural elements of 'shell' type.
#include <ChElementShell.h>
Public Member Functions | |
virtual void | EvaluateSectionDisplacement (const double u, const double v, 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, 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, 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. More... | |
virtual bool | IsTriangleShell () |
Return false if quadrilateral shell - hence u,v parametric coordinates assumed in -1..+1, return true if triangular shell - hence u,v are triangle natural coordinates assumed in 0..+1. | |
Public Member Functions inherited from chrono::fea::ChElementGeneric | |
ChKblockGeneric & | Kstiffness () |
Access the proxy to stiffness, for sparse solver. | |
virtual void | EleIntLoadResidual_F (ChVectorDynamic<> &R, const double c) override |
Add the internal forces (pasted at global nodes offsets) into a global vector R, multiplied by a scaling factor c, as R += forces * c This default implementation is SLIGHTLY INEFFICIENT. | |
virtual void | EleIntLoadResidual_Mv (ChVectorDynamic<> &R, const ChVectorDynamic<> &w, const double c) override |
Add the product of element mass M by a vector w (pasted at global nodes offsets) into a global vector R, multiplied by a scaling factor c, as R += M * w * c This default implementation is VERY INEFFICIENT. | |
virtual void | EleIntLoadResidual_F_gravity (ChVectorDynamic<> &R, const ChVector<> &G_acc, const double c) override |
Add the contribution of gravity loads, multiplied by a scaling factor c, as: R += M * g * c This default implementation is VERY INEFFICIENT. More... | |
virtual void | ComputeGravityForces (ChVectorDynamic<> &Fg, const ChVector<> &G_acc) override |
Compute the gravitational forces. More... | |
virtual void | ComputeMmatrixGlobal (ChMatrixRef M) override |
Calculate the mass matrix, expressed in global reference. More... | |
virtual void | InjectKRMmatrices (ChSystemDescriptor &descriptor) 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 |
Add 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 |
Add the internal forces, expressed as nodal forces, into the encapsulated ChVariables. | |
virtual void | VariablesFbIncrementMq () override |
Add M*q (internal masses multiplied current 'qb'). | |
Public Member Functions inherited from chrono::fea::ChElementBase | |
virtual int | GetNnodes ()=0 |
Get the number of nodes used by this element. | |
virtual int | GetNdofs ()=0 |
Get the number of coordinates in the field used by the referenced nodes. More... | |
virtual int | GetNdofs_active () |
Get the actual number of active degrees of freedom. More... | |
virtual int | GetNodeNdofs (int n)=0 |
Get the number of coordinates from the specified node that are used by this element. More... | |
virtual int | GetNodeNdofs_active (int n) |
Get the actual number of active coordinates from the specified node that are used by this element. More... | |
virtual std::shared_ptr< ChNodeFEAbase > | GetNodeN (int n)=0 |
Access the nth node. | |
virtual void | GetStateBlock (ChVectorDynamic<> &mD)=0 |
Fill the D vector 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 (ChMatrixRef H, double Kfactor, double Rfactor=0, double Mfactor=0)=0 |
Set H as the stiffness matrix K, scaled by Kfactor. More... | |
virtual void | ComputeInternalForces (ChVectorDynamic<> &Fi)=0 |
Compute the internal forces. More... | |
virtual void | Update () |
Update, called at least at each time step. More... | |
virtual void | EleDoIntegration () |
This is optionally implemented if there is some internal state that requires integration. | |
Protected Attributes | |
double | mass |
Protected Attributes inherited from chrono::fea::ChElementGeneric | |
ChKblockGeneric | Kmatr |
Member Function Documentation
◆ EvaluateSectionDisplacement()
|
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 parametric coordinates, except if triangular shell, where u=0..+1, v=0..+1, natural triangle coords. Results are not corotated.
Implemented in chrono::fea::ChElementShellANCF_3833, chrono::fea::ChElementShellANCF_3443, chrono::fea::ChElementShellReissner4, chrono::fea::ChElementShellBST, and chrono::fea::ChElementShellANCF_3423.
◆ EvaluateSectionFrame()
|
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 parametric coordinates, except if triangular shell, where u=0..+1, v=0..+1, natural triangle coords. Results are corotated.
Implemented in chrono::fea::ChElementShellANCF_3833, chrono::fea::ChElementShellANCF_3443, chrono::fea::ChElementShellReissner4, chrono::fea::ChElementShellBST, and chrono::fea::ChElementShellANCF_3423.
◆ EvaluateSectionPoint()
|
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 parametric coordinates, except if triangular shell, where u=0..+1, v=0..+1, natural triangle coords. Results are corotated.
Implemented in chrono::fea::ChElementShellANCF_3833, chrono::fea::ChElementShellANCF_3443, chrono::fea::ChElementShellReissner4, chrono::fea::ChElementShellBST, and chrono::fea::ChElementShellANCF_3423.
◆ EvaluateSectionVelNorm()
|
pure virtual |
Virtual method to plot velocity field distribution.
Note, u=-1..+1 , v= -1..+1 parametric coordinates, except if triangular shell, where u=0..+1, v=0..+1, natural triangle coords.
Implemented in chrono::fea::ChElementShellReissner4, chrono::fea::ChElementShellANCF_3423, chrono::fea::ChElementShellBST, chrono::fea::ChElementShellANCF_3833, and chrono::fea::ChElementShellANCF_3443.
The documentation for this class was generated from the following file:
- /builds/uwsbel/chrono/src/chrono/fea/ChElementShell.h