16template <
int DisplacementDim>
19 std::vector<std::unique_ptr<ParameterLib::ParameterBase>>
const& parameters,
22 auto const config_stress0 =
31 auto const stress0_type_opt =
33 config_stress0->getConfigAttributeOptional<std::string>(
"type");
36 if (mandatory_stress_type && !stress0_type_opt)
39 "The attribute \"type\" of the tag \"initial_stress\" is required "
40 "for the current process setting, for example using subtype = "
41 "\"StressSaturation_StrainPressureTemperature\" in TRM. "
42 "However it is missing.");
45 auto const stress0_type_str =
46 stress0_type_opt ? *stress0_type_opt :
"effective";
49 if (stress0_type_str ==
"total")
53 else if (stress0_type_str ==
"effective")
60 "The initial stress type must be \"total\" or "
61 "\"effective\". But the given one is {:s}",
65 auto const parameter_name = config_stress0->getValue<std::string>();
67 parameter_name, parameters,
71 return {initial_stress, stress0_type};
76 std::vector<std::unique_ptr<ParameterLib::ParameterBase>>
const& parameters,
80 std::vector<std::unique_ptr<ParameterLib::ParameterBase>>
const& parameters,
std::optional< ConfigTree > getConfigSubtreeOptional(std::string const &root) const
constexpr int kelvin_vector_dimensions(int const displacement_dim)
Kelvin vector dimensions for given displacement dimension.
OGS_NO_DANGLING Parameter< ParameterDataType > & findParameter(std::string const ¶meter_name, std::vector< std::unique_ptr< ParameterBase > > const ¶meters, int const num_components, MeshLib::Mesh const *const mesh=nullptr)
template InitialStress createInitialStress< 2 >(BaseLib::ConfigTree const &config, std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const ¶meters, MeshLib::Mesh const &mesh, bool const mandatory_stress_type)
template InitialStress createInitialStress< 3 >(BaseLib::ConfigTree const &config, std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const ¶meters, MeshLib::Mesh const &mesh, bool const mandatory_stress_type)
InitialStress createInitialStress(BaseLib::ConfigTree const &config, std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const ¶meters, MeshLib::Mesh const &mesh, bool const mandatory_stress_type)