chrono::fea::ChInertiaCosseratMassref Class Reference

Description

Inertia properties of a beam of Cosserat type, not necessarily of uniform density, from the following information that allows the center of mass to be offset respect to the beam centerline:

  • a mass per unit length
  • offset of the center of mass Cm along Y Z section axes,
  • rotation of axes Y_m Z_m (used for computed Jzz_m Jyy_m) respect to Y Z section axes.
  • Jyy_m Jzz_m principal moments of inertia computed in reference Y_m Z_m, rotated and with origin in center of mass Cm The polar moment of area is automatically inferred via perpendicular axis theorem.

#include <ChBeamSectionCosserat.h>

Inheritance diagram for chrono::fea::ChInertiaCosseratMassref:
Collaboration diagram for chrono::fea::ChInertiaCosseratMassref:

Public Member Functions

 ChInertiaCosseratMassref (double mu_density, double c_y, double c_z, double phi_massref, double Jyy_massref, double Jzz_massref)
 
virtual void SetInertiasPerUnitLength (double Jyy_moment, double Jzz_moment, double Jyz_moment) override
 Set inertia moments, assumed computed in the Y Z unrotated reference frame of the section at centerline, and defined as: \( J_{yy} = \int_\Omega \rho z^2 d\Omega \), also Jyy = Mm(4,4) \( J_{zz} = \int_\Omega \rho y^2 d\Omega \), also Jzz = Mm(5,5) \( J_{yz} = \int_\Omega \rho y z d\Omega \), also Jyz = -Mm(4,5) = -Mm(5,4) Note that for an uniform density, these are also related to second moments of area as \( J_{yy} = \rho I_{yy} \), \( J_{zz} = \rho I_{zz} \). More...
 
virtual void SetMainInertiasInMassReference (double Jyy_massref, double Jzz_massref, double phi_massref) override
 Set inertia moments as assumed computed in the Ym Zm "mass reference" frame, ie. More...
 
virtual void GetMainInertiasInMassReference (double &Jyy_massref, double &Jzz_massref, double &phi_massref) override
 Get inertia moments as assumed computed in the Ym Zm "mass reference" frame, and the rotation phi of that frame, ie. More...
 
- Public Member Functions inherited from chrono::fea::ChInertiaCosseratAdvanced
 ChInertiaCosseratAdvanced (double mu_density, double c_y, double c_z, double Jyy_moment, double Jzz_moment, double Jyz_moment)
 
 ChInertiaCosseratAdvanced (double mu_density, double c_y, double c_z, ChVector3d Ivals)
 
virtual void ComputeInertiaMatrix (ChMatrix66d &M) override
 Compute the 6x6 sectional inertia matrix, as in {x_momentum,w_momentum}=[Mi]{xvel,wvel} The matrix is computed in the material reference.
 
virtual void ComputeInertiaDampingMatrix (ChMatrix66d &Ri, const ChVector3d &mW) override
 Compute the 6x6 sectional inertia damping matrix [Ri] (gyroscopic matrix damping), as in linearization dFi=[Mi]*d{xacc,wacc}+[Ri]*d{xvel,wvel}+[Ki]*d{pos,rot} The matrix is computed in the material reference. More...
 
virtual void ComputeInertiaStiffnessMatrix (ChMatrix66d &Ki, const ChVector3d &mWvel, const ChVector3d &mWacc, const ChVector3d &mXacc) override
 Compute the 6x6 sectional inertia stiffness matrix [Ki^], as in linearization dFi=[Mi]*d{xacc,wacc}+[Ri]*d{xvel,wvel}+[Ki]*d{pos,rot} The matrix is computed in the material reference. More...
 
virtual void ComputeQuadraticTerms (ChVector3d &mF, ChVector3d &mT, const ChVector3d &mW) override
 Compute the values of inertial force & torque depending on quadratic velocity terms, that is the gyroscopic torque w x [J]w and the centrifugal term (if center of mass is offset). More...
 
virtual double GetMassPerUnitLength () override
 Get mass per unit length, ex.SI units [kg/m].
 
virtual void SetMassPerUnitLength (double mmu)
 Set mass c, ex.SI units [kg/m]. More...
 
void SetCenterOfMass (double my, double mz)
 "mass reference": set the displacement of the center of mass respect to the section centerline reference.
 
double GetCenterOfMassY ()
 
double GetCenterOfMassZ ()
 
virtual double GetInertiaJxxPerUnitLength ()
 Get the Jxx component of the inertia per unit length (polar inertia), in the Y Z unrotated reference frame of the section at centerline. More...
 
virtual double GetInertiaJyyPerUnitLength ()
 Get the Jyy component of the inertia per unit length, in the Y Z unrotated reference frame of the section at centerline, also Jyy = Mm(4,4)
 
