OGS
SolidMechanics.h
Go to the documentation of this file.
1
10#pragma once
11
12#include "Base.h"
15#include "MaterialState.h"
18
20{
21namespace ConstitutiveRelations
22{
23template <int DisplacementDim>
31
33
34template <int DisplacementDim>
36 MSM::MFrontGeneric<DisplacementDim,
37 boost::mp11::mp_list<MSM::DeformationGradient>,
38 boost::mp11::mp_list<MSM::SecondPiolaKirchhoffStress>,
39 boost::mp11::mp_list<MSM::Temperature>>;
40
41template <int DisplacementDim>
43{
46 : solid_material_(solid_material),
48 solid_material.template createTangentOperatorBlocksView<
49 typename MSM::ForcesGradsCombinations<
50 boost::mp11::mp_list<MSM::GreenLagrangeStrain>,
51 boost::mp11::mp_list<MSM::SecondPiolaKirchhoffStress>,
52 boost::mp11::mp_list<MSM::Temperature>>::type>()}
53 {
54 }
55
56 void eval(
57 SpaceTimeData const& x_t,
58 Temperature const& temperature,
60 deformation_gradient_data,
62 deformation_gradient_data_prev,
64 PrevState<StressData<DisplacementDim>> const& stress_data_prev,
65 StressData<DisplacementDim>& stress_data,
66 SolidMechanicsDataStateless<DisplacementDim>& current_stateless) const;
67
69 {
70 return solid_material_.getInternalVariables();
71 }
72
73private:
75
77 DisplacementDim,
79 boost::mp11::mp_list<MSM::GreenLagrangeStrain>,
80 boost::mp11::mp_list<MSM::SecondPiolaKirchhoffStress>,
81 boost::mp11::mp_list<MSM::Temperature>>::type>
83};
84
85extern template struct SolidMechanicsModel<2>;
86extern template struct SolidMechanicsModel<3>;
87} // namespace ConstitutiveRelations
88} // namespace ProcessLib::LargeDeformation
constexpr auto KVnan()
Returns an expressions for a Kelvin vector filled with NaN.
constexpr auto KMnan()
Returns an expressions for a Kelvin matrix filled with NaN.
KV::KelvinMatrixType< DisplacementDim > KelvinMatrix
Definition Base.h:30
KV::KelvinVectorType< DisplacementDim > KelvinVector
Definition Base.h:27
Represents a previous state of type T.
Definition Base.h:21
SolidMechanicsModel(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_
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