Loading [MathJax]/extensions/tex2jax.js
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>

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.

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_

References solid_material_, and tangent_operator_blocks_view_.

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
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
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(
60 *mat_state.material_state_variables);
61
62 if (!solution)
63 {
64 OGS_FATAL("Computation of local constitutive relation failed.");
65 }
66
68
69 auto const view = solid_material_.createThermodynamicForcesView();
70
71 stress_data.sigma =
73 mat_state.material_state_variables = std::move(std::get<1>(*solution));
74
76
77 current_stateless.stiffness_tensor = tangent_operator_blocks_view_.block(
80}
#define OGS_FATAL(...)
Definition Error.h:26

References MaterialPropertyLib::VariableArray::deformation_gradient, ProcessLib::LargeDeformation::DeformationGradientData< DisplacementDim >::deformation_gradient, ProcessLib::ConstitutiveRelations::SpaceTimeData::dt, ProcessLib::LargeDeformation::MaterialStateData< DisplacementDim >::material_state_variables, OGS_FATAL, ProcessLib::ConstitutiveRelations::StressData< DisplacementDim >::sigma, solid_material_, ProcessLib::LargeDeformation::ConstitutiveRelations::SolidMechanicsDataStateless< DisplacementDim >::stiffness_tensor, MaterialPropertyLib::VariableArray::stress, ProcessLib::ConstitutiveRelations::SpaceTimeData::t, tangent_operator_blocks_view_, MaterialPropertyLib::VariableArray::temperature, and ProcessLib::ConstitutiveRelations::SpaceTimeData::x.

◆ getInternalVariables()

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

Definition at line 68 of file SolidMechanics.h.

69 {
70 return solid_material_.getInternalVariables();
71 }

References solid_material_.

Member Data Documentation

◆ solid_material_

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

Definition at line 74 of file SolidMechanics.h.

Referenced by SolidMechanicsModel(), eval(), and getInternalVariables().

◆ 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.

Referenced by SolidMechanicsModel(), and eval().


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