Description
Base interface for plasticity of thin shells (Kirchoff-Love shell theory, without shear effects) to be used in a ChMaterialShellKirchhoff.
Children classes must implement the ComputeStressWithReturnMapping to compute effective stress and strain given a tentative strain that might violate the yeld function. Inherited materials do not define any thickness, which should be a property of the element or its layer(s) using this material.
#include <ChMaterialShellKirchhoff.h>
Public Member Functions | |
virtual bool | ComputeStressWithReturnMapping (ChVector3d &n, ChVector3d &m, ChShellKirchhoffInternalData &data_new, const ChVector3d &eps_trial, const ChVector3d &kur_trial, const ChShellKirchhoffInternalData &data, const double z_inf, const double z_sup, const double angle)=0 |
Given a trial strain, it computes the effective stress and strain by clamping against the yeld surface. More... | |
virtual void | ComputeStiffnessMatrixElastoplastic (ChMatrixRef K, const ChVector3d &eps, const ChVector3d &kur, const ChShellKirchhoffInternalData &data, const double z_inf, const double z_sup, const double angle) |
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< ChShellKirchhoffInternalData >> &plastic_data) |
Public Attributes | |
ChMaterialShellKirchhoff * | section |
double | nr_yeld_tolerance |
int | nr_yeld_maxiters |
Member Function Documentation
◆ ComputeStiffnessMatrixElastoplastic()
|
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
-
K 12x12 material elastoplastic stiffness matrix values here eps strains e_11, e_22, e_12 kur curvature k_11, k_22, k_12 data updated material internal variables, at this point including {p_strain_e, p_strain_k, p_strain_acc} 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)
◆ ComputeStressWithReturnMapping()
|
pure virtual |
Given a trial strain, it computes the effective stress and strain by clamping against the yeld surface.
An implicit return mapping integration step is computed automatically per each call of this function. Note: for the elastic part, it must use the elasticity model in this->section->elasticity. If not beyond yeld, simply: elastic strain = tot strain - plastic strain If it is beyond yeld: elastic strain is computed by fully implicit strain integration with return mapping, and plastic strains in "data_new" are updated. Returns true if it had to do return mapping, false if it was in elastic regime This MUST be implemented by subclasses.
- Parameters
-
n forces n_11, n_22, n_12 (per unit length) m torques m_11, m_22, m_12 (per unit length) data_new updated material internal variables, at this point, including {p_strain_e, p_strain_k, p_strain_acc} eps_trial trial strains e_11, e_22, e_12 kur_trial trial curvature k_11, k_22, k_12 data trial material internal variables, at this point, including {p_strain_e, p_strain_k, p_strain_acc} 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)
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