16 std::vector<std::unique_ptr<ParameterLib::ParameterBase>>
const& parameters,
17 std::optional<ParameterLib::CoordinateSystem>
const&
18 local_coordinate_system,
21 std::unique_ptr<SolidConstitutiveRelation> (*create_constitutive_relation)(
22 std::vector<std::unique_ptr<ParameterLib::ParameterBase>>
const&,
23 std::optional<ParameterLib::CoordinateSystem>
const&,
26 auto const constitutive_relation_configs =
30 std::map<int, std::shared_ptr<SolidConstitutiveRelation>>
31 constitutive_relations;
33 for (
auto const& constitutive_relation_config :
34 constitutive_relation_configs)
36 auto create = [&create_constitutive_relation,
38 &local_coordinate_system,
39 &constitutive_relation_config](
int const )
41 return create_constitutive_relation(parameters,
42 local_coordinate_system,
43 constitutive_relation_config);
46 auto const material_id_string =
48 constitutive_relation_config.getConfigAttribute<std::string>(
"id",
51 auto const material_ids_of_this_constitutive_relation =
55 for (
auto const& material_id :
56 material_ids_of_this_constitutive_relation)
60 constitutive_relations,
61 material_ids_of_this_constitutive_relation,
66 DBUG(
"Found {:d} constitutive relations.", constitutive_relations.size());
68 return constitutive_relations;
std::map< int, std::shared_ptr< SolidConstitutiveRelation > > createConstitutiveRelationsGeneric(std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const ¶meters, std::optional< ParameterLib::CoordinateSystem > const &local_coordinate_system, MeshLib::PropertyVector< int > const *const material_ids, 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 &))