OGS
ProcessLib::LargeDeformation::ConstitutiveRelations Namespace Reference

Classes

struct  ConstitutiveSetting
struct  CreateConstitutiveSetting
struct  SolidMechanicsDataStateless
struct  SolidMechanicsModel

Typedefs

template<int DisplacementDim>
using StatefulData = std::tuple<StressData<DisplacementDim>>
 Data whose state must be tracked by the process.
template<int DisplacementDim>
using StatefulDataPrev
template<int DisplacementDim>
using OutputData
template<int DisplacementDim>
using ConstitutiveData
 Data that is needed for the equation system assembly.
template<int DisplacementDim>
using ConstitutiveTempData
template<int DisplacementDim>
using ConstitutiveModels
 Constitutive models used for assembly.
template<int DisplacementDim>
using SolidConstitutiveRelation

Functions

template<int DisplacementDim, typename LDProcessData>
ConstitutiveModels< DisplacementDim > createConstitutiveModels (LDProcessData const &process_data, SolidConstitutiveRelation< DisplacementDim > const &solid_material)
template<int DisplacementDim>
static bool checkCorrectModelEvalOrder ()
template<int DisplacementDim>
std::unique_ptr< SolidConstitutiveRelation< DisplacementDim > > createMFrontGeneric (std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const &parameters, std::optional< ParameterLib::CoordinateSystem > const &local_coordinate_system, BaseLib::ConfigTree const &config)

Typedef Documentation

◆ ConstitutiveData

Initial value:
std::tuple<SolidMechanicsDataStateless<DisplacementDim>,
BaseLib::StrongType< GlobalDimVector< DisplacementDim >, struct GravityTag > VolumetricBodyForce

Data that is needed for the equation system assembly.

Definition at line 33 of file LargeDeformation/ConstitutiveRelations/ConstitutiveData.h.

◆ ConstitutiveModels

◆ ConstitutiveTempData

Initial value:
std::tuple<PrevState<DeformationGradientData<DisplacementDim>>,
BaseLib::StrongType< double, struct SolidDensityTag > SolidDensity

Data that stores intermediate values, which are not needed outside the constitutive setting.

Definition at line 40 of file LargeDeformation/ConstitutiveRelations/ConstitutiveData.h.

◆ OutputData

Initial value:

Data that is needed for output purposes, but not directly for the assembly. This tuple is populated by the FEM code after constitutive evaluation.

Definition at line 28 of file LargeDeformation/ConstitutiveRelations/ConstitutiveData.h.

◆ SolidConstitutiveRelation

Initial value:
MSM::MFrontGeneric<DisplacementDim,
boost::mp11::mp_list<MSM::DeformationGradient>,
boost::mp11::mp_list<MSM::SecondPiolaKirchhoffStress>,
boost::mp11::mp_list<MSM::Temperature>>

Definition at line 29 of file LargeDeformation/ConstitutiveRelations/SolidMechanics.h.

◆ StatefulData

template<int DisplacementDim>
using ProcessLib::LargeDeformation::ConstitutiveRelations::StatefulData = std::tuple<StressData<DisplacementDim>>

Data whose state must be tracked by the process.

Definition at line 19 of file LargeDeformation/ConstitutiveRelations/ConstitutiveData.h.

◆ StatefulDataPrev

Initial value:
boost::mp11::mp_transform< PrevState, Tuple > PrevStateOf
Applies PrevState to a tuple of constitutive data.
std::tuple< StressData< DisplacementDim > > StatefulData
Data whose state must be tracked by the process.

Definition at line 22 of file LargeDeformation/ConstitutiveRelations/ConstitutiveData.h.

Function Documentation

◆ checkCorrectModelEvalOrder()

template<int DisplacementDim>
bool ProcessLib::LargeDeformation::ConstitutiveRelations::checkCorrectModelEvalOrder ( )
static

Definition at line 15 of file LargeDeformation/ConstitutiveRelations/ConstitutiveSetting.cpp.

16{
17 INFO(
18 "Checking correct model evaluation order in the constitutive setting.");
19
20 using namespace boost::mp11;
21
22 constexpr auto D = DisplacementDim;
23
24 using Inputs = mp_list<SpaceTimeData, MediaData, Temperature,
27
28 using InputsAndPrevState = mp_append<Inputs, StatefulDataPrev<D>>;
29
30 bool const is_correct = ProcessLib::Graph::isEvalOrderCorrectRT<
31 ConstitutiveModels<DisplacementDim>, InputsAndPrevState>();
32
33 if (!is_correct)
34 {
35 OGS_FATAL("The constitutive setting has a wrong evaluation order.");
36 }
37
38 INFO("Model evaluation order is correct.");
39
40 return is_correct;
41}
#define OGS_FATAL(...)
Definition Error.h:19
void INFO(fmt::format_string< Args... > fmt, Args &&... args)
Definition Logging.h:28
BaseLib::StrongType< double, struct TemperatureTag > Temperature
std::tuple< SolidMechanicsModel< DisplacementDim >, SolidDensityModel, GravityModel< DisplacementDim > > ConstitutiveModels
Constitutive models used for assembly.

References INFO(), ProcessLib::Graph::isEvalOrderCorrectRT(), and OGS_FATAL.

Referenced by ProcessLib::LargeDeformation::ConstitutiveRelations::ConstitutiveSetting< DisplacementDim >::init().

◆ createConstitutiveModels()

template<int DisplacementDim, typename LDProcessData>
ConstitutiveModels< DisplacementDim > ProcessLib::LargeDeformation::ConstitutiveRelations::createConstitutiveModels ( LDProcessData const & process_data,
SolidConstitutiveRelation< DisplacementDim > const & solid_material )

◆ createMFrontGeneric()

template<int DisplacementDim>
std::unique_ptr< SolidConstitutiveRelation< DisplacementDim > > ProcessLib::LargeDeformation::ConstitutiveRelations::createMFrontGeneric ( std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const & parameters,
std::optional< ParameterLib::CoordinateSystem > const & local_coordinate_system,
BaseLib::ConfigTree const & config )

Definition at line 14 of file LargeDeformation/ConstitutiveRelations/CreateConstitutiveSetting.cpp.

19{
20 namespace MSM = MaterialLib::Solids::MFront;
21 using namespace boost::mp11;
22
23 return MSM::createMFrontGeneric<
24 DisplacementDim, mp_list<MSM::DeformationGradient>,
25 mp_list<MSM::SecondPiolaKirchhoffStress>, mp_list<MSM::Temperature>>(
26 parameters, local_coordinate_system, config);
27}

Referenced by ProcessLib::LargeDeformation::ConstitutiveRelations::CreateConstitutiveSetting< DisplacementDim >::createSolidConstitutiveRelations().