76 int const geometry_dimension,
77 std::optional<BaseLib::ConfigTree>
const& config,
78 std::vector<std::unique_ptr<ParameterLib::ParameterBase>>
const& parameters,
81 std::unique_ptr<MathLib::PiecewiseLinearInterpolation>>
const&
89 std::vector<std::unique_ptr<Component>> components;
91 auto const& component_config :
93 config->getConfigSubtreeList(
"component"))
96 createComponent(geometry_dimension, component_config, parameters,
97 local_coordinate_system, curves);
99 if (std::find_if(components.begin(),
101 [component_name = component->name](
auto const&
c) {
102 return c->name == component_name;
103 }) != components.end())
106 "Found duplicates with the same component name tag '{:s}'.",
110 components.push_back(std::move(component));
std::vector< std::unique_ptr< Component > > createComponents(int const geometry_dimension, std::optional< BaseLib::ConfigTree > const &config, std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const ¶meters, ParameterLib::CoordinateSystem const *const local_coordinate_system, std::map< std::string, std::unique_ptr< MathLib::PiecewiseLinearInterpolation > > const &curves)
std::unique_ptr< MaterialPropertyLib::Component > createComponent(int const geometry_dimension, BaseLib::ConfigTree const &config, std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const ¶meters, ParameterLib::CoordinateSystem const *const local_coordinate_system, std::map< std::string, std::unique_ptr< MathLib::PiecewiseLinearInterpolation > > const &curves)