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