23 std::vector<std::unique_ptr<ParameterLib::ParameterBase>>
const& parameters,
24 std::optional<ParameterLib::CoordinateSystem>
const&
25 local_coordinate_system,
28 std::unique_ptr<SolidConstitutiveRelation> (*create_constitutive_relation)(
29 std::vector<std::unique_ptr<ParameterLib::ParameterBase>>
const&,
30 std::optional<ParameterLib::CoordinateSystem>
const&,
33 auto const constitutive_relation_configs =
37 std::map<int, std::shared_ptr<SolidConstitutiveRelation>>
38 constitutive_relations;
40 for (
auto const& constitutive_relation_config :
41 constitutive_relation_configs)
43 auto create = [&create_constitutive_relation,
45 &local_coordinate_system,
46 &constitutive_relation_config](
int const )
48 return create_constitutive_relation(parameters,
49 local_coordinate_system,
50 constitutive_relation_config);
53 auto const material_id_string =
55 constitutive_relation_config.getConfigAttribute<std::string>(
"id",
58 auto const material_ids_of_this_constitutive_relation =
62 for (
auto const& material_id :
63 material_ids_of_this_constitutive_relation)
67 constitutive_relations,
68 material_ids_of_this_constitutive_relation,
73 DBUG(
"Found {:d} constitutive relations.", constitutive_relations.size());
75 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 &))