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

Detailed Description

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

Definition at line 42 of file SolidMechanics.h.

#include <SolidMechanics.h>

Collaboration diagram for ProcessLib::LargeDeformation::ConstitutiveRelations::SolidMechanicsModel< DisplacementDim >:
[legend]

Public Member Functions

 SolidMechanicsModel (SolidConstitutiveRelation< DisplacementDim > const &solid_material)
 
void eval (SpaceTimeData const &x_t, Temperature const &temperature, DeformationGradientData< DisplacementDim > const &deformation_gradient_data, PrevState< DeformationGradientData< DisplacementDim > > const &deformation_gradient_data_prev, MaterialStateData< DisplacementDim > &mat_state, PrevState< StressData< DisplacementDim > > const &stress_data_prev, StressData< DisplacementDim > &stress_data, SolidMechanicsDataStateless< DisplacementDim > &current_stateless) const
 
auto getInternalVariables () const
 

Private Attributes

SolidConstitutiveRelation< DisplacementDim > const & solid_material_
 
MSM::OGSMFrontTangentOperatorBlocksView< DisplacementDim, MSM::ForcesGradsCombinations< boost::mp11::mp_list< MSM::GreenLagrangeStrain >, boost::mp11::mp_list< MSM::SecondPiolaKirchhoffStress >, boost::mp11::mp_list< MSM::Temperature > >::type > tangent_operator_blocks_view_
 

Constructor & Destructor Documentation

◆ SolidMechanicsModel()

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

Definition at line 44 of file SolidMechanics.h.

46 : solid_material_(solid_material),
48 solid_material.template createTangentOperatorBlocksView<
50 boost::mp11::mp_list<MSM::GreenLagrangeStrain>,
51 boost::mp11::mp_list<MSM::SecondPiolaKirchhoffStress>,
52 boost::mp11::mp_list<MSM::Temperature>>::type>()}
53 {
54 }
MSM::OGSMFrontTangentOperatorBlocksView< DisplacementDim, MSM::ForcesGradsCombinations< boost::mp11::mp_list< MSM::GreenLagrangeStrain >, boost::mp11::mp_list< MSM::SecondPiolaKirchhoffStress >, boost::mp11::mp_list< MSM::Temperature > >::type > tangent_operator_blocks_view_
SolidConstitutiveRelation< DisplacementDim > const & solid_material_

Member Function Documentation

◆ eval()

template<int DisplacementDim>
void ProcessLib::LargeDeformation::ConstitutiveRelations::SolidMechanicsModel< DisplacementDim >::eval ( SpaceTimeData const & x_t,
Temperature const & temperature,
DeformationGradientData< DisplacementDim > const & deformation_gradient_data,
PrevState< DeformationGradientData< DisplacementDim > > const & deformation_gradient_data_prev,
MaterialStateData< DisplacementDim > & mat_state,
PrevState< StressData< DisplacementDim > > const & stress_data_prev,
StressData< DisplacementDim > & stress_data,
SolidMechanicsDataStateless< DisplacementDim > & current_stateless ) 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
36 // gradient
37 variables.deformation_gradient =
38 deformation_gradient_data.deformation_gradient;
39
40 // external state variables
41 variables.temperature = *temperature;
42 }
43
44 // previous state
45 MPL::VariableArray variables_prev;
46 {
47 // thermodynamic forces
48 variables_prev.stress = stress_data_prev->sigma;
49
50 // gradient
51 variables_prev.deformation_gradient =
52 deformation_gradient_data_prev->deformation_gradient;
53
54 // external state variables
55 variables_prev.temperature = *temperature;
56 }
57
58 auto solution = solid_material_.integrateStress(
59 variables_prev, variables, x_t.t, x_t.x, x_t.dt,
60 *mat_state.material_state_variables);
61
62 if (!solution)
63 {
64 OGS_FATAL("Computation of local constitutive relation failed.");
65 }
66
67 auto& tdyn_forces_data = std::get<0>(*solution);
68
69 auto const view = solid_material_.createThermodynamicForcesView();
70
71 stress_data.sigma =
72 view.block(MSM::second_piola_kirchhoff_stress, tdyn_forces_data);
73 mat_state.material_state_variables = std::move(std::get<1>(*solution));
74
75 auto const& tangent_operator_data = std::get<2>(*solution);
76
77 current_stateless.stiffness_tensor = tangent_operator_blocks_view_.block(
79 tangent_operator_data);
80}
#define OGS_FATAL(...)
Definition Error.h:26
std::variant< std::monostate, Eigen::Matrix< double, 5, 1 >, Eigen::Matrix< double, 9, 1 > > deformation_gradient
std::variant< std::monostate, Eigen::Matrix< double, 4, 1 >, Eigen::Matrix< double, 6, 1 > > stress
static constexpr SecondPiolaKirchhoffStress second_piola_kirchhoff_stress
Definition Variable.h:167
static constexpr GreenLagrangeStrain green_lagrange_strain
Instance that can be used for overload resolution/template type deduction.
Definition Variable.h:112

References MaterialPropertyLib::VariableArray::deformation_gradient, ProcessLib::LargeDeformation::DeformationGradientData< DisplacementDim >::deformation_gradient, ProcessLib::ConstitutiveRelations::SpaceTimeData::dt, MaterialLib::Solids::MFront::green_lagrange_strain, ProcessLib::LargeDeformation::MaterialStateData< DisplacementDim >::material_state_variables, OGS_FATAL, MaterialLib::Solids::MFront::second_piola_kirchhoff_stress, ProcessLib::ConstitutiveRelations::StressData< DisplacementDim >::sigma, ProcessLib::LargeDeformation::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::LargeDeformation::ConstitutiveRelations::SolidMechanicsModel< DisplacementDim >::getInternalVariables ( ) const
inline

Member Data Documentation

◆ solid_material_

◆ tangent_operator_blocks_view_

template<int DisplacementDim>
MSM::OGSMFrontTangentOperatorBlocksView< DisplacementDim, MSM::ForcesGradsCombinations< boost::mp11::mp_list<MSM::GreenLagrangeStrain>, boost::mp11::mp_list<MSM::SecondPiolaKirchhoffStress>, boost::mp11::mp_list<MSM::Temperature> >::type> ProcessLib::LargeDeformation::ConstitutiveRelations::SolidMechanicsModel< DisplacementDim >::tangent_operator_blocks_view_
private

Definition at line 82 of file SolidMechanics.h.


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