OGS
ProcessLib::ThermoRichardsMechanics::ConstitutiveStress_StrainTemperature::ElasticTangentStiffnessModel< DisplacementDim > Struct Template Reference

Detailed Description

template<int DisplacementDim>
struct ProcessLib::ThermoRichardsMechanics::ConstitutiveStress_StrainTemperature::ElasticTangentStiffnessModel< DisplacementDim >

Definition at line 22 of file ElasticTangentStiffnessModel.h.

#include <ElasticTangentStiffnessModel.h>

Public Member Functions

 ElasticTangentStiffnessModel (SolidConstitutiveRelation< DisplacementDim > const &solid_material)
 
void eval (SpaceTimeData const &x_t, TemperatureData< DisplacementDim > const &T_data, ElasticTangentStiffnessData< DisplacementDim > &out) const
 

Private Attributes

SolidConstitutiveRelation< DisplacementDim > const & solid_material_
 

Constructor & Destructor Documentation

◆ ElasticTangentStiffnessModel()

template<int DisplacementDim>
ProcessLib::ThermoRichardsMechanics::ConstitutiveStress_StrainTemperature::ElasticTangentStiffnessModel< DisplacementDim >::ElasticTangentStiffnessModel ( SolidConstitutiveRelation< DisplacementDim > const & solid_material)
inlineexplicit

Definition at line 24 of file ElasticTangentStiffnessModel.h.

26 : solid_material_(solid_material)
27 {
28 }

Member Function Documentation

◆ eval()

template<int DisplacementDim>
void ProcessLib::ThermoRichardsMechanics::ConstitutiveStress_StrainTemperature::ElasticTangentStiffnessModel< DisplacementDim >::eval ( SpaceTimeData const & x_t,
TemperatureData< DisplacementDim > const & T_data,
ElasticTangentStiffnessData< DisplacementDim > & out ) const

Definition at line 18 of file ElasticTangentStiffnessModel.cpp.

21{
22 namespace MPL = MaterialPropertyLib;
23
24 MPL::VariableArray variable_array;
25 MPL::VariableArray variable_array_prev;
26
27 auto const null_state = solid_material_.createMaterialStateVariables();
28 solid_material_.initializeInternalStateVariables(x_t.t, x_t.x, *null_state);
29
30 using KV = KelvinVector<DisplacementDim>;
31
32 variable_array.stress.emplace<KV>(KV::Zero());
33 variable_array.mechanical_strain.emplace<KV>(KV::Zero());
34 variable_array.temperature = T_data.T;
35
36 variable_array_prev.stress.emplace<KV>(KV::Zero());
37 variable_array_prev.mechanical_strain.emplace<KV>(KV::Zero());
38 variable_array_prev.temperature = T_data.T_prev;
39
40 auto&& solution = solid_material_.integrateStress(
41 variable_array_prev, variable_array, x_t.t, x_t.x, x_t.dt, *null_state);
42
43 if (!solution)
44 {
45 OGS_FATAL("Computation of elastic tangent stiffness failed.");
46 }
47
48 out.C_el = std::move(std::get<2>(*solution));
49}
#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

References ProcessLib::ThermoRichardsMechanics::ConstitutiveStress_StrainTemperature::ElasticTangentStiffnessData< DisplacementDim >::C_el, ProcessLib::ConstitutiveRelations::SpaceTimeData::dt, MaterialPropertyLib::VariableArray::mechanical_strain, OGS_FATAL, MaterialPropertyLib::VariableArray::stress, ProcessLib::ConstitutiveRelations::SpaceTimeData::t, ProcessLib::ThermoRichardsMechanics::TemperatureData< DisplacementDim >::T, ProcessLib::ThermoRichardsMechanics::TemperatureData< DisplacementDim >::T_prev, MaterialPropertyLib::VariableArray::temperature, and ProcessLib::ConstitutiveRelations::SpaceTimeData::x.

Member Data Documentation

◆ solid_material_

template<int DisplacementDim>
SolidConstitutiveRelation<DisplacementDim> const& ProcessLib::ThermoRichardsMechanics::ConstitutiveStress_StrainTemperature::ElasticTangentStiffnessModel< DisplacementDim >::solid_material_
private

Definition at line 35 of file ElasticTangentStiffnessModel.h.


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