OGS
CreateProperty.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright (c) OpenGeoSys Community (opengeosys.org)
2// SPDX-License-Identifier: BSD-3-Clause
3
4#pragma once
5
6#include <map>
7#include <memory>
8#include <optional>
9#include <vector>
10
11#include "PropertyType.h"
12
13namespace BaseLib
14{
15class ConfigTree;
16}
17namespace ParameterLib
18{
19struct ParameterBase;
20struct CoordinateSystem;
21} // namespace ParameterLib
22namespace MathLib
23{
25}
26
27namespace MaterialPropertyLib
28{
29class Property;
30
35 std::array<std::unique_ptr<Property>, PropertyType::number_of_properties>;
36
43std::unique_ptr<PropertyArray> createProperties(
44 int const geometry_dimension,
45 std::optional<BaseLib::ConfigTree> const& config,
46 std::vector<std::unique_ptr<ParameterLib::ParameterBase>>& parameters,
47 ParameterLib::CoordinateSystem const* const local_coordinate_system,
48 std::map<std::string,
49 std::unique_ptr<MathLib::PiecewiseLinearInterpolation>> const&
50 curves);
51
52} // namespace MaterialPropertyLib
std::unique_ptr< PropertyArray > createProperties(int const geometry_dimension, std::optional< BaseLib::ConfigTree > const &config, std::vector< std::unique_ptr< ParameterLib::ParameterBase > > &parameters, ParameterLib::CoordinateSystem const *const local_coordinate_system, std::map< std::string, std::unique_ptr< MathLib::PiecewiseLinearInterpolation > > const &curves)
std::array< std::unique_ptr< Property >, PropertyType::number_of_properties > PropertyArray
A local coordinate system used for tensor transformations.