Parses the processes configuration and creates new processes for each process entry passing the corresponding subtree to the process constructor.
825{
826 (void)output_directory;
827
828 DBUG(
"Reading processes:");
830 for (auto process_config : processes_config.getConfigSubtreeList("process"))
831 {
832 auto const type =
834 process_config.peekConfigParameter<std::string>("type");
835
838 process_config.getConfigParameter<std::string>("name");
839
840 [[maybe_unused]] auto const integration_order =
842 process_config.getConfigParameter<int>("integration_order");
843
844 std::unique_ptr<ProcessLib::Process> process;
845
848 process_config.getConfigSubtreeOptional("jacobian_assembler"));
849
850#ifdef OGS_BUILD_PROCESS_STEADYSTATEDIFFUSION
851 if (type == "STEADY_STATE_DIFFUSION")
852 {
853
854
855
856
857
858 process =
860 name, *
_mesh_vec[0], std::move(jacobian_assembler),
863 }
864 else
865#endif
866#ifdef OGS_BUILD_PROCESS_LIQUIDFLOW
867 if (type == "LIQUID_FLOW")
868 {
870 name, *
_mesh_vec[0], std::move(jacobian_assembler),
873 }
874 else
875#endif
876#ifdef OGS_BUILD_PROCESS_TH2M
877 if (type == "TH2M")
878 {
880 {
881 case 2:
883 name, *
_mesh_vec[0], std::move(jacobian_assembler),
887 break;
888 case 3:
890 name, *
_mesh_vec[0], std::move(jacobian_assembler),
894 break;
895 default:
896 OGS_FATAL(
"TH2M process does not support given dimension");
897 }
898 }
899 else
900#endif
901#ifdef OGS_BUILD_PROCESS_HEATCONDUCTION
902 if (type == "HEAT_CONDUCTION")
903 {
905 name, *
_mesh_vec[0], std::move(jacobian_assembler),
908 }
909 else
910#endif
911#ifdef OGS_BUILD_PROCESS_HEATTRANSPORTBHE
912 if (type == "HEAT_TRANSPORT_BHE")
913 {
915 {
917 "HEAT_TRANSPORT_BHE can only work with a 3-dimensional "
918 "mesh! ");
919 }
920
921 process =
923 name, *
_mesh_vec[0], std::move(jacobian_assembler),
926 }
927 else
928#endif
929#ifdef OGS_BUILD_PROCESS_WELLBORESIMULATOR
930 if (type == "WELLBORE_SIMULATOR")
931 {
933 {
935 "WELLBORE_SIMULATOR can only work with a 1-dimensional "
936 "mesh!");
937 }
938
939 process =
941 name, *
_mesh_vec[0], std::move(jacobian_assembler),
944 }
945 else
946#endif
947#ifdef OGS_BUILD_PROCESS_HYDROMECHANICS
948 if (type == "HYDRO_MECHANICS")
949 {
950 if (
951 process_config.getConfigParameterOptional<int>("dimension"))
952 {
954 "The 'dimension' tag has been removed in the merge-request "
955 "!4766. The dimension is now taken from the main mesh and "
956 "the tag must be removed. There is a python script in the "
957 "merge-request description for automatic conversion.");
958 }
960 {
961 case 2:
962 process =
965 std::move(jacobian_assembler),
969 break;
970 case 3:
971 process =
974 std::move(jacobian_assembler),
978 break;
979 default:
981 "HYDRO_MECHANICS process does not support given "
982 "dimension");
983 }
984 }
985 else
986#endif
987#ifdef OGS_BUILD_PROCESS_LARGEDEFORMATION
988 if (type == "LARGE_DEFORMATION")
989 {
991 {
992 case 2:
995 name, *
_mesh_vec[0], std::move(jacobian_assembler),
999 break;
1000 case 3:
1003 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1007 break;
1008 default:
1010 "LARGE_DEFORMATION process does not support given "
1011 "dimension");
1012 }
1013 }
1014 else
1015#endif
1016#ifdef OGS_BUILD_PROCESS_LIE_HM
1017 if (type == "HYDRO_MECHANICS_WITH_LIE")
1018 {
1019 if (
1020 process_config.getConfigParameterOptional<int>("dimension"))
1021 {
1023 "The 'dimension' tag has been removed in the merge-request "
1024 "!4766."
1025 "The dimension is now taken from the main mesh and the tag "
1026 "must be"
1027 "removed. There is a python script in the merge-request "
1028 "description"
1029 "for automatic conversion.");
1030 }
1032 {
1033 case 2:
1036 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1040 break;
1041 case 3:
1044 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1048 break;
1049 default:
1051 "HYDRO_MECHANICS_WITH_LIE process does not support "
1052 "given dimension");
1053 }
1054 }
1055 else
1056#endif
1057#ifdef OGS_BUILD_PROCESS_HT
1058 if (type == "HT")
1059 {
1061 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1064 }
1065 else
1066#endif
1067#ifdef OGS_BUILD_PROCESS_COMPONENTTRANSPORT
1068 if (type == "ComponentTransport")
1069 {
1070 process =
1072 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1075 std::move(chemical_solver_interface));
1076 }
1077 else
1078#endif
1079#ifdef OGS_BUILD_PROCESS_PHASEFIELD
1080 if (type == "PHASE_FIELD")
1081 {
1083 {
1084 case 2:
1085 process =
1087 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1090 process_config);
1091 break;
1092 case 3:
1093 process =
1095 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1098 process_config);
1099 break;
1100 }
1101 }
1102 else
1103#endif
1104#ifdef OGS_BUILD_PROCESS_HMPHASEFIELD
1105 if (type == "HM_PHASE_FIELD")
1106 {
1108 {
1109 case 2:
1110 process =
1112 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1116 break;
1117 case 3:
1118 process =
1120 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1124 break;
1125 }
1126 }
1127 else
1128#endif
1129#ifdef OGS_BUILD_PROCESS_RICHARDSCOMPONENTTRANSPORT
1130 if (type == "RichardsComponentTransport")
1131 {
1134 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1137 }
1138 else
1139#endif
1140#ifdef OGS_BUILD_PROCESS_SMALLDEFORMATION
1141 if (type == "SMALL_DEFORMATION")
1142 {
1144 {
1145 case 2:
1148 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1152 break;
1153 case 3:
1156 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1160 break;
1161 default:
1163 "SMALL_DEFORMATION process does not support given "
1164 "dimension");
1165 }
1166 }
1167 else
1168#endif
1169#ifdef OGS_BUILD_PROCESS_LIE_M
1170 if (type == "SMALL_DEFORMATION_WITH_LIE")
1171 {
1172 if (
1173 process_config.getConfigParameterOptional<int>("dimension"))
1174 {
1176 "The 'dimension' tag has been removed in the merge-request "
1177 "!4766."
1178 "The dimension is now taken from the main mesh and the tag "
1179 "must be"
1180 "removed. There is a python script in the merge-request "
1181 "description"
1182 "for automatic conversion.");
1183 }
1185 {
1186 case 2:
1189 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1192 process_config);
1193 break;
1194 case 3:
1197 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1200 process_config);
1201 break;
1202 default:
1204 "SMALL_DEFORMATION_WITH_LIE process does not support "
1205 "given dimension");
1206 }
1207 }
1208 else
1209#endif
1210#ifdef OGS_BUILD_PROCESS_THERMOHYDROMECHANICS
1211 if (type == "THERMO_HYDRO_MECHANICS")
1212 {
1213 if (
1214 process_config.getConfigParameterOptional<int>("dimension"))
1215 {
1217 "The 'dimension' tag has been removed in the merge-request "
1218 "!4766."
1219 "The dimension is now taken from the main mesh and the tag "
1220 "must be"
1221 "removed. There is a python script in the merge-request "
1222 "description"
1223 "for automatic conversion.");
1224 }
1226 {
1227 case 2:
1230 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1234 break;
1235 case 3:
1238 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1242 break;
1243 default:
1245 "THERMO_HYDRO_MECHANICS process does not support given "
1246 "dimension");
1247 }
1248 }
1249 else
1250#endif
1251#ifdef OGS_BUILD_PROCESS_THERMOMECHANICS
1252 if (type == "THERMO_MECHANICS")
1253 {
1255 {
1256 case 2:
1259 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1263 break;
1264 case 3:
1267 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1271 break;
1272 }
1273 }
1274 else
1275#endif
1276#ifdef OGS_BUILD_PROCESS_RICHARDSFLOW
1277 if (type == "RICHARDS_FLOW")
1278 {
1280 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1283 }
1284 else
1285#endif
1286#ifdef OGS_BUILD_PROCESS_RICHARDSMECHANICS
1287 if (type == "RICHARDS_MECHANICS")
1288 {
1289 if (
1290 process_config.getConfigParameterOptional<int>("dimension"))
1291 {
1293 "The 'dimension' tag has been removed in the merge-request "
1294 "!4766."
1295 "The dimension is now taken from the main mesh and the tag "
1296 "must be"
1297 "removed. There is a python script in the merge-request "
1298 "description"
1299 "for automatic conversion.");
1300 }
1302 {
1303 case 2:
1306 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1310 break;
1311 case 3:
1314 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1318 break;
1319 }
1320 }
1321 else
1322#endif
1323#ifdef OGS_BUILD_PROCESS_THERMORICHARDSFLOW
1324 if (type == "THERMO_RICHARDS_FLOW")
1325 {
1326 process =
1328 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1331 }
1332 else
1333#endif
1334#ifdef OGS_BUILD_PROCESS_THERMORICHARDSMECHANICS
1335 if (type == "THERMO_RICHARDS_MECHANICS")
1336 {
1338 {
1339 case 2:
1342 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1346 break;
1347 case 3:
1350 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1354 break;
1355 }
1356 }
1357 else
1358#endif
1359
1360#ifdef OGS_BUILD_PROCESS_TWOPHASEFLOWWITHPP
1361 if (type == "TWOPHASE_FLOW_PP")
1362 {
1363 process =
1365 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1368 }
1369 else
1370#endif
1371#ifdef OGS_BUILD_PROCESS_THERMALTWOPHASEFLOWWITHPP
1372 if (type == "THERMAL_TWOPHASE_WITH_PP")
1373 {
1376 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1379 }
1380 else
1381#endif
1382 {
1383 OGS_FATAL(
"Unknown process type: {:s}", type);
1384 }
1385
1387 [](std::unique_ptr<ProcessLib::Process> const& p)
1388 { return p->name; }))
1389 {
1390 OGS_FATAL(
"The process name '{:s}' is not unique.", name);
1391 }
1393 }
1394}
std::vector< ProcessLib::ProcessVariable > _process_variables
std::unique_ptr< Process > createComponentTransportProcess(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 ¶meters, unsigned const integration_order, BaseLib::ConfigTree const &config, std::vector< std::unique_ptr< MeshLib::Mesh > > const &meshes, std::map< int, std::shared_ptr< MaterialPropertyLib::Medium > > const &media, std::unique_ptr< ChemistryLib::ChemicalSolverInterface > &&chemical_solver_interface)
template std::unique_ptr< Process > createHMPhaseFieldProcess< 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 ¶meters, 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 > createHMPhaseFieldProcess< 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 ¶meters, 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 > createHTProcess(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 ¶meters, unsigned const integration_order, BaseLib::ConfigTree const &config, std::vector< std::unique_ptr< MeshLib::Mesh > > const &meshes, std::map< int, std::shared_ptr< MaterialPropertyLib::Medium > > const &media)
std::unique_ptr< Process > createHeatConductionProcess(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 ¶meters, unsigned const integration_order, BaseLib::ConfigTree const &config, std::map< int, std::shared_ptr< MaterialPropertyLib::Medium > > const &media)
std::unique_ptr< Process > createHeatTransportBHEProcess(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 > > ¶meters, unsigned const integration_order, BaseLib::ConfigTree const &config, std::map< std::string, std::unique_ptr< MathLib::PiecewiseLinearInterpolation > > const &curves, std::map< int, std::shared_ptr< MaterialPropertyLib::Medium > > const &media)
std::unique_ptr< Process > createHydroMechanicsProcess(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 ¶meters, 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 > createHydroMechanicsProcess< 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 ¶meters, 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 > createHydroMechanicsProcess< 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 ¶meters, 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 > createLiquidFlowProcess(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 ¶meters, unsigned const integration_order, BaseLib::ConfigTree const &config, std::vector< std::unique_ptr< MeshLib::Mesh > > const &meshes, std::map< int, std::shared_ptr< MaterialPropertyLib::Medium > > const &media)
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 ¶meters, 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 ¶meters, std::optional< ParameterLib::CoordinateSystem > const &local_coordinate_system, unsigned const integration_order, BaseLib::ConfigTree const &config)
std::unique_ptr< Process > createRichardsComponentTransportProcess(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 ¶meters, unsigned const integration_order, BaseLib::ConfigTree const &config, std::map< int, std::shared_ptr< MaterialPropertyLib::Medium > > const &media)
std::unique_ptr< Process > createRichardsFlowProcess(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 ¶meters, unsigned const integration_order, BaseLib::ConfigTree const &config, std::map< int, std::shared_ptr< MaterialPropertyLib::Medium > > const &media)
template std::unique_ptr< Process > createRichardsMechanicsProcess< 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 ¶meters, 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 > createRichardsMechanicsProcess< 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 ¶meters, 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 > createSteadyStateDiffusion(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 ¶meters, unsigned const integration_order, BaseLib::ConfigTree const &config, std::vector< std::unique_ptr< MeshLib::Mesh > > const &meshes, std::map< int, std::shared_ptr< MaterialPropertyLib::Medium > > const &media)
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 ¶meters, 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 ¶meters, 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 > createThermalTwoPhaseFlowWithPPProcess(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 ¶meters, unsigned const integration_order, BaseLib::ConfigTree const &config, std::map< int, std::shared_ptr< MaterialPropertyLib::Medium > > const &media)
template std::unique_ptr< Process > createThermoHydroMechanicsProcess< 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 ¶meters, 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 > createThermoHydroMechanicsProcess< 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 ¶meters, 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 > createThermoMechanicsProcess< 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 ¶meters, 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 > createThermoMechanicsProcess< 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 ¶meters, 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 > createThermoRichardsFlowProcess(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 ¶meters, unsigned const integration_order, BaseLib::ConfigTree const &config, std::map< int, std::shared_ptr< MaterialPropertyLib::Medium > > const &media)
template std::unique_ptr< Process > createThermoRichardsMechanicsProcess< 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 ¶meters, 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 > createThermoRichardsMechanicsProcess< 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 ¶meters, 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 > createTwoPhaseFlowWithPPProcess(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 ¶meters, unsigned const integration_order, BaseLib::ConfigTree const &config, std::map< int, std::shared_ptr< MaterialPropertyLib::Medium > > const &media)
std::unique_ptr< Process > createWellboreSimulatorProcess(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 ¶meters, unsigned const integration_order, BaseLib::ConfigTree const &config, std::map< int, std::shared_ptr< MaterialPropertyLib::Medium > > const &media)
std::unique_ptr< AbstractJacobianAssembler > createJacobianAssembler(std::optional< BaseLib::ConfigTree > const &config)