OGS
CreateTH2MProcess.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright (c) OpenGeoSys Community (opengeosys.org)
2// SPDX-License-Identifier: BSD-3-Clause
3
4#pragma once
5
6#include <map>
7#include <memory>
8#include <optional>
9#include <string>
10#include <vector>
11
12namespace BaseLib
13{
14class ConfigTree;
15}
16
17namespace MaterialPropertyLib
18{
19class Medium;
20}
21
22namespace MeshLib
23{
24class Mesh;
25}
26
27namespace ParameterLib
28{
29struct CoordinateSystem;
30struct ParameterBase;
31} // namespace ParameterLib
32namespace ProcessLib
33{
35class Process;
36class ProcessVariable;
37} // namespace ProcessLib
38
39namespace ProcessLib
40{
41namespace TH2M
42{
43template <int DisplacementDim>
44std::unique_ptr<Process> createTH2MProcess(
45 std::string const& name,
46 MeshLib::Mesh& mesh,
47 std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler,
48 std::vector<ProcessVariable> const& variables,
49 std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters,
50 std::optional<ParameterLib::CoordinateSystem> const&
51 local_coordinate_system,
52 unsigned const integration_order,
53 BaseLib::ConfigTree const& config,
54 std::map<int, std::shared_ptr<MaterialPropertyLib::Medium>> const& media);
55
56extern template std::unique_ptr<Process> createTH2MProcess<2>(
57 std::string const& name, MeshLib::Mesh& mesh,
58 std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler,
59 std::vector<ProcessVariable> const& variables,
60 std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters,
61 std::optional<ParameterLib::CoordinateSystem> const&
62 local_coordinate_system,
63 unsigned const integration_order, BaseLib::ConfigTree const& config,
64 std::map<int, std::shared_ptr<MaterialPropertyLib::Medium>> const& media);
65
66extern template std::unique_ptr<Process> createTH2MProcess<3>(
67 std::string const& name,
68 MeshLib::Mesh& mesh,
69 std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler,
70 std::vector<ProcessVariable> const& variables,
71 std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters,
72 std::optional<ParameterLib::CoordinateSystem> const&
73 local_coordinate_system,
74 unsigned const integration_order,
75 BaseLib::ConfigTree const& config,
76 std::map<int, std::shared_ptr<MaterialPropertyLib::Medium>> const& media);
77} // namespace TH2M
78} // namespace ProcessLib
Base class for Jacobian assemblers.
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)
A local coordinate system used for tensor transformations.