OGS
CreatePhaseFieldProcess.h
Go to the documentation of this file.
1 
11 #pragma once
12 
13 #include <memory>
14 #include <optional>
15 #include <string>
16 #include <vector>
17 
18 namespace BaseLib
19 {
20 class ConfigTree;
21 }
22 namespace MeshLib
23 {
24 class Mesh;
25 }
26 namespace ParameterLib
27 {
28 struct CoordinateSystem;
29 struct ParameterBase;
30 } // namespace ParameterLib
31 namespace ProcessLib
32 {
33 class AbstractJacobianAssembler;
34 class Process;
35 class ProcessVariable;
36 } // namespace ProcessLib
37 
38 namespace ProcessLib
39 {
40 namespace PhaseField
41 {
42 template <int DisplacementDim>
43 std::unique_ptr<Process> createPhaseFieldProcess(
44  std::string name,
45  MeshLib::Mesh& mesh,
46  std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler,
47  std::vector<ProcessVariable> const& variables,
48  std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters,
49  std::optional<ParameterLib::CoordinateSystem> const&
50  local_coordinate_system,
51  unsigned const integration_order,
52  BaseLib::ConfigTree const& config);
53 
54 extern template std::unique_ptr<Process> createPhaseFieldProcess<2>(
55  std::string name,
56  MeshLib::Mesh& mesh,
57  std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler,
58  std::vector<ProcessVariable> const& variables,
59  std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters,
60  std::optional<ParameterLib::CoordinateSystem> const&
61  local_coordinate_system,
62  unsigned const integration_order,
63  BaseLib::ConfigTree const& config);
64 
65 extern template std::unique_ptr<Process> createPhaseFieldProcess<3>(
66  std::string name,
67  MeshLib::Mesh& mesh,
68  std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler,
69  std::vector<ProcessVariable> const& variables,
70  std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters,
71  std::optional<ParameterLib::CoordinateSystem> const&
72  local_coordinate_system,
73  unsigned const integration_order,
74  BaseLib::ConfigTree const& config);
75 } // namespace PhaseField
76 } // namespace ProcessLib
template std::unique_ptr< Process > createPhaseFieldProcess< 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::unique_ptr< Process > createPhaseFieldProcess(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)
template std::unique_ptr< Process > createPhaseFieldProcess< 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)