OGS
CreateThermoMechanicalPhaseFieldProcess.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 ThermoMechanicalPhaseField
41{
42template <int DisplacementDim>
43std::unique_ptr<Process> createThermoMechanicalPhaseFieldProcess(
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>
56 std::string const& name,
57 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,
64 BaseLib::ConfigTree const& config);
65
66extern template std::unique_ptr<Process>
68 std::string const& name,
69 MeshLib::Mesh& mesh,
70 std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler,
71 std::vector<ProcessVariable> const& variables,
72 std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters,
73 std::optional<ParameterLib::CoordinateSystem> const&
74 local_coordinate_system,
75 unsigned const integration_order,
76 BaseLib::ConfigTree const& config);
77
78} // namespace ThermoMechanicalPhaseField
79} // namespace ProcessLib
std::unique_ptr< Process > createThermoMechanicalPhaseFieldProcess(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 > createThermoMechanicalPhaseFieldProcess< 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)
template std::unique_ptr< Process > createThermoMechanicalPhaseFieldProcess< 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)