OGS
CreateThermoRichardsMechanicsProcess.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}
23namespace MeshLib
24{
25class Mesh;
26}
27namespace MaterialPropertyLib
28{
29class Medium;
30}
31namespace ParameterLib
32{
33struct CoordinateSystem;
34struct ParameterBase;
35} // namespace ParameterLib
36namespace ProcessLib
37{
38class AbstractJacobianAssembler;
39class Process;
40class ProcessVariable;
41} // namespace ProcessLib
42
43namespace ProcessLib
44{
45namespace ThermoRichardsMechanics
46{
47template <int DisplacementDim>
48std::unique_ptr<Process> createThermoRichardsMechanicsProcess(
49 std::string const& name,
50 MeshLib::Mesh& mesh,
51 std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler,
52 std::vector<ProcessVariable> const& variables,
53 std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters,
54 std::optional<ParameterLib::CoordinateSystem> const&
55 local_coordinate_system,
56 unsigned const integration_order,
57 BaseLib::ConfigTree const& config,
58 std::map<int, std::shared_ptr<MaterialPropertyLib::Medium>> const& media);
59
60extern template std::unique_ptr<Process>
62 std::string const& name,
63 MeshLib::Mesh& mesh,
64 std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler,
65 std::vector<ProcessVariable> const& variables,
66 std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters,
67 std::optional<ParameterLib::CoordinateSystem> const&
68 local_coordinate_system,
69 unsigned const integration_order,
70 BaseLib::ConfigTree const& config,
71 std::map<int, std::shared_ptr<MaterialPropertyLib::Medium>> const& media);
72
73extern template std::unique_ptr<Process>
75 std::string const& name,
76 MeshLib::Mesh& mesh,
77 std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler,
78 std::vector<ProcessVariable> const& variables,
79 std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters,
80 std::optional<ParameterLib::CoordinateSystem> const&
81 local_coordinate_system,
82 unsigned const integration_order,
83 BaseLib::ConfigTree const& config,
84 std::map<int, std::shared_ptr<MaterialPropertyLib::Medium>> const& media);
85} // namespace ThermoRichardsMechanics
86} // namespace ProcessLib
template std::unique_ptr< Process > createThermoRichardsMechanicsProcess< 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 > createThermoRichardsMechanicsProcess< 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 > createThermoRichardsMechanicsProcess(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)