OGS
ConstitutiveSetting.cpp
Go to the documentation of this file.
1
10#include "ConstitutiveSetting.h"
11
12#include "Invoke.h"
13
15{
16namespace ConstitutiveRelations
17{
18template <int DisplacementDim>
20 ConstitutiveModels<DisplacementDim>& models, double const t,
21 double const dt, ParameterLib::SpatialPosition const& x_position,
22 MaterialPropertyLib::Medium const& medium, double const T_ref,
23 DeformationGradientData<DisplacementDim> const& deformation_gradient_data,
24 GradientVectorType const& deformation_gradient_prev,
26 StatefulDataPrev<DisplacementDim> const& prev_state,
30{
31 namespace MPL = MaterialPropertyLib;
32
33 auto& deformation_gradient_data_prev = tmp.deformation_gradient_data_prev;
34 deformation_gradient_data_prev->deformation_gradient =
35 deformation_gradient_prev;
36 auto& rho_SR = tmp.rho_SR;
37
38 auto& s_mech_data = cd.s_mech_data;
39 auto& volumetric_body_force = cd.volumetric_body_force;
40
41 Temperature const T{T_ref};
42 SpaceTimeData const x_t{x_position, t, dt};
43 MediaData const media_data{medium};
44
46 models.s_mech_model.eval(
47 x_t, T, deformation_gradient_data, deformation_gradient_data_prev,
48 mat_state, prev_state.stress_data, state.stress_data, s_mech_data);
49
51 models.rho_S_model.eval(x_t, media_data, T, rho_SR);
52
54 models.gravity_model.eval(rho_SR, volumetric_body_force);
55}
56
57template struct ConstitutiveSetting<2>;
58template struct ConstitutiveSetting<3>;
59} // namespace ConstitutiveRelations
60} // namespace ProcessLib::LargeDeformation
constexpr void assertEvalArgsUnique(Model const &)
Definition Invoke.h:49
Data that is needed for the equation system assembly.
SolidMechanicsDataStateless< DisplacementDim > s_mech_data
void eval(ConstitutiveModels< DisplacementDim > &models, double const t, double const dt, ParameterLib::SpatialPosition const &x_position, MaterialPropertyLib::Medium const &medium, double const T_ref, DeformationGradientData< DisplacementDim > const &deformation_gradient_data, GradientVectorType const &deformation_gradient_prev, StatefulData< DisplacementDim > &state, StatefulDataPrev< DisplacementDim > const &prev_state, MaterialStateData< DisplacementDim > &mat_state, ConstitutiveTempData< DisplacementDim > &tmp, ConstitutiveData< DisplacementDim > &cd) const
Evaluate the constitutive setting.
Eigen::Matrix< double, DisplacementDim *DisplacementDim+(DisplacementDim==2 ? 1 :0), 1 > GradientVectorType
PrevState< DeformationGradientData< DisplacementDim > > deformation_gradient_data_prev
Data whose state must be tracked by the process.
void eval(SpaceTimeData const &x_t, MediaData const &media_data, Temperature const &temperature, SolidDensity &out) const