chrono::fea::ChPlasticityCosserat Class Referenceabstract

Description

Base class for plasticity of beam sections of Cosserat type.

This can be shared between multiple beams.

#include <ChBeamSectionCosserat.h>

Inheritance diagram for chrono::fea::ChPlasticityCosserat:
Collaboration diagram for chrono::fea::ChPlasticityCosserat:

Public Member Functions

virtual bool ComputeStressWithReturnMapping (ChVector<> &stress_n, ChVector<> &stress_m, ChVector<> &e_strain_e_new, ChVector<> &e_strain_k_new, ChBeamMaterialInternalData &data_new, const ChVector<> &tot_strain_e, const ChVector<> &tot_strain_k, const ChBeamMaterialInternalData &data)=0
 
virtual void ComputeStiffnessMatrixElastoplastic (ChMatrixDynamic<> &K, const ChVector<> &strain_e, const ChVector<> &strain_k, const ChBeamMaterialInternalData &data)
 Compute the 6x6 tangent material stiffness matrix [Km]=d/d, given actual internal data and deformation and curvature (if needed). More...
 
virtual void CreatePlasticityData (int numpoints, std::vector< std::unique_ptr< ChBeamMaterialInternalData > > &plastic_data)
 
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
 
double nr_yeld_tolerance
 
int nr_yeld_maxiters
 

Member Function Documentation

void chrono::fea::ChPlasticityCosserat::ComputeStiffnessMatrixElastoplastic ( ChMatrixDynamic<> &  K,
const ChVector<> &  strain_e,
const ChVector<> &  strain_k,
const ChBeamMaterialInternalData data 
)
virtual

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

If in plastic regime, uses elastoplastic matrix, otherwise uses elastic. 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 ComputeStressWithReturnMapping() multiple times.

Parameters
Kreturn the 6x6 material stiffness matrix values here
strain_etot strain (deformation part): x= elongation, y and z are shear
strain_ktot strain (curvature part), x= torsion, y and z are line curvatures
dataget & return updated material internal variables, at this point, including {p_strain_e, p_strain_k, p_strain_acc}
virtual bool chrono::fea::ChPlasticityCosserat::ComputeStressWithReturnMapping ( ChVector<> &  stress_n,
ChVector<> &  stress_m,
ChVector<> &  e_strain_e_new,
ChVector<> &  e_strain_k_new,
ChBeamMaterialInternalData data_new,
const ChVector<> &  tot_strain_e,
const ChVector<> &  tot_strain_k,
const ChBeamMaterialInternalData data 
)
pure virtual
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
e_strain_e_newreturn updated elastic strain (deformation part)
e_strain_k_newreturn updated elastic strain (curvature part)
data_newreturn updated material internal variables, at this point, including {p_strain_e, p_strain_k, p_strain_acc}
tot_strain_etrial tot strain (deformation part): x= elongation, y and z are shear
tot_strain_ktrial tot strain (curvature part), x= torsion, y and z are line curvatures
datatrial material internal variables, at this point, including {p_strain_e, p_strain_k, p_strain_acc}

Implemented in chrono::fea::ChPlasticityCosseratLumped.

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

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

Implemented in chrono::fea::ChPlasticityCosseratLumped.

virtual void chrono::fea::ChPlasticityCosserat::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::ChPlasticityCosseratLumped.