68 int const geometry_dimension,
69 std::optional<BaseLib::ConfigTree>
const& config,
70 std::vector<std::unique_ptr<ParameterLib::ParameterBase>>& parameters,
73 std::unique_ptr<MathLib::PiecewiseLinearInterpolation>>
const&
81 std::vector<std::unique_ptr<Component>> components;
83 auto const& component_config :
85 config->getConfigSubtreeList(
"component"))
88 createComponent(geometry_dimension, component_config, parameters,
89 local_coordinate_system, curves);
91 if (std::find_if(components.begin(),
93 [component_name = component->name](
auto const&
c) {
94 return c->name == component_name;
95 }) != components.end())
98 "Found duplicates with the same component name tag '{:s}'.",
102 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 > > ¶meters, ParameterLib::CoordinateSystem const *const local_coordinate_system, std::map< std::string, std::unique_ptr< MathLib::PiecewiseLinearInterpolation > > const &curves)
std::unique_ptr< PropertyArray > createProperties(int const geometry_dimension, std::optional< BaseLib::ConfigTree > const &config, std::vector< std::unique_ptr< ParameterLib::ParameterBase > > ¶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 > > ¶meters, ParameterLib::CoordinateSystem const *const local_coordinate_system, std::map< std::string, std::unique_ptr< MathLib::PiecewiseLinearInterpolation > > const &curves)