Parses the processes configuration and creates new processes for each process entry passing the corresponding subtree to the process constructor.
670{
671 (void)project_directory;
672 (void)output_directory;
673
674 DBUG(
"Reading processes:");
676 for (auto process_config : processes_config.getConfigSubtreeList("process"))
677 {
678 auto const type =
680 process_config.peekConfigParameter<std::string>("type");
681
684 process_config.getConfigParameter<std::string>("name");
685
686 [[maybe_unused]] auto const integration_order =
688 process_config.getConfigParameter<int>("integration_order");
689
690 std::unique_ptr<ProcessLib::Process> process;
691
694 process_config.getConfigSubtreeOptional("jacobian_assembler"));
695
696#ifdef OGS_BUILD_PROCESS_STEADYSTATEDIFFUSION
697 if (type == "STEADY_STATE_DIFFUSION")
698 {
699
700
701
702
703
704 process =
706 name, *
_mesh_vec[0], std::move(jacobian_assembler),
709 }
710 else
711#endif
712#ifdef OGS_BUILD_PROCESS_LIQUIDFLOW
713 if (type == "LIQUID_FLOW")
714 {
716 name, *
_mesh_vec[0], std::move(jacobian_assembler),
719 }
720 else
721#endif
722#ifdef OGS_BUILD_PROCESS_STOKESFLOW
723 if (type == "StokesFlow")
724 {
726 "The StokesFlow process is deprecated and will be removed in "
727 "OGS-6.5.5.");
729 {
730 case 2:
731 process =
733 name, *
_mesh_vec[0], std::move(jacobian_assembler),
736 break;
737 default:
739 "StokesFlow process does not support given "
740 "dimension {:d}",
742 }
743 }
744 else
745#endif
746#ifdef OGS_BUILD_PROCESS_TES
747 if (type == "TES")
748 {
750 "The TES process is deprecated and will be removed in "
751 "OGS-6.5.5.");
753 name, *
_mesh_vec[0], std::move(jacobian_assembler),
755 process_config);
756 }
757 else
758#endif
759#ifdef OGS_BUILD_PROCESS_TH2M
760 if (type == "TH2M")
761 {
763 {
764 case 2:
766 name, *
_mesh_vec[0], std::move(jacobian_assembler),
770 break;
771 case 3:
773 name, *
_mesh_vec[0], std::move(jacobian_assembler),
777 break;
778 default:
779 OGS_FATAL(
"TH2M process does not support given dimension");
780 }
781 }
782 else
783#endif
784#ifdef OGS_BUILD_PROCESS_HEATCONDUCTION
785 if (type == "HEAT_CONDUCTION")
786 {
788 name, *
_mesh_vec[0], std::move(jacobian_assembler),
791 }
792 else
793#endif
794#ifdef OGS_BUILD_PROCESS_HEATTRANSPORTBHE
795 if (type == "HEAT_TRANSPORT_BHE")
796 {
798 {
800 "HEAT_TRANSPORT_BHE can only work with a 3-dimensional "
801 "mesh! ");
802 }
803
804 process =
806 name, *
_mesh_vec[0], std::move(jacobian_assembler),
809 }
810 else
811#endif
812#ifdef OGS_BUILD_PROCESS_WELLBORESIMULATOR
813 if (type == "WELLBORE_SIMULATOR")
814 {
816 {
818 "WELLBORE_SIMULATOR can only work with a 1-dimensional "
819 "mesh!");
820 }
821
822 process =
824 name, *
_mesh_vec[0], std::move(jacobian_assembler),
827 }
828 else
829#endif
830#ifdef OGS_BUILD_PROCESS_HYDROMECHANICS
831 if (type == "HYDRO_MECHANICS")
832 {
833 if (
834 process_config.getConfigParameterOptional<int>("dimension"))
835 {
837 "The 'dimension' tag has been removed in the merge-request "
838 "!4766."
839 "The dimension is now taken from the main mesh and the tag "
840 "must be"
841 "removed. There is a python script in the merge-request "
842 "description"
843 "for automatic conversion.");
844 }
846 {
847 case 2:
848 process =
851 std::move(jacobian_assembler),
855 break;
856 case 3:
857 process =
860 std::move(jacobian_assembler),
864 break;
865 default:
867 "HYDRO_MECHANICS process does not support given "
868 "dimension");
869 }
870 }
871 else
872#endif
873#ifdef OGS_BUILD_PROCESS_LARGEDEFORMATION
874 if (type == "LARGE_DEFORMATION")
875 {
877 {
878 case 2:
881 name, *
_mesh_vec[0], std::move(jacobian_assembler),
885 break;
886 case 3:
889 name, *
_mesh_vec[0], std::move(jacobian_assembler),
893 break;
894 default:
896 "LARGE_DEFORMATION process does not support given "
897 "dimension");
898 }
899 }
900 else
901#endif
902#ifdef OGS_BUILD_PROCESS_LIE_HM
903 if (type == "HYDRO_MECHANICS_WITH_LIE")
904 {
905 if (
906 process_config.getConfigParameterOptional<int>("dimension"))
907 {
909 "The 'dimension' tag has been removed in the merge-request "
910 "!4766."
911 "The dimension is now taken from the main mesh and the tag "
912 "must be"
913 "removed. There is a python script in the merge-request "
914 "description"
915 "for automatic conversion.");
916 }
918 {
919 case 2:
922 name, *
_mesh_vec[0], std::move(jacobian_assembler),
925 process_config);
926 break;
927 case 3:
930 name, *
_mesh_vec[0], std::move(jacobian_assembler),
933 process_config);
934 break;
935 default:
937 "HYDRO_MECHANICS_WITH_LIE process does not support "
938 "given dimension");
939 }
940 }
941 else
942#endif
943#ifdef OGS_BUILD_PROCESS_HT
944 if (type == "HT")
945 {
947 name, *
_mesh_vec[0], std::move(jacobian_assembler),
950 }
951 else
952#endif
953#ifdef OGS_BUILD_PROCESS_COMPONENTTRANSPORT
954 if (type == "ComponentTransport")
955 {
956 process =
958 name, *
_mesh_vec[0], std::move(jacobian_assembler),
961 std::move(chemical_solver_interface));
962 }
963 else
964#endif
965#ifdef OGS_BUILD_PROCESS_PHASEFIELD
966 if (type == "PHASE_FIELD")
967 {
969 {
970 case 2:
971 process =
973 name, *
_mesh_vec[0], std::move(jacobian_assembler),
976 process_config);
977 break;
978 case 3:
979 process =
981 name, *
_mesh_vec[0], std::move(jacobian_assembler),
984 process_config);
985 break;
986 }
987 }
988 else
989#endif
990#ifdef OGS_BUILD_PROCESS_RICHARDSCOMPONENTTRANSPORT
991 if (type == "RichardsComponentTransport")
992 {
995 name, *
_mesh_vec[0], std::move(jacobian_assembler),
998 }
999 else
1000#endif
1001#ifdef OGS_BUILD_PROCESS_SMALLDEFORMATION
1002 if (type == "SMALL_DEFORMATION")
1003 {
1005 {
1006 case 2:
1009 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1013 break;
1014 case 3:
1017 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1021 break;
1022 default:
1024 "SMALL_DEFORMATION process does not support given "
1025 "dimension");
1026 }
1027 }
1028 else
1029#endif
1030#ifdef OGS_BUILD_PROCESS_SMALLDEFORMATIONNONLOCAL
1031 if (type == "SMALL_DEFORMATION_NONLOCAL")
1032 {
1034 "The SMALL_DEFORMATION_NONLOCAL process is deprecated and will "
1035 "be removed in OGS-6.5.5.");
1037 {
1038 case 2:
1041 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1044 process_config);
1045 break;
1046 case 3:
1049 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1052 process_config);
1053 break;
1054 default:
1056 "SMALL_DEFORMATION_NONLOCAL process does not support "
1057 "given dimension {:d}",
1059 }
1060 }
1061 else
1062#endif
1063#ifdef OGS_BUILD_PROCESS_LIE_M
1064 if (type == "SMALL_DEFORMATION_WITH_LIE")
1065 {
1066 if (
1067 process_config.getConfigParameterOptional<int>("dimension"))
1068 {
1070 "The 'dimension' tag has been removed in the merge-request "
1071 "!4766."
1072 "The dimension is now taken from the main mesh and the tag "
1073 "must be"
1074 "removed. There is a python script in the merge-request "
1075 "description"
1076 "for automatic conversion.");
1077 }
1079 {
1080 case 2:
1083 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1086 process_config);
1087 break;
1088 case 3:
1091 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1094 process_config);
1095 break;
1096 default:
1098 "SMALL_DEFORMATION_WITH_LIE process does not support "
1099 "given dimension");
1100 }
1101 }
1102 else
1103#endif
1104#ifdef OGS_BUILD_PROCESS_THERMOHYDROMECHANICS
1105 if (type == "THERMO_HYDRO_MECHANICS")
1106 {
1107 if (
1108 process_config.getConfigParameterOptional<int>("dimension"))
1109 {
1111 "The 'dimension' tag has been removed in the merge-request "
1112 "!4766."
1113 "The dimension is now taken from the main mesh and the tag "
1114 "must be"
1115 "removed. There is a python script in the merge-request "
1116 "description"
1117 "for automatic conversion.");
1118 }
1120 {
1121 case 2:
1124 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1128 break;
1129 case 3:
1132 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1136 break;
1137 default:
1139 "THERMO_HYDRO_MECHANICS process does not support given "
1140 "dimension");
1141 }
1142 }
1143 else
1144#endif
1145#ifdef OGS_BUILD_PROCESS_THERMOMECHANICALPHASEFIELD
1146 if (type == "THERMO_MECHANICAL_PHASE_FIELD")
1147 {
1149 "The THERMO_MECHANICAL_PHASE_FIELD process is deprecated and "
1150 "will be removed in OGS-6.5.5.");
1152 {
1153 case 2:
1156 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1159 process_config);
1160 break;
1161 case 3:
1164 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1167 process_config);
1168 break;
1169 }
1170 }
1171 else
1172#endif
1173#ifdef OGS_BUILD_PROCESS_THERMOMECHANICS
1174 if (type == "THERMO_MECHANICS")
1175 {
1177 {
1178 case 2:
1181 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1185 break;
1186 case 3:
1189 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1193 break;
1194 }
1195 }
1196 else
1197#endif
1198#ifdef OGS_BUILD_PROCESS_RICHARDSFLOW
1199 if (type == "RICHARDS_FLOW")
1200 {
1202 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1205 }
1206 else
1207#endif
1208#ifdef OGS_BUILD_PROCESS_RICHARDSMECHANICS
1209 if (type == "RICHARDS_MECHANICS")
1210 {
1211 if (
1212 process_config.getConfigParameterOptional<int>("dimension"))
1213 {
1215 "The 'dimension' tag has been removed in the merge-request "
1216 "!4766."
1217 "The dimension is now taken from the main mesh and the tag "
1218 "must be"
1219 "removed. There is a python script in the merge-request "
1220 "description"
1221 "for automatic conversion.");
1222 }
1224 {
1225 case 2:
1228 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1232 break;
1233 case 3:
1236 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1240 break;
1241 }
1242 }
1243 else
1244#endif
1245#ifdef OGS_BUILD_PROCESS_THERMORICHARDSFLOW
1246 if (type == "THERMO_RICHARDS_FLOW")
1247 {
1248 process =
1250 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1253 }
1254 else
1255#endif
1256#ifdef OGS_BUILD_PROCESS_THERMORICHARDSMECHANICS
1257 if (type == "THERMO_RICHARDS_MECHANICS")
1258 {
1260 {
1261 case 2:
1264 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1268 break;
1269 case 3:
1272 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1276 break;
1277 }
1278 }
1279 else
1280#endif
1281
1282#ifdef OGS_BUILD_PROCESS_TWOPHASEFLOWWITHPP
1283 if (type == "TWOPHASE_FLOW_PP")
1284 {
1285 process =
1287 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1290 }
1291 else
1292#endif
1293#ifdef OGS_BUILD_PROCESS_TWOPHASEFLOWWITHPRHO
1294 if (type == "TWOPHASE_FLOW_PRHO")
1295 {
1297 "The TWOPHASE_FLOW_PRHO process is deprecated and will be "
1298 "removed in OGS-6.5.5.");
1301 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1304 }
1305 else
1306#endif
1307#ifdef OGS_BUILD_PROCESS_THERMALTWOPHASEFLOWWITHPP
1308 if (type == "THERMAL_TWOPHASE_WITH_PP")
1309 {
1312 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1315 }
1316 else
1317#endif
1318 {
1319 OGS_FATAL(
"Unknown process type: {:s}", type);
1320 }
1321
1323 [](std::unique_ptr<ProcessLib::Process> const& p)
1324 {
return p->name; }))
1325 {
1326 OGS_FATAL(
"The process name '{:s}' is not unique.", name);
1327 }
1329 }
1330}
void WARN(fmt::format_string< Args... > fmt, Args &&... args)
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)
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 > > const ¶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)
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::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 > createStokesFlowProcess< 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, unsigned const integration_order, BaseLib::ConfigTree const &config, std::map< int, std::shared_ptr< MaterialPropertyLib::Medium > > const &media)
std::unique_ptr< Process > createTESProcess(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)
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 > 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 ¶meters, 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 ¶meters, std::optional< ParameterLib::CoordinateSystem > const &local_coordinate_system, unsigned const integration_order, BaseLib::ConfigTree const &config)
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 > createTwoPhaseFlowWithPrhoProcess(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)