chrono::fea::ChElasticityCosseratAdvanced Class Reference

Description

Elasticity for a beam section in 3D, along with basic material properties.

It also supports the advanced case of Iyy and Izz axes rotated respect reference, centroid with offset from reference, and shear center with offset from reference. This material can be shared between multiple beams. The linear elasticity is uncoupled between shear terms S and axial terms A as to have this stiffness matrix pattern:

n_x [A A A ] e_x n_y [ S S S ] e_y n_z = [ S S S ] * e_z m_x [ S S S ] k_x m_y [A A A ] k_y m_z [A A A ] k_z

#include <ChBeamSectionCosserat.h>

Inheritance diagram for chrono::fea::ChElasticityCosseratAdvanced:
Collaboration diagram for chrono::fea::ChElasticityCosseratAdvanced:

Public Member Functions

void SetSectionRotation (double ma)
 "Elastic reference": set alpha, the rotation of the section for which the Iyy Izz are defined, respect to the reference section coordinate system. More...
 
double GetSectionRotation ()
 
void SetCentroid (double my, double mz)
 "Elastic reference": set the displacement of the centroid C (i.e. More...
 
double GetCentroidY ()
 
double GetCentroidZ ()
 
void SetShearRotation (double mb)
 "Shear reference": set beta, the rotation of the section for shear decoupling, respect to the reference section coordinate system. More...
 
double GetShearRotation ()
 
void SetShearCenter (double my, double mz)
 "Shear reference": set the displacement of the shear center S respect to the reference beam line. More...
 
double GetShearCenterY ()
 
double GetShearCenterZ ()
 
virtual void ComputeStress (ChVector<> &stress_n, ChVector<> &stress_m, const ChVector<> &strain_e, const ChVector<> &strain_k) override
 Compute the generalized cut force and cut torque. More...
 
virtual void ComputeStiffnessMatrix (ChMatrixDynamic<> &K, const ChVector<> &strain_e, const ChVector<> &strain_k) override
 Compute the 6x6 tangent material stiffness matrix [Km] =d/d. More...
 
- Public Member Functions inherited from chrono::fea::ChElasticityCosseratSimple
void SetIyy (double ma)
 Set the Iyy moment of inertia of the beam (for flexion about y axis) Note: some textbook calls this Iyy as Iz.
 
double GetIyy () const
 
void SetIzz (double ma)
 Set the Izz moment of inertia of the beam (for flexion about z axis) Note: some textbook calls this Izz as Iy.
 
double GetIzz () const
 
void SetJ (double ma)
 Set the J torsion constant of the beam (for torsion about x axis)
 
double GetJ () const
 
void SetKsy (double ma)
 Set the Timoshenko shear coefficient Ks for y shear, usually about 0.8, (for elements that use this, ex. More...
 
double GetKsy () const
 
void SetKsz (double ma)
 Set the Timoshenko shear coefficient Ks for z shear, usually about 0.8, (for elements that use this, ex. More...
 
double GetKsz () const
 
virtual void SetAsRectangularSection (double width_y, double width_z) override
 Shortcut: set Area, Ixx, Iyy, Ksy, Ksz and J torsion constant at once, given the y and z widths of the beam assumed with rectangular shape. More...
 
virtual void SetAsCircularSection (double diameter) override
 Shortcut: set Area, Ixx, Iyy, Ksy, Ksz and J torsion constant at once, given the diameter of the beam assumed with circular shape. More...
 
void SetYoungModulus (double mE)
 Set E, the Young elastic modulus (N/m^2)
 
double GetYoungModulus () const
 
void SetGshearModulus (double mG)
 Set G, the shear modulus.
 
double GetGshearModulus () const
 
void SetGwithPoissonRatio (double mpoisson)
 Set G, the shear modulus, given current E and the specified Poisson ratio.
 
void SetBeamRaleyghDamping (double mr)
 Set the Rayleigh damping ratio r (as in: R = r * K ), to do: also mass-proportional term.
 
double GetBeamRaleyghDamping ()
 

Public Attributes

double alpha
 
double Cy
 
double Cz
 
double beta
 
double Sy
 
double Sz
 
- Public Attributes inherited from chrono::fea::ChElasticityCosseratSimple
double Iyy
 
double Izz
 
double J
 
double G
 
double E
 
double rdamping
 
double Ks_y
 
double Ks_z
 
- Public Attributes inherited from chrono::fea::ChElasticityCosserat
ChBeamSectionCosseratsection
 

Member Function Documentation

void chrono::fea::ChElasticityCosseratAdvanced::ComputeStiffnessMatrix ( ChMatrixDynamic<> &  K,
const ChVector<> &  strain_e,
const ChVector<> &  strain_k 
)
overridevirtual

Compute the 6x6 tangent material stiffness matrix [Km] =d/d.

Parameters
Kreturn the 6x6 stiffness matrix
strain_ethe local strain (deformation part): x= elongation, y and z are shear
strain_kthe local strain (curvature part), x= torsion, y and z are line curvatures

Reimplemented from chrono::fea::ChElasticityCosseratSimple.

void chrono::fea::ChElasticityCosseratAdvanced::ComputeStress ( ChVector<> &  stress_n,
ChVector<> &  stress_m,
const ChVector<> &  strain_e,
const ChVector<> &  strain_k 
)
overridevirtual

Compute the generalized cut force and cut torque.

Parameters
stress_nreturn the local stress (generalized force), x component = traction along beam
stress_mreturn the local stress (generalized torque), x component = torsion torque along beam
strain_ethe local strain (deformation part): x= elongation, y and z are shear
strain_kthe local strain (curvature part), x= torsion, y and z are line curvatures

Reimplemented from chrono::fea::ChElasticityCosseratSimple.

void chrono::fea::ChElasticityCosseratAdvanced::SetCentroid ( double  my,
double  mz 
)

"Elastic reference": set the displacement of the centroid C (i.e.

the elastic center, or tension center) respect to the reference section coordinate system.

void chrono::fea::ChElasticityCosseratAdvanced::SetSectionRotation ( double  ma)

"Elastic reference": set alpha, the rotation of the section for which the Iyy Izz are defined, respect to the reference section coordinate system.

void chrono::fea::ChElasticityCosseratAdvanced::SetShearCenter ( double  my,
double  mz 
)

"Shear reference": set the displacement of the shear center S respect to the reference beam line.

For shapes like rectangles, rotated rectangles, etc., it corresponds to the centroid C, but for "L" shaped or "U" shaped beams this is not always true, and the shear center accounts for torsion effects when a shear force is applied.

void chrono::fea::ChElasticityCosseratAdvanced::SetShearRotation ( double  mb)

"Shear reference": set beta, the rotation of the section for shear decoupling, respect to the reference section coordinate system.

Usually it is same as alpha.