OGS
ProcessLib::SmallDeformation::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
 Data that is needed for output purposes, but not directly for the assembly.
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 SDProcessData>
ConstitutiveModels< DisplacementDim > createConstitutiveModels (SDProcessData const &process_data, SolidConstitutiveRelation< DisplacementDim > const &solid_material)
template<int DisplacementDim>
static bool checkCorrectModelEvalOrder ()

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 SmallDeformation/ConstitutiveRelations/ConstitutiveData.h.

◆ ConstitutiveModels

◆ ConstitutiveTempData

Initial value:
std::tuple<PrevState<StrainData<DisplacementDim>>, SolidDensity>
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 SmallDeformation/ConstitutiveRelations/ConstitutiveData.h.

◆ OutputData

Initial value:

Data that is needed for output purposes, but not directly for the assembly.

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

◆ SolidConstitutiveRelation

◆ StatefulData

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

Data whose state must be tracked by the process.

Definition at line 20 of file SmallDeformation/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 23 of file SmallDeformation/ConstitutiveRelations/ConstitutiveData.h.

Function Documentation

◆ checkCorrectModelEvalOrder()

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

Definition at line 14 of file SmallDeformation/ConstitutiveRelations/ConstitutiveSetting.cpp.

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

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

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

◆ createConstitutiveModels()

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