OGS
CreateConstitutiveRelation.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
19namespace BaseLib
20{
21class ConfigTree;
22}
23namespace MeshLib
24{
25template <typename T>
26class PropertyVector;
27}
28
29namespace ParameterLib
30{
31struct ParameterBase;
32struct CoordinateSystem;
33}
34
35namespace MaterialLib
36{
37namespace Solids
38{
39template <int DisplacementDim>
40struct MechanicsBase;
41
42template <int DisplacementDim>
43std::unique_ptr<MaterialLib::Solids::MechanicsBase<DisplacementDim>>
45 std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters,
46 std::optional<ParameterLib::CoordinateSystem> const&
47 local_coordinate_system,
48 BaseLib::ConfigTree const& config);
49
50extern template std::unique_ptr<MaterialLib::Solids::MechanicsBase<2>>
52 std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters,
53 std::optional<ParameterLib::CoordinateSystem> const&
54 local_coordinate_system,
55 BaseLib::ConfigTree const& config);
56
57extern template std::unique_ptr<MaterialLib::Solids::MechanicsBase<3>>
59 std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters,
60 std::optional<ParameterLib::CoordinateSystem> const&
61 local_coordinate_system,
62 BaseLib::ConfigTree const& config);
63
64template <int DisplacementDim>
65std::map<int,
66 std::shared_ptr<MaterialLib::Solids::MechanicsBase<DisplacementDim>>>
68 std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters,
69 std::optional<ParameterLib::CoordinateSystem> const&
70 local_coordinate_system,
71 MeshLib::PropertyVector<int> const* const material_ids,
72 BaseLib::ConfigTree const& config);
73
74extern template std::map<int,
75 std::shared_ptr<MaterialLib::Solids::MechanicsBase<2>>>
77 std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters,
78 std::optional<ParameterLib::CoordinateSystem> const&
79 local_coordinate_system,
80 MeshLib::PropertyVector<int> const* const material_ids,
81 BaseLib::ConfigTree const& config);
82
83extern template std::map<int,
84 std::shared_ptr<MaterialLib::Solids::MechanicsBase<3>>>
86 std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters,
87 std::optional<ParameterLib::CoordinateSystem> const&
88 local_coordinate_system,
89 MeshLib::PropertyVector<int> const* const material_ids,
90 BaseLib::ConfigTree const& config);
91} // namespace Solids
92} // 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)