virtual double GetInertiaJzzPerUnitLength ()
 Get the Jzz component of the inertia per unit length, in the Y Z unrotated reference frame of the section at centerline, also Jzz = Mm(5,5)
 
virtual double GetInertiaJyzPerUnitLength ()
 Get the Jyz off-diagonal component of the inertia per unit length, in the Y Z unrotated reference frame of the section at centerline. More...
 
- Public Member Functions inherited from chrono::fea::ChInertiaCosserat
virtual void ComputeInertialForce (ChVector3d &mFi, ChVector3d &mTi, const ChVector3d &mWvel, const ChVector3d &mWacc, const ChVector3d &mXacc)
 Compute the total inertial wrench, ie forces and torques (per unit length). More...
 

Additional Inherited Members

- Public Attributes inherited from chrono::fea::ChInertiaCosserat
ChBeamSectionCosseratsection
 
bool compute_inertia_damping_matrix = true
 Flag that turns on/off the computation of the [Ri] 'gyroscopic' inertial damping matrix. More...
 
bool compute_inertia_stiffness_matrix = true
 Flag that turns on/off the computation of the [Ki] inertial stiffness matrix. More...
 
bool compute_Ri_Ki_by_num_diff = false
 Flag for computing the Ri and Ki matrices via numerical differentiation even if an analytical expression is provided. More...
 

Constructor & Destructor Documentation

◆ ChInertiaCosseratMassref()

chrono::fea::ChInertiaCosseratMassref::ChInertiaCosseratMassref ( double  mu_density,
double  c_y,
double  c_z,
double  phi_massref,
double  Jyy_massref,
double  Jzz_massref 
)
inline
Parameters
mu_densitymass per unit length [kg/m]
c_ydisplacement of center of mass Cm along Y
c_zdisplacement of center of mass Cm along Z
phi_massrefrotation of auxiliary mass reference Ym Zm respect to Y Z reference
Jyy_massrefmoment of inertia per unit length, about Ym, with origin in Cm
Jzz_massrefmoment of inertia per unit length, about Zm, with origin in Cm

Member Function Documentation

◆ GetMainInertiasInMassReference()

virtual void chrono::fea::ChInertiaCosseratMassref::GetMainInertiasInMassReference ( double &  Jyy_massref,
double &  Jzz_massref,
double &  phi_massref 
)
inlineoverridevirtual

Get inertia moments as assumed computed in the Ym Zm "mass reference" frame, and the rotation phi of that frame, ie.

inertias centered at the center of mass and rotated by phi angle to match the main axes of inertia: \( Jm_{yy} = \int_\Omega \rho z_{m}^2 d\Omega \), \( Jm_{zz} = \int_\Omega \rho y_{m}^2 d\Omega \). Assuming the center of mass is already set.

Reimplemented from chrono::fea::ChInertiaCosseratAdvanced.

◆ SetInertiasPerUnitLength()

virtual void chrono::fea::ChInertiaCosseratMassref::SetInertiasPerUnitLength ( double  Jyy_moment,
double  Jzz_moment,
double  Jyz_moment 
)
inlineoverridevirtual

Set inertia moments, assumed computed in the Y Z unrotated reference frame of the section at centerline, and defined as: \( J_{yy} = \int_\Omega \rho z^2 d\Omega \), also Jyy = Mm(4,4) \( J_{zz} = \int_\Omega \rho y^2 d\Omega \), also Jzz = Mm(5,5) \( J_{yz} = \int_\Omega \rho y z d\Omega \), also Jyz = -Mm(4,5) = -Mm(5,4) Note that for an uniform density, these are also related to second moments of area as \( J_{yy} = \rho I_{yy} \), \( J_{zz} = \rho I_{zz} \).

Note also that \( J_{xy} = J_{xz} = J_{yx} = J_{zx} = 0 \) anyway. Note also that \( J_{xy} \) does not need to be input, as automatically computed via \( J_{xx} = J_{yy} +J_{zz} \) for the polar theorem.

Reimplemented from chrono::fea::ChInertiaCosseratAdvanced.

◆ SetMainInertiasInMassReference()

virtual void chrono::fea::ChInertiaCosseratMassref::SetMainInertiasInMassReference ( double  Jyy_massref,
double  Jzz_massref,
double  phi_massref 
)
inlineoverridevirtual

Set inertia moments as assumed computed in the Ym Zm "mass reference" frame, ie.

centered at the center of mass and rotated by phi angle to match the main axes of inertia: \( Jm_{yy} = \int_\Omega \rho z_{m}^2 d\Omega \), \( Jm_{zz} = \int_\Omega \rho y_{m}^2 d\Omega \). Assuming the center of mass is already set.

Reimplemented from chrono::fea::ChInertiaCosseratAdvanced.


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