OGS
CreateLargeDeformationProcess.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 MaterialPropertyLib
24{
25class Medium;
26}
27namespace MeshLib
28{
29class Mesh;
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 LargeDeformation
46{
47template <int DisplacementDim>
48std::unique_ptr<Process> createLargeDeformationProcess(
49 std::string 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> createLargeDeformationProcess<2>(
61 std::string name,
62 MeshLib::Mesh& mesh,
63 std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler,
64 std::vector<ProcessVariable> const& variables,
65 std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters,
66 std::optional<ParameterLib::CoordinateSystem> const&
67 local_coordinate_system,
68 unsigned const integration_order,
69 BaseLib::ConfigTree const& config,
70 std::map<int, std::shared_ptr<MaterialPropertyLib::Medium>> const& media);
71
72extern template std::unique_ptr<Process> createLargeDeformationProcess<3>(
73 std::string name,
74 MeshLib::Mesh& mesh,
75 std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler,
76 std::vector<ProcessVariable> const& variables,
77 std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters,
78 std::optional<ParameterLib::CoordinateSystem> const&
79 local_coordinate_system,
80 unsigned const integration_order,
81 BaseLib::ConfigTree const& config,
82 std::map<int, std::shared_ptr<MaterialPropertyLib::Medium>> const& media);
83
84} // namespace LargeDeformation
85} // namespace ProcessLib
template std::unique_ptr< Process > createLargeDeformationProcess< 2 >(std::string 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 > createLargeDeformationProcess(std::string 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 > createLargeDeformationProcess< 3 >(std::string 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)