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
21namespace BaseLib
22{
23class ConfigTree;
24}
25namespace ParameterLib
26{
27struct ParameterBase;
28struct CoordinateSystem;
29} // namespace ParameterLib
30namespace MathLib
31{
32class PiecewiseLinearInterpolation;
33}
34
35namespace MaterialPropertyLib
36{
37class Property;
38
43 std::array<std::unique_ptr<Property>, PropertyType::number_of_properties>;
44
51std::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)
A local coordinate system used for tensor transformations.