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