21 std::vector<std::unique_ptr<ParameterLib::ParameterBase>>
const& parameters,
22 std::optional<ParameterLib::CoordinateSystem>
const&
23 local_coordinate_system,
25 std::unique_ptr<SolidConstitutiveRelation> (*create_constitutive_relation)(
26 std::vector<std::unique_ptr<ParameterLib::ParameterBase>>
const&,
27 std::optional<ParameterLib::CoordinateSystem>
const&,
30 auto const constitutive_relation_configs =
34 std::map<int, std::unique_ptr<SolidConstitutiveRelation>>
35 constitutive_relations;
37 for (
auto const& constitutive_relation_config :
38 constitutive_relation_configs)
40 int const material_id =
42 constitutive_relation_config.getConfigAttribute<
int>(
"id", 0);
44 if (constitutive_relations.find(material_id) !=
45 constitutive_relations.end())
48 "Multiple constitutive relations were specified for the same "
49 "material id {:d}. Keep in mind, that if no material id is "
50 "specified, it is assumed to be 0 by default.",
54 constitutive_relations.emplace(
56 create_constitutive_relation(parameters,
57 local_coordinate_system,
58 constitutive_relation_config));
61 DBUG(
"Found {:d} constitutive relations.", constitutive_relations.size());
63 return constitutive_relations;
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 &))