chrono::fea::ChInertiaCosseratSimple Class Reference

Description

Inertia properties of a beam of Cosserat type, defined from an uniform density [kg/m^3], and the following geometric information:

  • a section area
  • Iyy Izz second moments of area The polar moment of area is automatically inferred via perpendicular axis theorem, Ip=Iyy+Izz. The section is assumed aligned to principal axis of the moment of area tensor, ie. Iyz=0, The section is assumed to be centered in the center of mass, The density is constant.

#include <ChBeamSectionCosserat.h>

Inheritance diagram for chrono::fea::ChInertiaCosseratSimple:
Collaboration diagram for chrono::fea::ChInertiaCosseratSimple:

Public Member Functions

 ChInertiaCosseratSimple (double density, double Area, double Iyy_area_moment, double Izz_area_moment)
 
virtual void ComputeInertiaMatrix (ChMatrixNM< double, 6, 6 > &M) override
 Compute the 6x6 sectional inertia matrix, as in {x_momentum,w_momentum}=[Mm]{xvel,wvel} The matrix is computed in the material reference (i.e. More...
 
virtual void ComputeQuadraticTerms (ChVector<> &mF, ChVector<> &mT, const ChVector<> &mW) override
 Compute the values of inertial torque depending on quadratic velocity terms, per unit length, that is the gyroscopic torque w x [J]w . More...
 
virtual double GetMassPerUnitLength () override
 Compute mass per unit length, ex.SI units [kg/m] In this case is simply \( \mu = \rho A \), given area in [m^2] and with \( \rho \) density in [kg/m^3].
 
virtual double GetInertiaJxxPerUnitLength ()
 Compute the Jxx component of the inertia tensor per unit length, i.e. More...
 
virtual double GetInertiaJyyPerUnitLength ()
 Compute the Jyy component of the inertia tensor per unit length, i.e. More...
 
virtual double GetInertiaJzzPerUnitLength ()
 Compute the Jzz component of the inertia tensor per unit length, i.e. More...
 
void SetDensity (const double md)
 Set the volumetric density, assumed constant in the section. Ex. SI units: [kg/m^3].
 
double GetDensity () const
 
void SetArea (const double ma)
 Set the area of section for computing mass properties. Ex. SI units: [m^2].
 
double GetArea () const
 
void SetIyy (double mi)
 Set the Iyy second moment of area of the beam (for bending about y in xz plane), defined as \( I_{yy} = \int_\Omega z^2 d\Omega \). More...
 
double GetIyy () const
 
void SetIzz (double mi)
 Set the Izz second moment of area of the beam (for bending about z in xy plane), defined as \( I_{zz} = \int_\Omega y^2 d\Omega \). More...
 
double GetIzz () const
 
virtual void SetAsRectangularSection (double width_y, double width_z, double density)
 Shortcut: set Izz, Iyy, Area and density at once, given the y and z widths of the beam assumed with rectangular shape, and volumetric density. More...
 
virtual void SetAsCircularSection (double diameter, double density)
 Shortcut: set Izz, Iyy, Area and density at once, given the diameter the beam assumed with circular shape, and volumetric density. More...
 

Additional Inherited Members

- Public Attributes inherited from chrono::fea::ChInertiaCosserat
ChBeamSectionCosseratsection
 

Constructor & Destructor Documentation

◆ ChInertiaCosseratSimple()

chrono::fea::ChInertiaCosseratSimple::ChInertiaCosseratSimple ( double  density,
double  Area,
double  Iyy_area_moment,
double  Izz_area_moment 
)
inline
Parameters
densitythe density fo the material [kg/m^3], assumed constant
Areaarea of the section, [m^2]
Iyy_area_momentsecond moment of area [m^4] about Y
Izz_area_momentsecond moment of area [m^4] about Z

Member Function Documentation

◆ ComputeInertiaMatrix()

void chrono::fea::ChInertiaCosseratSimple::ComputeInertiaMatrix ( ChMatrixNM< double, 6, 6 > &  M)
overridevirtual

Compute the 6x6 sectional inertia matrix, as in {x_momentum,w_momentum}=[Mm]{xvel,wvel} The matrix is computed in the material reference (i.e.

it is the sectional mass matrix). In this case it is simply a constant diagonal mass matrix with diagonal {rho*A,rho*A,rho*A, rho*Iyy+Izz, rho*Iyy, rho*Izz}

Parameters
M6x6 sectional mass matrix values here

Implements chrono::fea::ChInertiaCosserat.

◆ ComputeQuadraticTerms()

void chrono::fea::ChInertiaCosseratSimple::ComputeQuadraticTerms ( ChVector<> &  mF,
ChVector<> &  mT,
const ChVector<> &  mW 
)
overridevirtual

Compute the values of inertial torque depending on quadratic velocity terms, per unit length, that is the gyroscopic torque w x [J]w .

Quadratic force is null as mass is centered. All terms expressed in the material reference, ie. the reference in the centerline of the section.

Parameters
mFcentrifugal term (if any) returned here
mTgyroscopic term returned here
mWcurrent angular velocity of section, in material frame

Implements chrono::fea::ChInertiaCosserat.

◆ GetInertiaJxxPerUnitLength()

virtual double chrono::fea::ChInertiaCosseratSimple::GetInertiaJxxPerUnitLength ( )
inlinevirtual

Compute the Jxx component of the inertia tensor per unit length, i.e.

the part associated with rotation about the beam direction. In this case it is \( J_{xx} = \rho I_p \), where \( I_p = I_{zz} + I_{yy} \) is the polar moment of area.

◆ GetInertiaJyyPerUnitLength()

virtual double chrono::fea::ChInertiaCosseratSimple::GetInertiaJyyPerUnitLength ( )
inlinevirtual

Compute the Jyy component of the inertia tensor per unit length, i.e.

the part associated with rotation of the section on its Y axis. Defined as: \( J_{yy} = \int_\Omega \rho z^2 d\Omega \), with \( \rho \) density in [kg/m^3]. For uniform density it is \( J_{yy} = \rho I_{yy} \), where \( I_{yy} = \int_\Omega z^2 d\Omega \) is the second moment of area.

◆ GetInertiaJzzPerUnitLength()

virtual double chrono::fea::ChInertiaCosseratSimple::GetInertiaJzzPerUnitLength ( )
inlinevirtual

Compute the Jzz component of the inertia tensor per unit length, i.e.

the part associated with rotation of the section on its Z axis. Defined as: \( J_{zz} = \int_\Omega \rho y^2 d\Omega \), with \( \rho \) density in [kg/m^3]. For uniform density it is \( J_{zz} = \rho I_{zz} \), where \( I_{zz} = \int_\Omega y^2 d\Omega \) is the second moment of area.

◆ SetAsCircularSection()

void chrono::fea::ChInertiaCosseratSimple::SetAsCircularSection ( double  diameter,
double  density 
)
virtual

Shortcut: set Izz, Iyy, Area and density at once, given the diameter the beam assumed with circular shape, and volumetric density.

Assuming centered section.

◆ SetAsRectangularSection()

void chrono::fea::ChInertiaCosseratSimple::SetAsRectangularSection ( double  width_y,
double  width_z,
double  density 
)
virtual

Shortcut: set Izz, Iyy, Area and density at once, given the y and z widths of the beam assumed with rectangular shape, and volumetric density.

Assuming centered section.

◆ SetIyy()

void chrono::fea::ChInertiaCosseratSimple::SetIyy ( double  mi)
inline

Set the Iyy second moment of area of the beam (for bending about y in xz plane), defined as \( I_{yy} = \int_\Omega z^2 d\Omega \).

Note: some textbook calls this Iyy as Iy. Note: it can correspond to the same Iyy that you used for the elasticity, ex. in ChElasticityCosseratSimple. Ex. SI units: [m^4]

◆ SetIzz()

void chrono::fea::ChInertiaCosseratSimple::SetIzz ( double  mi)
inline

Set the Izz second moment of area of the beam (for bending about z in xy plane), defined as \( I_{zz} = \int_\Omega y^2 d\Omega \).

Note: some textbook calls this Izz as Iz. Note: it can correspond to the same Izz that you used for the elasticity, ex. in ChElasticityCosseratSimple. Ex. SI units: [m^4]


The documentation for this class was generated from the following files:
  • /builds/uwsbel/chrono/src/chrono/fea/ChBeamSectionCosserat.h
  • /builds/uwsbel/chrono/src/chrono/fea/ChBeamSectionCosserat.cpp