Description
Material for a single layer of a thin shell (Kirchoff-Love shell theory, i.e.
shells without shear effects). This base implementation assumes that one creates a ChMaterialShellKirchhoff by providing three components:
- an elasticity model (from ChElasticityKirchhoff classes)
- a plasticity model (optional, from ChPlasticityKirchhoff classes)
- a damping model (optional, from ChDampingKirchhoff classes)
Thickness is defined when adding a ChMaterialShellKirchhoff material as a layer in a shell finite element. A material can be shared between multiple layers.
#include <ChMaterialShellKirchhoff.h>
Public Member Functions | |
ChMaterialShellKirchhoff (std::shared_ptr< ChElasticityKirchhoff > melasticity) | |
ChMaterialShellKirchhoff (std::shared_ptr< ChElasticityKirchhoff > melasticity, std::shared_ptr< ChPlasticityKirchhoff > mplasticity) | |
ChMaterialShellKirchhoff (std::shared_ptr< ChElasticityKirchhoff > melasticity, std::shared_ptr< ChPlasticityKirchhoff > mplasticity, std::shared_ptr< ChDampingKirchhoff > mdamping) | |
virtual void | ComputeStress (ChVector3d &n, ChVector3d &m, const ChVector3d &eps, const ChVector3d &kur, const double z_inf, const double z_sup, const double angle, ChShellKirchhoffInternalData *mdata_new=nullptr, const ChShellKirchhoffInternalData *mdata=nullptr) |
Compute the generalized cut force and cut torque, given the actual generalized section strain expressed as deformation vector e and curvature k, that is: {n,m}=f({e,k}), and given the actual material state required for plasticity if any (but if mdata=nullptr, computes only the elastic force). More... | |
virtual void | ComputeStiffnessMatrix (ChMatrixRef K, const ChVector3d &eps, const ChVector3d &kur, const double z_inf, const double z_sup, const double angle, const ChShellKirchhoffInternalData *mdata=nullptr) |
Compute the 6x6 tangent material stiffness matrix [Km] = dσ/dε at a given strain state, and at given internal data state (if mdata=nullptr, computes only the elastic tangent stiffenss, regardless of plasticity). More... | |
void | SetElasticity (std::shared_ptr< ChElasticityKirchhoff > melasticity) |
Set the elasticity model for this section. More... | |
std::shared_ptr< ChElasticityKirchhoff > | GetElasticity () |
Get the elasticity model for this section. More... | |
void | SetPlasticity (std::shared_ptr< ChPlasticityKirchhoff > mplasticity) |
Set the plasticity model for this section. More... | |
std::shared_ptr< ChPlasticityKirchhoff > | GetPlasticity () |
Get the elasticity model for this section, if any. More... | |
void | SetDamping (std::shared_ptr< ChDampingKirchhoff > mdamping) |
Set the damping model for this section. More... | |
std::shared_ptr< ChDampingKirchhoff > | GetDamping () |
Get the damping model for this section. More... | |
void | SetDensity (double md) |
Set the density of the shell (kg/m^3) | |
double | GetDensity () const |
Constructor & Destructor Documentation
◆ ChMaterialShellKirchhoff() [1/3]
chrono::fea::ChMaterialShellKirchhoff::ChMaterialShellKirchhoff | ( | std::shared_ptr< ChElasticityKirchhoff > | melasticity | ) |
- Parameters
-
melasticity elasticity model
◆ ChMaterialShellKirchhoff() [2/3]
chrono::fea::ChMaterialShellKirchhoff::ChMaterialShellKirchhoff | ( | std::shared_ptr< ChElasticityKirchhoff > | melasticity, |
std::shared_ptr< ChPlasticityKirchhoff > | mplasticity | ||
) |
- Parameters
-
melasticity elasticity model mplasticity plasticity model, if any
◆ ChMaterialShellKirchhoff() [3/3]
chrono::fea::ChMaterialShellKirchhoff::ChMaterialShellKirchhoff | ( | std::shared_ptr< ChElasticityKirchhoff > | melasticity, |
std::shared_ptr< ChPlasticityKirchhoff > | mplasticity, | ||
std::shared_ptr< ChDampingKirchhoff > | mdamping | ||
) |
- Parameters
-
melasticity elasticity model mplasticity plasticity model, if any mdamping damping model, if any
Member Function Documentation
◆ ComputeStiffnessMatrix()
|
virtual |
Compute the 6x6 tangent material stiffness matrix [Km] = dσ/dε at a given strain state, and at given internal data state (if mdata=nullptr, computes only the elastic tangent stiffenss, regardless of plasticity).
- Parameters
-
K 12x12 stiffness matrix eps strains e_11, e_22, e_12 kur curvature k_11, k_22, k_12 z_inf layer lower z value (along thickness coord) z_sup layer upper z value (along thickness coord) angle layer angle respect to x (if needed) mdata material internal variables, at this point, if any, including {p_strain_e, p_strain_k, p_strain_acc}
◆ ComputeStress()
|
virtual |
Compute the generalized cut force and cut torque, given the actual generalized section strain expressed as deformation vector e and curvature k, that is: {n,m}=f({e,k}), and given the actual material state required for plasticity if any (but if mdata=nullptr, computes only the elastic force).
If there is plasticity, the stress is clamped by automatically performing an implicit return mapping. In sake of generality, if possible this is the function that should be used by beam finite elements to compute internal forces, ex.by some Gauss quadrature.
- Parameters
-
n forces n_11, n_22, n_12 (per unit length) m torques m_11, m_22, m_12 (per unit length) eps strains e_11, e_22, e_12 kur curvature k_11, k_22, k_12 z_inf layer lower z value (along thickness coord) z_sup layer upper z value (along thickness coord) angle layer angle respect to x (if needed) mdata_new updated material internal variables, at this point, including {p_strain_e, p_strain_k, p_strain_acc} mdata current material internal variables, at this point, including {p_strain_e, p_strain_k, p_strain_acc}
◆ GetDamping()
|
inline |
Get the damping model for this section.
By default no damping.
◆ GetElasticity()
|
inline |
Get the elasticity model for this section.
Use this function to access parameters such as stiffness, Young modulus, etc. By default it uses a simple centered linear elastic model.
◆ GetPlasticity()
|
inline |
Get the elasticity model for this section, if any.
Use this function to access parameters such as yeld limit, etc.
◆ SetDamping()
void chrono::fea::ChMaterialShellKirchhoff::SetDamping | ( | std::shared_ptr< ChDampingKirchhoff > | mdamping | ) |
Set the damping model for this section.
By default no damping.
◆ SetElasticity()
void chrono::fea::ChMaterialShellKirchhoff::SetElasticity | ( | std::shared_ptr< ChElasticityKirchhoff > | melasticity | ) |
Set the elasticity model for this section.
By default it uses a simple centered linear elastic model, but you can set more complex models.
◆ SetPlasticity()
void chrono::fea::ChMaterialShellKirchhoff::SetPlasticity | ( | std::shared_ptr< ChPlasticityKirchhoff > | mplasticity | ) |
Set the plasticity model for this section.
This is independent from the elasticity model. Note that by default there is no plasticity model, so by default plasticity never happens.
The documentation for this class was generated from the following files:
- /builds/uwsbel/chrono/src/chrono/fea/ChMaterialShellKirchhoff.h
- /builds/uwsbel/chrono/src/chrono/fea/ChMaterialShellKirchhoff.cpp