OGS
CreateTH2MProcess.h
Go to the documentation of this file.
1
11#pragma once
12
13#include <map>
14#include <memory>
15#include <optional>
16#include <string>
17#include <vector>
18
19namespace BaseLib
20{
21class ConfigTree;
22}
23
24namespace MaterialPropertyLib
25{
26class Medium;
27}
28
29namespace MeshLib
30{
31class Mesh;
32}
33
34namespace ParameterLib
35{
36struct CoordinateSystem;
37struct ParameterBase;
38} // namespace ParameterLib
39namespace ProcessLib
40{
41class AbstractJacobianAssembler;
42class Process;
43class ProcessVariable;
44} // namespace ProcessLib
45
46namespace ProcessLib
47{
48namespace TH2M
49{
50template <int DisplacementDim>
51std::unique_ptr<Process> createTH2MProcess(
52 std::string const& name,
53 MeshLib::Mesh& mesh,
54 std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler,
55 std::vector<ProcessVariable> const& variables,
56 std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters,
57 std::optional<ParameterLib::CoordinateSystem> const&
58 local_coordinate_system,
59 unsigned const integration_order,
60 BaseLib::ConfigTree const& config,
61 std::map<int, std::shared_ptr<MaterialPropertyLib::Medium>> const& media);
62
63extern template std::unique_ptr<Process> createTH2MProcess<2>(
64 std::string const& name, MeshLib::Mesh& mesh,
65 std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler,
66 std::vector<ProcessVariable> const& variables,
67 std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters,
68 std::optional<ParameterLib::CoordinateSystem> const&
69 local_coordinate_system,
70 unsigned const integration_order, BaseLib::ConfigTree const& config,
71 std::map<int, std::shared_ptr<MaterialPropertyLib::Medium>> const& media);
72
73extern template std::unique_ptr<Process> createTH2MProcess<3>(
74 std::string const& name,
75 MeshLib::Mesh& mesh,
76 std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler,
77 std::vector<ProcessVariable> const& variables,
78 std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters,
79 std::optional<ParameterLib::CoordinateSystem> const&
80 local_coordinate_system,
81 unsigned const integration_order,
82 BaseLib::ConfigTree const& config,
83 std::map<int, std::shared_ptr<MaterialPropertyLib::Medium>> const& media);
84} // namespace TH2M
85} // namespace ProcessLib
template std::unique_ptr< Process > createTH2MProcess< 3 >(std::string const &name, MeshLib::Mesh &mesh, std::unique_ptr< ProcessLib::AbstractJacobianAssembler > &&jacobian_assembler, std::vector< ProcessVariable > const &variables, std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const &parameters, std::optional< ParameterLib::CoordinateSystem > const &local_coordinate_system, unsigned const integration_order, BaseLib::ConfigTree const &config, std::map< int, std::shared_ptr< MaterialPropertyLib::Medium > > const &media)
template std::unique_ptr< Process > createTH2MProcess< 2 >(std::string const &name, MeshLib::Mesh &mesh, std::unique_ptr< ProcessLib::AbstractJacobianAssembler > &&jacobian_assembler, std::vector< ProcessVariable > const &variables, std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const &parameters, std::optional< ParameterLib::CoordinateSystem > const &local_coordinate_system, unsigned const integration_order, BaseLib::ConfigTree const &config, std::map< int, std::shared_ptr< MaterialPropertyLib::Medium > > const &media)
std::unique_ptr< Process > createTH2MProcess(std::string const &name, MeshLib::Mesh &mesh, std::unique_ptr< ProcessLib::AbstractJacobianAssembler > &&jacobian_assembler, std::vector< ProcessVariable > const &variables, std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const &parameters, std::optional< ParameterLib::CoordinateSystem > const &local_coordinate_system, unsigned const integration_order, BaseLib::ConfigTree const &config, std::map< int, std::shared_ptr< MaterialPropertyLib::Medium > > const &media)