Description
For composite beams such as wind turbine blades and helicopter rotor blades, the cross-sectional stiffness properties in axial, shear, bending and torsion directions are coupled with each other, hence the fully-populated matrix(FPM) of cross-sectional stiffness properties is used to describe this complex coupling.
Base class for all constitutive models of fully-populated matrix(FPM) sections of Timoshenko beams. To be used with ChElementBeamTaperedTimoshenkoFPM.
#include <ChBeamSectionTaperedTimoshenkoFPM.h>
Public Member Functions | |
ChBeamSectionTimoshenkoAdvancedGenericFPM (const ChMatrixNM< double, 6, 6 > &mKlaw, const ChMatrixNM< double, 6, 6 > &mMlaw, const double malpha, const double mCy, const double mCz, const double mSy, const double mSz, const double mmu, const double mJyy, const double mJzz, const double mJyz=0, const double mQy=0, const double mQz=0, const double mMy=0, const double mMz=0) | |
virtual void | SetStiffnessMatrixFPM (const ChMatrixNM< double, 6, 6 > &mKlaw) |
Set the material stiffness matrix of cross-section in fully-polulated format(FPM), and assign the traditional axial, torsional, shear and bending stiffnesses automatically. | |
virtual ChMatrixNM< double, 6, 6 > & | GetStiffnessMatrixFPM () |
Get the material stiffness matrix of cross-section in fully-polulated format(FPM) | |
virtual void | SetMassMatrixFPM (const ChMatrixNM< double, 6, 6 > &mMlaw) |
Set the material mass matrix of cross-section in fully-polulated format(FPM) directly. More... | |
virtual void | SetMassMatrixFPM (double mmu, double Jmyy, double Jmzz, double Jmyz, double mass_phi, double Qmy, double Qmz, double mMy, double mMz) |
Set the material mass matrix of cross-section in fully-polulated format(FPM). More... | |
virtual void | SetMassMatrixFPM (double mmu, double mJyy, double mJzz, double mJyz, double mQy, double mQz) |
Set the material mass matrix of cross-section in fully-polulated format(FPM). More... | |
virtual ChMatrixNM< double, 6, 6 > & | GetMassMatrixFPM () |
Get the material mass matrix of cross-section in fully-polulated format(FPM). | |
Public Member Functions inherited from chrono::fea::ChBeamSectionTimoshenkoAdvancedGeneric | |
ChBeamSectionTimoshenkoAdvancedGeneric (const double mAx, const double mTxx, const double mByy, const double mBzz, const double mGAyy, const double mGAzz, const DampingCoefficients mdamping_coeff, const double malpha, const double mCy, const double mCz, const double mSy, const double mSz, const double mmu, const double mJyy, const double mJzz, const double mJyz=0, const double mQy=0, const double mQz=0, const double mMy=0, const double mMz=0) | |
virtual void | SetYshearRigidity (const double mv) |
Sets the shear rigidity, for shearing along Y axis, at shear center, usually Ayy*G for uniform elasticity, but for nonuniform elasticity here you can put a value ad-hoc from a preprocessor. | |
virtual void | SetZshearRigidity (const double mv) |
Sets the shear rigidity, for shearing along Z axis, at shear center, usually Azz*G for uniform elasticity, but for nonuniform elasticity here you can put a value ad-hoc from a preprocessor. | |
virtual double | GetYshearRigidity () const |
Gets the shear rigidity, for shearing along Y axis at shear center, usually Ayy*G, but might be ad hoc. | |
virtual double | GetZshearRigidity () const |
Gets the shear rigidity, for shearing along Z axis at shear center, usually Azz*G, but might be ad hoc. | |
virtual void | SetBeamRaleyghDamping (DampingCoefficients mdamping_coeff) |
Sets the damping parameters of section. More... | |
virtual DampingCoefficients | GetBeamRaleyghDamping () const |
Gets the damping parameters of section. | |
virtual void | SetInertiasPerUnitLength (const double mJyy, const double mJzz, const double mJyz, const double mQy, const double mQz) |
Set the Jyy Jzz Jyz components of the sectional inertia per unit length, in centerline reference, measured along centerline main axes. More... | |
virtual void | SetMainInertiasInMassReference (const double Jmyy, const double Jmzz, const double Jmyz, const double mass_phi, const double Qmy, const double Qmz) |
Set inertia moments, per unit length, as assumed computed in the Ym Zm "mass reference" frame, ie. More... | |
virtual void | GetMainInertiasInMassReference (double &Jmyy, double &Jmzz, double &Jmyz, double &mass_phi, double &Qmy, double &Qmz) |
Get inertia moments, per unit length, as assumed computed in the Ym Zm "mass reference" frame, and the rotation phi of that frame, ie. More... | |
virtual double | GetInertiaJxxPerUnitLengthInMassReference () const |
Get inertia moment per unit length Jxx_massref, as assumed computed in the "mass reference" frame, ie. More... | |
virtual double | GetInertiaJyyPerUnitLength () const |
Get the Jyy component of the sectional inertia per unit length, in centerline reference, measured along centerline main axes. | |
virtual double | GetInertiaJzzPerUnitLength () const |
Get the Jzz component of the sectional inertia per unit length, in centerline reference, measured along centerline main axes. | |
virtual double | GetInertiaJyzPerUnitLength () const |
Get the Jyz component of the sectional inertia per unit length, in centerline reference, measured along centerline main axes. | |
virtual double | GetInertiaQyPerUnitLength () const |
Get the Qy component of mass moment of area per unit length, in centerline reference, measured along centerline main axes. | |
virtual double | GetInertiaQzPerUnitLength () const |
Get the Qz component of mass moment of area per unit length, in centerline reference, measured along centerline main axes. | |
virtual void | SetArtificialFactorForShearDamping (double mv) |
Set the artificial correction factor for the structural damping model in the shear deformation, as default it's 1.0 and don't have any correction effect. More... | |
virtual double | GetArtificialFactorForShearDamping () const |
Get the artificial correction factor for the structural damping model in the shear deformation. | |
Public Member Functions inherited from chrono::fea::ChBeamSectionRayleighAdvancedGeneric | |
ChBeamSectionRayleighAdvancedGeneric (const double mAx, const double mTxx, const double mByy, const double mBzz, const double malpha, const double mCy, const double mCz, const double mSy, const double mSz, const double mmu, const double mJyy, const double mJzz, const double mJyz, const double mMy=0, const double mMz=0) | |
virtual void | SetInertiasPerUnitLength (const double mJyy, const double mJzz, const double mJyz) |
Set the Jyy Jzz Jyz components of the sectional inertia per unit length, in centerline reference, measured along centerline main axes. More... | |
virtual void | SetMainInertiasInMassReference (double Jmyy, double Jmzz, double phi) |
Set inertia moments, per unit length, as assumed computed in the Ym Zm "mass reference" frame, ie. More... | |
virtual void | GetMainInertiasInMassReference (double &Jmyy, double &Jmzz, double &phi) |
Get inertia moments, per unit length, as assumed computed in the Ym Zm "mass reference" frame, and the rotation phi of that frame, ie. More... | |
virtual void | ComputeInertiaMatrix (ChMatrixNM< double, 6, 6 > &M) override |
Compute the 6x6 sectional inertia matrix, as in {x_momentum,w_momentum}=[Mm]{xvel,wvel}. | |
virtual void | ComputeInertiaDampingMatrix (ChMatrixNM< double, 6, 6 > &Ri, const ChVector<> &mW) override |
Compute the 6x6 sectional inertia damping matrix [Ri] (gyroscopic matrix damping) More... | |
virtual void | ComputeInertiaStiffnessMatrix (ChMatrixNM< double, 6, 6 > &Ki, const ChVector<> &mWvel, const ChVector<> &mWacc, const ChVector<> &mXacc) override |
Compute the 6x6 sectional inertia stiffness matrix [Ki^]. More... | |
virtual void | ComputeQuadraticTerms (ChVector<> &mF, ChVector<> &mT, const ChVector<> &mW) override |
Compute the centrifugal term and gyroscopic term. More... | |
Public Member Functions inherited from chrono::fea::ChBeamSectionEulerAdvancedGeneric | |
ChBeamSectionEulerAdvancedGeneric (const double mAx, const double mTxx, const double mByy, const double mBzz, const double malpha, const double mCy, const double mCz, const double mSy, const double mSz, const double mmu, const double mJxx, const double mMy=0, const double mMz=0) | |
virtual void | SetAxialRigidity (const double mv) |
Sets the axial rigidity, usually A*E for uniform elasticity, but for nonuniform elasticity here you can put a value ad-hoc from a preprocessor. | |
virtual void | SetXtorsionRigidity (const double mv) |
Sets the torsion rigidity, for torsion about X axis, at elastic center, usually J*G for uniform elasticity, but for nonuniform elasticity here you can put a value ad-hoc from a preprocessor. | |
virtual void | SetYbendingRigidity (const double mv) |
Sets the bending rigidity, for bending about Y axis, at elastic center, usually Iyy*E for uniform elasticity, but for nonuniform elasticity here you can put a value ad-hoc from a preprocessor. | |
virtual void | SetZbendingRigidity (const double mv) |
Sets the bending rigidity, for bending about Z axis, at elastic center, usually Izz*E for uniform elasticity, but for nonuniform elasticity here you can put a value ad-hoc from a preprocessor. | |
virtual void | SetSectionRotation (const double mv) |
Set the rotation in [rad], abour elastic center, of the Y Z axes for which the YbendingRigidity and ZbendingRigidity values are defined. | |
virtual void | SetCentroidY (const double mv) |
Sets the Y position of the elastic center respect to centerline. | |
virtual void | SetCentroidZ (const double mv) |
Sets the Z position of the elastic center respect to centerline. | |
virtual void | SetShearCenterY (const double mv) |
Sets the Y position of the shear center respect to centerline. | |
virtual void | SetShearCenterZ (const double mv) |
Sets the Z position of the shear center respect to centerline. | |
virtual void | SetMassPerUnitLength (const double mv) |
Set mass per unit length, ex.SI units [kg/m] For uniform density it would be A*density, but for nonuniform density here you can put a value ad-hoc from a preprocessor. | |
virtual void | SetInertiaJxxPerUnitLength (const double mv) |
Set the Jxx component of the inertia per unit length (polar inertia), computed at centerline. More... | |
virtual void | SetInertiaJxxPerUnitLengthInMassReference (const double mv) |
Set inertia moment per unit length Jxx_massref, as assumed computed in the "mass reference" frame, ie. More... | |
virtual double | GetInertiaJxxPerUnitLengthInMassReference () |
Get inertia moment per unit length Jxx_massref, as assumed computed in the "mass reference" frame, ie. 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 | GetAxialRigidity () const override |
Gets the axial rigidity, usually A*E, but might be ad hoc. | |
virtual double | GetXtorsionRigidity () const override |
Gets the torsion rigidity, for torsion about X axis at elastic center, usually J*G, but might be ad hoc. | |
virtual double | GetYbendingRigidity () const override |
Gets the bending rigidity, for bending about Y axis at elastic center, usually Iyy*E, but might be ad hoc. | |
virtual double | GetZbendingRigidity () const override |
Gets the bending rigidity, for bending about Z axis at elastic center, usually Izz*E, but might be ad hoc. | |
virtual double | GetSectionRotation () const override |
Set the rotation of the Y Z section axes for which the YbendingRigidity and ZbendingRigidity are defined. | |
virtual double | GetCentroidY () const override |
Gets the Y position of the elastic center respect to centerline. | |
virtual double | GetCentroidZ () const override |
Gets the Z position of the elastic center respect to centerline. | |
virtual double | GetShearCenterY () const override |
Gets the Y position of the shear center respect to centerline. | |
virtual double | GetShearCenterZ () const override |
Gets the Z position of the shear center respect to centerline. | |
virtual double | GetMassPerUnitLength () const override |
Get mass per unit length, ex.SI units [kg/m]. | |
virtual double | GetInertiaJxxPerUnitLength () const override |
Get the Jxx component of the inertia per unit length (polar inertia), at centerline. | |
Public Member Functions inherited from chrono::fea::ChBeamSectionEuler | |
virtual void | ComputeInertialForce (ChVector<> &mFi, ChVector<> &mTi, const ChVector<> &mWvel, const ChVector<> &mWacc, const ChVector<> &mXacc) |
Compute the total inertial forces (per unit length). More... | |
void | SetArtificialJyyJzzFactor (double mf) |
The Euler beam model has no rotational inertia per each section, assuming mass is concentrated on the centerline. More... | |
double | GetArtificialJyyJzzFactor () |
virtual void | SetBeamRaleyghDampingAlpha (double malpha) |
Set the "alpha" Rayleigh damping ratio, the mass-proportional structural damping in: R = alpha*M + beta*K | |
double | GetBeamRaleyghDampingAlpha () |
virtual void | SetBeamRaleyghDampingBeta (double mbeta) |
Set the "beta" Rayleigh damping ratio, the stiffness-proportional structural damping in: R = alpha*M + beta*K | |
double | GetBeamRaleyghDampingBeta () |
virtual void | SetBeamRaleyghDamping (double mbeta, double malpha=0) |
Set both beta and alpha coefficients in Rayleigh damping model: R = alpha*M + beta*K. More... | |
Public Member Functions inherited from chrono::fea::ChBeamSection | |
void | SetDrawShape (std::shared_ptr< ChBeamSectionShape > mshape) |
Set the graphical representation for this section. More... | |
std::shared_ptr< ChBeamSectionShape > | GetDrawShape () const |
Get the drawing shape of this section (i.e.a 2D profile used for drawing 3D tesselation and visualization) By default a thin square section, use SetDrawShape() to change it. | |
void | SetDrawThickness (double thickness_y, double thickness_z) |
Shortcut: adds a ChBeamSectionShapeRectangular for visualization as a centered rectangular beam, and sets its width/height. More... | |
void | SetDrawCircularRadius (double draw_rad) |
Shortcut: adds a ChBeamSectionShapeCircular for visualization as a centered circular beam, and sets its radius. More... | |
void | SetCircular (bool ic) |
OBSOLETE only for backward compability | |
Protected Attributes | |
ChMatrixNM< double, 6, 6 > | Klaw |
material fully-populated stiffness matrix of cross-section, given in centerline reference, measured along centerline main axes. More... | |
ChMatrixNM< double, 6, 6 > | Mlaw |
material fully-populated mass matrix of cross-section, given in centerline reference, measured along centerline main axes | |
Protected Attributes inherited from chrono::fea::ChBeamSectionTimoshenkoAdvancedGeneric | |
double | GAyy |
shear regidity along yy, evaluated in the elastic center and elastic principal axis. GAyy=ky*G*A | |
double | GAzz |
shear regidity along zz, evaluated in the elastic center and elastic principal axis. GAzz=kz*G*A | |
double | Qy |
Mass moment of area, defined as : \( Q_{y} = \int_\Omega \rho z d\Omega \), \( Q_{z} = \int_\Omega \rho y d\Omega \),. More... | |
double | Qz |
mass moment of area along zz, in centerline reference, measured along centerline main axes | |
DampingCoefficients | rdamping_coeff |
Damping parameters. More... | |
double | artificial_factor_for_shear_damping = 1.0 |
An artificial correction factor for the structural damping model in the shear deformation, as default it's 1.0 and don't have any correction effect. More... | |
Protected Attributes inherited from chrono::fea::ChBeamSectionRayleighAdvancedGeneric | |
double | Jzz |
double | Jyy |
double | Jyz |
Protected Attributes inherited from chrono::fea::ChBeamSectionEulerAdvancedGeneric | |
double | Ax |
double | Txx |
double | Byy |
double | Bzz |
double | alpha |
double | Cy |
double | Cz |
double | Sy |
double | Sz |
double | mu |
double | Jxx |
double | My |
double | Mz |
Protected Attributes inherited from chrono::fea::ChBeamSectionEuler | |
double | rdamping_beta |
double | rdamping_alpha |
double | JzzJyy_factor |
Additional Inherited Members | |
Public Attributes inherited from chrono::fea::ChBeamSectionEuler | |
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
◆ ChBeamSectionTimoshenkoAdvancedGenericFPM()
|
inline |
- Parameters
-
mKlaw material stiffness matrix of cross-section mMlaw material mass matrix of cross-section malpha section rotation about elastic center [rad] mCy elastic center y displacement respect to centerline mCz elastic center z displacement respect to centerline mSy shear center y displacement respect to centerline mSz shear center z displacement respect to centerline mmu mass per unit length mJyy inertia Jyy per unit lenght, in centerline reference, measured along centerline main axes mJzz inertia Jzz per unit lenght, in centerline reference, measured along centerline main axes mJyz inertia Jyz per unit lenght, in centerline reference, measured along centerline main axes const mQy inertia Qy per unit lenght, in centerline reference, measured along centerline main axes mQz inertia Qz per unit lenght, in centerline reference, measured along centerline main axes mMy mass center y displacement respect to centerline mMz mass center z displacement respect to centerline
Member Function Documentation
◆ SetMassMatrixFPM() [1/3]
|
inlinevirtual |
Set the material mass matrix of cross-section in fully-polulated format(FPM) directly.
This cross-sectional mass matrix should be given in the centerline reference.
◆ SetMassMatrixFPM() [2/3]
|
inlinevirtual |
Set the material mass matrix of cross-section in fully-polulated format(FPM).
Assign the mass properties at mass center, then calcualte Mlaw automatically.
◆ SetMassMatrixFPM() [3/3]
|
inlinevirtual |
Set the material mass matrix of cross-section in fully-polulated format(FPM).
Assign the mass properties at centerline reference, then calcualte Mlaw automatically
Member Data Documentation
◆ Klaw
|
protected |
material fully-populated stiffness matrix of cross-section, given in centerline reference, measured along centerline main axes.
The shear principal axis orientation is assumed same as elastic principal axis. So if you want to consider the different orientation of shear principal axis, please rotate the block of shear terms from shear principal axis orientation to elastic principal axis orientation firstly (do this rotation transformation outside by yourself) and then input it here.
The documentation for this class was generated from the following file:
- /builds/uwsbel/chrono/src/chrono/fea/ChBeamSectionTaperedTimoshenkoFPM.h