OGS
CreateProperty.h
Go to the documentation of this file.
1 
12 #pragma once
13 
14 #include <map>
15 #include <memory>
16 #include <optional>
17 #include <vector>
18 
19 #include "PropertyType.h"
20 
21 namespace BaseLib
22 {
23 class ConfigTree;
24 }
25 namespace ParameterLib
26 {
27 struct ParameterBase;
28 struct CoordinateSystem;
29 } // namespace ParameterLib
30 namespace MathLib
31 {
32 class PiecewiseLinearInterpolation;
33 }
34 
35 namespace MaterialPropertyLib
36 {
37 class Property;
38 
43  std::array<std::unique_ptr<Property>, PropertyType::number_of_properties>;
44 
51 std::unique_ptr<PropertyArray> createProperties(
52  int const geometry_dimension,
53  std::optional<BaseLib::ConfigTree> const& config,
54  std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters,
55  ParameterLib::CoordinateSystem const* const local_coordinate_system,
56  std::map<std::string,
57  std::unique_ptr<MathLib::PiecewiseLinearInterpolation>> const&
58  curves);
59 
60 } // namespace MaterialPropertyLib
std::array< std::unique_ptr< Property >, PropertyType::number_of_properties > PropertyArray
std::unique_ptr< PropertyArray > createProperties(int const geometry_dimension, std::optional< BaseLib::ConfigTree > const &config, std::vector< std::unique_ptr< ParameterLib::ParameterBase >> const &parameters, ParameterLib::CoordinateSystem const *const local_coordinate_system, std::map< std::string, std::unique_ptr< MathLib::PiecewiseLinearInterpolation >> const &curves)