OGS
CreateConstitutiveRelation.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
11namespace BaseLib
12{
13class ConfigTree;
14}
15namespace MeshLib
16{
17template <typename T>
18class PropertyVector;
19}
20
21namespace ParameterLib
22{
23struct ParameterBase;
24struct CoordinateSystem;
25}
26
27namespace MaterialLib
28{
29namespace Solids
30{
31template <int DisplacementDim>
32struct MechanicsBase;
33
34template <int DisplacementDim>
35std::unique_ptr<MaterialLib::Solids::MechanicsBase<DisplacementDim>>
37 std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters,
38 std::optional<ParameterLib::CoordinateSystem> const&
39 local_coordinate_system,
40 BaseLib::ConfigTree const& config);
41
42extern template std::unique_ptr<MaterialLib::Solids::MechanicsBase<2>>
44 std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters,
45 std::optional<ParameterLib::CoordinateSystem> const&
46 local_coordinate_system,
47 BaseLib::ConfigTree const& config);
48
49extern template std::unique_ptr<MaterialLib::Solids::MechanicsBase<3>>
51 std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters,
52 std::optional<ParameterLib::CoordinateSystem> const&
53 local_coordinate_system,
54 BaseLib::ConfigTree const& config);
55
56template <int DisplacementDim>
57std::map<int,
58 std::shared_ptr<MaterialLib::Solids::MechanicsBase<DisplacementDim>>>
60 std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters,
61 std::optional<ParameterLib::CoordinateSystem> const&
62 local_coordinate_system,
63 MeshLib::PropertyVector<int> const* const material_ids,
64 BaseLib::ConfigTree const& config);
65
66extern template std::map<int,
67 std::shared_ptr<MaterialLib::Solids::MechanicsBase<2>>>
69 std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters,
70 std::optional<ParameterLib::CoordinateSystem> const&
71 local_coordinate_system,
72 MeshLib::PropertyVector<int> const* const material_ids,
73 BaseLib::ConfigTree const& config);
74
75extern template std::map<int,
76 std::shared_ptr<MaterialLib::Solids::MechanicsBase<3>>>
78 std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters,
79 std::optional<ParameterLib::CoordinateSystem> const&
80 local_coordinate_system,
81 MeshLib::PropertyVector<int> const* const material_ids,
82 BaseLib::ConfigTree const& config);
83} // namespace Solids
84} // namespace MaterialLib
std::map< int, std::shared_ptr< MaterialLib::Solids::MechanicsBase< DisplacementDim > > > createConstitutiveRelations(std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const &parameters, std::optional< ParameterLib::CoordinateSystem > const &local_coordinate_system, MeshLib::PropertyVector< int > const *const material_ids, BaseLib::ConfigTree const &config)
template std::map< int, std::shared_ptr< MaterialLib::Solids::MechanicsBase< 2 > > > createConstitutiveRelations< 2 >(std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const &parameters, std::optional< ParameterLib::CoordinateSystem > const &local_coordinate_system, MeshLib::PropertyVector< int > const *const material_ids, BaseLib::ConfigTree const &config)
std::unique_ptr< MaterialLib::Solids::MechanicsBase< DisplacementDim > > createConstitutiveRelation(std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const &parameters, std::optional< ParameterLib::CoordinateSystem > const &local_coordinate_system, BaseLib::ConfigTree const &config)
template std::map< int, std::shared_ptr< MaterialLib::Solids::MechanicsBase< 3 > > > createConstitutiveRelations< 3 >(std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const &parameters, std::optional< ParameterLib::CoordinateSystem > const &local_coordinate_system, MeshLib::PropertyVector< int > const *const material_ids, BaseLib::ConfigTree const &config)
A local coordinate system used for tensor transformations.