OGS
CreateConstitutiveRelationIce.cpp
Go to the documentation of this file.
1
11
12#include "BaseLib/ConfigTree.h"
14#include "MechanicsBase.h"
15
16namespace MaterialLib
17{
18namespace Solids
19{
20template <int DisplacementDim>
21std::unique_ptr<MaterialLib::Solids::MechanicsBase<DisplacementDim>>
23 std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters,
24 std::optional<ParameterLib::CoordinateSystem> const&
25 local_coordinate_system,
26 BaseLib::ConfigTree const& config)
27{
28 auto const ice_constitutive_relation_config =
30 config.getConfigSubtreeOptional("ice_constitutive_relation");
31
32 if (!ice_constitutive_relation_config)
33 {
34 return nullptr;
35 }
36
37 return MaterialLib::Solids::createConstitutiveRelation<DisplacementDim>(
38 parameters, local_coordinate_system, *ice_constitutive_relation_config);
39}
40
41template std::unique_ptr<MaterialLib::Solids::MechanicsBase<2>>
43 std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters,
44 std::optional<ParameterLib::CoordinateSystem> const&
45 local_coordinate_system,
46 BaseLib::ConfigTree const& config);
47
48template std::unique_ptr<MaterialLib::Solids::MechanicsBase<3>>
50 std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters,
51 std::optional<ParameterLib::CoordinateSystem> const&
52 local_coordinate_system,
53 BaseLib::ConfigTree const& config);
54} // namespace Solids
55} // namespace MaterialLib
std::optional< ConfigTree > getConfigSubtreeOptional(std::string const &root) const
std::unique_ptr< MaterialLib::Solids::MechanicsBase< DisplacementDim > > createConstitutiveRelationIce(std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const &parameters, std::optional< ParameterLib::CoordinateSystem > const &local_coordinate_system, BaseLib::ConfigTree const &config)