OGS
ProcessLib::TH2M::ConstitutiveRelations::SolidMechanicsModel< DisplacementDim > Struct Template Reference

Detailed Description

template<int DisplacementDim>
struct ProcessLib::TH2M::ConstitutiveRelations::SolidMechanicsModel< DisplacementDim >

Definition at line 35 of file SolidMechanics.h.

#include <SolidMechanics.h>

Public Member Functions

 SolidMechanicsModel (SolidConstitutiveRelation< DisplacementDim > const &solid_material)
 
void eval (const SpaceTimeData &x_t, TemperatureData const &T_data, MechanicalStrainData< DisplacementDim > const &mechanical_strain_data, PrevState< MechanicalStrainData< DisplacementDim > > const &mechanical_strain_prev_data, PrevState< ProcessLib::ConstitutiveRelations::StressData< DisplacementDim > > const &eff_stress_prev_data, ProcessLib::ConstitutiveRelations::StressData< DisplacementDim > &eff_stress_data, MaterialStateData< DisplacementDim > &mat_state, SolidMechanicsDataStateless< DisplacementDim > &out, EquivalentPlasticStrainData &equivalent_plastic_strain) const
 
auto getInternalVariables () const
 

Private Attributes

SolidConstitutiveRelation< DisplacementDim > const & solid_material_
 

Constructor & Destructor Documentation

◆ SolidMechanicsModel()

template<int DisplacementDim>
ProcessLib::TH2M::ConstitutiveRelations::SolidMechanicsModel< DisplacementDim >::SolidMechanicsModel ( SolidConstitutiveRelation< DisplacementDim > const & solid_material)
inlineexplicit

Definition at line 37 of file SolidMechanics.h.

39 : solid_material_(solid_material)
40 {
41 }
SolidConstitutiveRelation< DisplacementDim > const & solid_material_

Member Function Documentation

◆ eval()

template<int DisplacementDim>
void ProcessLib::TH2M::ConstitutiveRelations::SolidMechanicsModel< DisplacementDim >::eval ( const SpaceTimeData & x_t,
TemperatureData const & T_data,
MechanicalStrainData< DisplacementDim > const & mechanical_strain_data,
PrevState< MechanicalStrainData< DisplacementDim > > const & mechanical_strain_prev_data,
PrevState< ProcessLib::ConstitutiveRelations::StressData< DisplacementDim > > const & eff_stress_prev_data,
ProcessLib::ConstitutiveRelations::StressData< DisplacementDim > & eff_stress_data,
MaterialStateData< DisplacementDim > & mat_state,
SolidMechanicsDataStateless< DisplacementDim > & out,
EquivalentPlasticStrainData & equivalent_plastic_strain ) const

Definition at line 17 of file SolidMechanics.cpp.

31{
32 namespace MPL = MaterialPropertyLib;
33 MPL::VariableArray variables;
34
35 variables.mechanical_strain.emplace<KelvinVector<DisplacementDim>>(
36 mechanical_strain_data.eps_m);
37 variables.temperature = T_data.T;
38
39 MPL::VariableArray variables_prev;
40 variables_prev.stress.emplace<KelvinVector<DisplacementDim>>(
41 eff_stress_prev_data->sigma);
42 variables_prev.mechanical_strain.emplace<KelvinVector<DisplacementDim>>(
43 mechanical_strain_prev_data->eps_m);
44 variables_prev.temperature = T_data.T_prev;
45
46 auto solution = solid_material_.integrateStress(
47 variables_prev, variables, x_t.t, x_t.x, x_t.dt,
48 *mat_state.material_state_variables);
49
50 if (!solution)
51 {
52 OGS_FATAL("Computation of local constitutive relation failed.");
53 }
54
55 std::tie(eff_stress_data.sigma, mat_state.material_state_variables,
56 out.stiffness_tensor) = std::move(*solution);
57
59 mat_state.material_state_variables->getEquivalentPlasticStrain();
60}
#define OGS_FATAL(...)
Definition Error.h:26
std::variant< std::monostate, Eigen::Matrix< double, 4, 1 >, Eigen::Matrix< double, 6, 1 > > mechanical_strain
std::variant< std::monostate, Eigen::Matrix< double, 4, 1 >, Eigen::Matrix< double, 6, 1 > > stress
MathLib::KelvinVector::KelvinVectorType< DisplacementDim > sigma
Definition StressData.h:20

References ProcessLib::ConstitutiveRelations::SpaceTimeData::dt, ProcessLib::TH2M::ConstitutiveRelations::MechanicalStrainData< DisplacementDim >::eps_m, ProcessLib::TH2M::ConstitutiveRelations::MaterialStateData< DisplacementDim >::material_state_variables, MaterialPropertyLib::VariableArray::mechanical_strain, OGS_FATAL, ProcessLib::ConstitutiveRelations::StressData< DisplacementDim >::sigma, ProcessLib::TH2M::ConstitutiveRelations::SolidMechanicsDataStateless< DisplacementDim >::stiffness_tensor, MaterialPropertyLib::VariableArray::stress, ProcessLib::ConstitutiveRelations::SpaceTimeData::t, ProcessLib::TH2M::ConstitutiveRelations::TemperatureData::T, ProcessLib::TH2M::ConstitutiveRelations::TemperatureData::T_prev, MaterialPropertyLib::VariableArray::temperature, and ProcessLib::ConstitutiveRelations::SpaceTimeData::x.

◆ getInternalVariables()

template<int DisplacementDim>
auto ProcessLib::TH2M::ConstitutiveRelations::SolidMechanicsModel< DisplacementDim >::getInternalVariables ( ) const
inline

Definition at line 57 of file SolidMechanics.h.

58 {
59 return solid_material_.getInternalVariables();
60 }

References ProcessLib::TH2M::ConstitutiveRelations::SolidMechanicsModel< DisplacementDim >::solid_material_.

Member Data Documentation

◆ solid_material_

template<int DisplacementDim>
SolidConstitutiveRelation<DisplacementDim> const& ProcessLib::TH2M::ConstitutiveRelations::SolidMechanicsModel< DisplacementDim >::solid_material_
private

The documentation for this struct was generated from the following files: