chrono::fea::ChElasticityCosserat Class Referenceabstract

Description

Base interface for elasticity of beam sections of Cosserat type, where xyz force "n" and xyz torque "m" are a 6-dimensional function of generalized strains, "e" traction/shear and "k" curvatures, as: {n,m}=f({e,k}) There are various children classes that implement this function in different ways.

Note that the Timoshenko beam theory can be a sub-case of this.

#include <ChBeamSectionCosserat.h>

Inheritance diagram for chrono::fea::ChElasticityCosserat:
Collaboration diagram for chrono::fea::ChElasticityCosserat:

Public Member Functions

virtual void ComputeStress (ChVector<> &stress_n, ChVector<> &stress_m, const ChVector<> &strain_e, const ChVector<> &strain_k)=0
 Compute the generalized cut force and cut torque, given actual deformation and curvature. More...
 
virtual void ComputeStiffnessMatrix (ChMatrixDynamic<> &K, const ChVector<> &strain_e, const ChVector<> &strain_k)
 Compute the 6x6 tangent material stiffness matrix [Km]=d/d, given actual deformation and curvature (if needed). More...
 
virtual void SetAsRectangularSection (double width_y, double width_z)=0
 Shortcut: set parameters at once, given the y and z widths of the beam assumed with rectangular shape. More...
 
virtual void SetAsCircularSection (double diameter)=0
 Shortcut: set parameters at once, given the diameter of the beam assumed with circular shape. More...
 

Public Attributes

ChBeamSectionCosseratsection
 

Member Function Documentation

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

Compute the 6x6 tangent material stiffness matrix [Km]=d/d, given actual deformation and curvature (if needed).

This must be overridden by subclasses if an analytical solution is known (preferred for high performance), otherwise the base behaviour here is to compute [Km] by numerical differentiation calling ComputeStress() multiple times.

Parameters
Kreturn the 6x6 material stiffness matrix values here
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 in chrono::fea::ChElasticityCosseratAdvanced, chrono::fea::ChElasticityCosseratGeneric, and chrono::fea::ChElasticityCosseratSimple.

virtual void chrono::fea::ChElasticityCosserat::ComputeStress ( ChVector<> &  stress_n,
ChVector<> &  stress_m,
const ChVector<> &  strain_e,
const ChVector<> &  strain_k 
)
pure virtual

Compute the generalized cut force and cut torque, given actual deformation and curvature.

This MUST be implemented by subclasses.

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

Implemented in chrono::fea::ChElasticityCosseratMesh, chrono::fea::ChElasticityCosseratAdvanced, chrono::fea::ChElasticityCosseratGeneric, and chrono::fea::ChElasticityCosseratSimple.

virtual void chrono::fea::ChElasticityCosserat::SetAsCircularSection ( double  diameter)
pure virtual

Shortcut: set parameters at once, given the diameter of the beam assumed with circular shape.

Implemented in chrono::fea::ChElasticityCosseratMesh, chrono::fea::ChElasticityCosseratGeneric, and chrono::fea::ChElasticityCosseratSimple.

virtual void chrono::fea::ChElasticityCosserat::SetAsRectangularSection ( double  width_y,
double  width_z 
)
pure virtual

Shortcut: set parameters at once, given the y and z widths of the beam assumed with rectangular shape.

Implemented in chrono::fea::ChElasticityCosseratMesh, chrono::fea::ChElasticityCosseratGeneric, and chrono::fea::ChElasticityCosseratSimple.