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

Detailed Description

template<int DisplacementDim>
struct ProcessLib::SmallDeformation::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 (SpaceTimeData const &x_t, Temperature const &temperature, StrainData< DisplacementDim > const &eps_data, PrevState< StrainData< DisplacementDim > > const &eps_data_prev, MaterialStateData< DisplacementDim > &mat_state, PrevState< StressData< DisplacementDim > > const &stress_data_prev, StressData< DisplacementDim > &stress_data, SolidMechanicsDataStateless< DisplacementDim > &current_stateless, FreeEnergyDensityData &free_energy_density_data) const
 
auto getInternalVariables () const
 

Private Attributes

SolidConstitutiveRelation< DisplacementDim > const & solid_material_
 

Constructor & Destructor Documentation

◆ SolidMechanicsModel()

template<int DisplacementDim>
ProcessLib::SmallDeformation::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::SmallDeformation::ConstitutiveRelations::SolidMechanicsModel< DisplacementDim >::eval ( SpaceTimeData const & x_t,
Temperature const & temperature,
StrainData< DisplacementDim > const & eps_data,
PrevState< StrainData< DisplacementDim > > const & eps_data_prev,
MaterialStateData< DisplacementDim > & mat_state,
PrevState< StressData< DisplacementDim > > const & stress_data_prev,
StressData< DisplacementDim > & stress_data,
SolidMechanicsDataStateless< DisplacementDim > & current_stateless,
FreeEnergyDensityData & free_energy_density_data ) const

Definition at line 17 of file SolidMechanics.cpp.

27{
28 namespace MPL = MaterialPropertyLib;
29
30 // current state
31 MPL::VariableArray variables;
32 {
33 // thermodynamic forces
34 variables.stress = stress_data.sigma;
35 variables.mechanical_strain = eps_data.eps;
36
37 // external state variables
38 variables.temperature = *temperature;
39 }
40
41 // previous state
42 MPL::VariableArray variables_prev;
43 {
44 // thermodynamic forces
45 variables_prev.stress = stress_data_prev->sigma;
46 variables_prev.mechanical_strain = eps_data_prev->eps;
47
48 // external state variables
49 variables_prev.temperature = *temperature;
50 }
51
52 auto solution = solid_material_.integrateStress(
53 variables_prev, variables, x_t.t, x_t.x, x_t.dt,
54 *mat_state.material_state_variables);
55
56 if (!solution)
57 {
58 OGS_FATAL("Computation of local constitutive relation failed.");
59 }
60
61 std::tie(stress_data.sigma, mat_state.material_state_variables,
62 current_stateless.stiffness_tensor) = std::move(*solution);
63
64 free_energy_density_data.free_energy_density =
65 solid_material_.computeFreeEnergyDensity(
66 x_t.t, x_t.x, x_t.dt, eps_data.eps, stress_data.sigma,
67 *mat_state.material_state_variables);
68}
#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::ConstitutiveRelations::SpaceTimeData::dt, ProcessLib::ConstitutiveRelations::StrainData< DisplacementDim >::eps, ProcessLib::SmallDeformation::FreeEnergyDensityData::free_energy_density, ProcessLib::SmallDeformation::MaterialStateData< DisplacementDim >::material_state_variables, MaterialPropertyLib::VariableArray::mechanical_strain, OGS_FATAL, ProcessLib::ConstitutiveRelations::StressData< DisplacementDim >::sigma, ProcessLib::SmallDeformation::ConstitutiveRelations::SolidMechanicsDataStateless< DisplacementDim >::stiffness_tensor, MaterialPropertyLib::VariableArray::stress, ProcessLib::ConstitutiveRelations::SpaceTimeData::t, MaterialPropertyLib::VariableArray::temperature, and ProcessLib::ConstitutiveRelations::SpaceTimeData::x.

◆ getInternalVariables()

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

Member Data Documentation

◆ solid_material_


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