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
18namespace BaseLib
19{
20class ConfigTree;
21}
22namespace MeshLib
23{
24class Mesh;
25}
26namespace ParameterLib
27{
28struct CoordinateSystem;
29struct ParameterBase;
30} // namespace ParameterLib
31namespace ProcessLib
32{
33class AbstractJacobianAssembler;
34class Process;
35class ProcessVariable;
36} // namespace ProcessLib
37
38namespace ProcessLib
39{
40namespace PhaseField
41{
42template <int DisplacementDim>
43std::unique_ptr<Process> createPhaseFieldProcess(
44 std::string const& 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
54extern template std::unique_ptr<Process> createPhaseFieldProcess<2>(
55 std::string const& 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
65extern template std::unique_ptr<Process> createPhaseFieldProcess<3>(
66 std::string const& 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
std::unique_ptr< Process > createPhaseFieldProcess(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)
template std::unique_ptr< Process > createPhaseFieldProcess< 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)
template std::unique_ptr< Process > createPhaseFieldProcess< 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)