31template <
int DisplacementDim>
32std::unique_ptr<MaterialLib::Solids::MechanicsBase<DisplacementDim>>
34 std::vector<std::unique_ptr<ParameterLib::ParameterBase>>
const& parameters,
35 std::optional<ParameterLib::CoordinateSystem>
const&
36 local_coordinate_system,
45 return MaterialLib::Solids::Ehlers::createEhlers<DisplacementDim>(
48 if (type ==
"LinearElasticIsotropic")
50 const bool skip_type_checking =
false;
52 DisplacementDim>(parameters, config, skip_type_checking);
54 if (type ==
"LinearElasticOrthotropic")
56 const bool skip_type_checking =
false;
59 parameters, local_coordinate_system, config, skip_type_checking);
61 if (type ==
"LinearElasticTransverseIsotropic")
63 const bool skip_type_checking =
false;
66 parameters, local_coordinate_system, config, skip_type_checking);
70 return MaterialLib::Solids::Lubby2::createLubby2<DisplacementDim>(
73 if (type ==
"CreepBGRa")
75 return MaterialLib::Solids::Creep::createCreepBGRa<DisplacementDim>(
81 return MaterialLib::Solids::MFront::createMFront<DisplacementDim>(
82 parameters, local_coordinate_system, config);
85 "OGS is compiled without MFront support. See OGS_USE_MFRONT CMake "
89 OGS_FATAL(
"Cannot construct constitutive relation of given type '{:s}'.",
93template std::unique_ptr<MaterialLib::Solids::MechanicsBase<2>>
95 std::vector<std::unique_ptr<ParameterLib::ParameterBase>>
const& parameters,
96 std::optional<ParameterLib::CoordinateSystem>
const&
97 local_coordinate_system,
100template std::unique_ptr<MaterialLib::Solids::MechanicsBase<3>>
102 std::vector<std::unique_ptr<ParameterLib::ParameterBase>>
const& parameters,
103 std::optional<ParameterLib::CoordinateSystem>
const&
104 local_coordinate_system,
107template <
int DisplacementDim>
109 std::unique_ptr<MaterialLib::Solids::MechanicsBase<DisplacementDim>>>
111 std::vector<std::unique_ptr<ParameterLib::ParameterBase>>
const& parameters,
112 std::optional<ParameterLib::CoordinateSystem>
const&
113 local_coordinate_system,
119 local_coordinate_system,
121 createConstitutiveRelation<DisplacementDim>);
124template std::map<int, std::unique_ptr<MaterialLib::Solids::MechanicsBase<2>>>
126 std::vector<std::unique_ptr<ParameterLib::ParameterBase>>
const& parameters,
127 std::optional<ParameterLib::CoordinateSystem>
const&
128 local_coordinate_system,
131template std::map<int, std::unique_ptr<MaterialLib::Solids::MechanicsBase<3>>>
133 std::vector<std::unique_ptr<ParameterLib::ParameterBase>>
const& parameters,
134 std::optional<ParameterLib::CoordinateSystem>
const&
135 local_coordinate_system,
T peekConfigParameter(std::string const ¶m) const
std::unique_ptr< LinearElasticTransverseIsotropic< DisplacementDim > > createLinearElasticTransverseIsotropic(std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const ¶meters, std::optional< ParameterLib::CoordinateSystem > const &local_coordinate_system, BaseLib::ConfigTree const &config, const bool skip_type_checking)
std::unique_ptr< LinearElasticOrthotropic< DisplacementDim > > createLinearElasticOrthotropic(std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const ¶meters, std::optional< ParameterLib::CoordinateSystem > const &local_coordinate_system, BaseLib::ConfigTree const &config, const bool skip_type_checking)
std::map< int, std::unique_ptr< MaterialLib::Solids::MechanicsBase< DisplacementDim > > > createConstitutiveRelations(std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const ¶meters, std::optional< ParameterLib::CoordinateSystem > const &local_coordinate_system, BaseLib::ConfigTree const &config)
std::map< int, std::unique_ptr< SolidConstitutiveRelation > > createConstitutiveRelationsGeneric(std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const ¶meters, std::optional< ParameterLib::CoordinateSystem > const &local_coordinate_system, BaseLib::ConfigTree const &config, std::unique_ptr< SolidConstitutiveRelation >(*create_constitutive_relation)(std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const &, std::optional< ParameterLib::CoordinateSystem > const &, BaseLib::ConfigTree const &))
template std::map< int, std::unique_ptr< MaterialLib::Solids::MechanicsBase< 2 > > > createConstitutiveRelations< 2 >(std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const ¶meters, std::optional< ParameterLib::CoordinateSystem > const &local_coordinate_system, BaseLib::ConfigTree const &config)
std::unique_ptr< LinearElasticIsotropic< DisplacementDim > > createLinearElasticIsotropic(std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const ¶meters, BaseLib::ConfigTree const &config, const bool skip_type_checking)
template std::map< int, std::unique_ptr< MaterialLib::Solids::MechanicsBase< 3 > > > createConstitutiveRelations< 3 >(std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const ¶meters, std::optional< ParameterLib::CoordinateSystem > const &local_coordinate_system, BaseLib::ConfigTree const &config)
std::unique_ptr< MaterialLib::Solids::MechanicsBase< DisplacementDim > > createConstitutiveRelation(std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const ¶meters, std::optional< ParameterLib::CoordinateSystem > const &local_coordinate_system, BaseLib::ConfigTree const &config)