Parses the processes configuration and creates new processes for each process entry passing the corresponding subtree to the process constructor.
701{
702 (void)project_directory;
703 (void)output_directory;
704
705 DBUG(
"Reading processes:");
707 for (auto process_config : processes_config.getConfigSubtreeList("process"))
708 {
709 auto const type =
711 process_config.peekConfigParameter<std::string>("type");
712
715 process_config.getConfigParameter<std::string>("name");
716
717 [[maybe_unused]] auto const integration_order =
719 process_config.getConfigParameter<int>("integration_order");
720
721 std::unique_ptr<ProcessLib::Process> process;
722
725 process_config.getConfigSubtreeOptional("jacobian_assembler"));
726
727#ifdef OGS_BUILD_PROCESS_STEADYSTATEDIFFUSION
728 if (type == "STEADY_STATE_DIFFUSION")
729 {
730
731
732
733
734
735 process =
737 name, *
_mesh_vec[0], std::move(jacobian_assembler),
740 }
741 else
742#endif
743#ifdef OGS_BUILD_PROCESS_LIQUIDFLOW
744 if (type == "LIQUID_FLOW")
745 {
747 name, *
_mesh_vec[0], std::move(jacobian_assembler),
750 }
751 else
752#endif
753#ifdef OGS_BUILD_PROCESS_STOKESFLOW
754 if (type == "StokesFlow")
755 {
757 {
758 case 2:
759 process =
761 name, *
_mesh_vec[0], std::move(jacobian_assembler),
764 break;
765 default:
767 "StokesFlow process does not support given "
768 "dimension {:d}",
770 }
771 }
772 else
773#endif
774#ifdef OGS_BUILD_PROCESS_TES
775 if (type == "TES")
776 {
778 name, *
_mesh_vec[0], std::move(jacobian_assembler),
780 process_config);
781 }
782 else
783#endif
784#ifdef OGS_BUILD_PROCESS_TH2M
785 if (type == "TH2M")
786 {
788 {
789 case 2:
791 name, *
_mesh_vec[0], std::move(jacobian_assembler),
795 break;
796 case 3:
798 name, *
_mesh_vec[0], std::move(jacobian_assembler),
802 break;
803 default:
804 OGS_FATAL(
"TH2M process does not support given dimension");
805 }
806 }
807 else
808#endif
809#ifdef OGS_BUILD_PROCESS_HEATCONDUCTION
810 if (type == "HEAT_CONDUCTION")
811 {
813 name, *
_mesh_vec[0], std::move(jacobian_assembler),
816 }
817 else
818#endif
819#ifdef OGS_BUILD_PROCESS_HEATTRANSPORTBHE
820 if (type == "HEAT_TRANSPORT_BHE")
821 {
823 {
825 "HEAT_TRANSPORT_BHE can only work with a 3-dimensional "
826 "mesh! ");
827 }
828
829 process =
831 name, *
_mesh_vec[0], std::move(jacobian_assembler),
834 }
835 else
836#endif
837#ifdef OGS_BUILD_PROCESS_HYDROMECHANICS
838 if (type == "HYDRO_MECHANICS")
839 {
840 if (
841 process_config.getConfigParameterOptional<int>("dimension"))
842 {
844 "The 'dimension' tag has been removed in the merge-request "
845 "!4766."
846 "The dimension is now taken from the main mesh and the tag "
847 "must be"
848 "removed. There is a python script in the merge-request "
849 "description"
850 "for automatic conversion.");
851 }
853 {
854 case 2:
855 process =
858 std::move(jacobian_assembler),
862 break;
863 case 3:
864 process =
867 std::move(jacobian_assembler),
871 break;
872 default:
874 "HYDRO_MECHANICS process does not support given "
875 "dimension");
876 }
877 }
878 else
879#endif
880#ifdef OGS_BUILD_PROCESS_LARGEDEFORMATION
881 if (type == "LARGE_DEFORMATION")
882 {
884 {
885 case 2:
888 name, *
_mesh_vec[0], std::move(jacobian_assembler),
892 break;
893 case 3:
896 name, *
_mesh_vec[0], std::move(jacobian_assembler),
900 break;
901 default:
903 "LARGE_DEFORMATION process does not support given "
904 "dimension");
905 }
906 }
907 else
908#endif
909#ifdef OGS_BUILD_PROCESS_LIE
910 if (type == "HYDRO_MECHANICS_WITH_LIE")
911 {
912 if (
913 process_config.getConfigParameterOptional<int>("dimension"))
914 {
916 "The 'dimension' tag has been removed in the merge-request "
917 "!4766."
918 "The dimension is now taken from the main mesh and the tag "
919 "must be"
920 "removed. There is a python script in the merge-request "
921 "description"
922 "for automatic conversion.");
923 }
925 {
926 case 2:
929 name, *
_mesh_vec[0], std::move(jacobian_assembler),
932 process_config);
933 break;
934 case 3:
937 name, *
_mesh_vec[0], std::move(jacobian_assembler),
940 process_config);
941 break;
942 default:
944 "HYDRO_MECHANICS_WITH_LIE process does not support "
945 "given dimension");
946 }
947 }
948 else
949#endif
950#ifdef OGS_BUILD_PROCESS_HT
951 if (type == "HT")
952 {
954 name, *
_mesh_vec[0], std::move(jacobian_assembler),
957 }
958 else
959#endif
960#ifdef OGS_BUILD_PROCESS_COMPONENTTRANSPORT
961 if (type == "ComponentTransport")
962 {
963 process =
965 name, *
_mesh_vec[0], std::move(jacobian_assembler),
968 std::move(chemical_solver_interface));
969 }
970 else
971#endif
972#ifdef OGS_BUILD_PROCESS_PHASEFIELD
973 if (type == "PHASE_FIELD")
974 {
976 {
977 case 2:
978 process =
980 name, *
_mesh_vec[0], std::move(jacobian_assembler),
983 process_config);
984 break;
985 case 3:
986 process =
988 name, *
_mesh_vec[0], std::move(jacobian_assembler),
991 process_config);
992 break;
993 }
994 }
995 else
996#endif
997#ifdef OGS_BUILD_PROCESS_RICHARDSCOMPONENTTRANSPORT
998 if (type == "RichardsComponentTransport")
999 {
1002 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1005 }
1006 else
1007#endif
1008#ifdef OGS_BUILD_PROCESS_SMALLDEFORMATION
1009 if (type == "SMALL_DEFORMATION")
1010 {
1012 {
1013 case 2:
1016 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1020 break;
1021 case 3:
1024 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1028 break;
1029 default:
1031 "SMALL_DEFORMATION process does not support given "
1032 "dimension");
1033 }
1034 }
1035 else
1036#endif
1037#ifdef OGS_BUILD_PROCESS_SMALLDEFORMATIONNONLOCAL
1038 if (type == "SMALL_DEFORMATION_NONLOCAL")
1039 {
1041 {
1042 case 2:
1045 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1048 process_config);
1049 break;
1050 case 3:
1053 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1056 process_config);
1057 break;
1058 default:
1060 "SMALL_DEFORMATION_NONLOCAL process does not support "
1061 "given dimension {:d}",
1063 }
1064 }
1065 else
1066#endif
1067#ifdef OGS_BUILD_PROCESS_LIE
1068 if (type == "SMALL_DEFORMATION_WITH_LIE")
1069 {
1070 if (
1071 process_config.getConfigParameterOptional<int>("dimension"))
1072 {
1074 "The 'dimension' tag has been removed in the merge-request "
1075 "!4766."
1076 "The dimension is now taken from the main mesh and the tag "
1077 "must be"
1078 "removed. There is a python script in the merge-request "
1079 "description"
1080 "for automatic conversion.");
1081 }
1083 {
1084 case 2:
1087 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1090 process_config);
1091 break;
1092 case 3:
1095 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1098 process_config);
1099 break;
1100 default:
1102 "SMALL_DEFORMATION_WITH_LIE process does not support "
1103 "given dimension");
1104 }
1105 }
1106 else
1107#endif
1108#ifdef OGS_BUILD_PROCESS_THERMOHYDROMECHANICS
1109 if (type == "THERMO_HYDRO_MECHANICS")
1110 {
1111 if (
1112 process_config.getConfigParameterOptional<int>("dimension"))
1113 {
1115 "The 'dimension' tag has been removed in the merge-request "
1116 "!4766."
1117 "The dimension is now taken from the main mesh and the tag "
1118 "must be"
1119 "removed. There is a python script in the merge-request "
1120 "description"
1121 "for automatic conversion.");
1122 }
1124 {
1125 case 2:
1128 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1132 break;
1133 case 3:
1136 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1140 break;
1141 default:
1143 "THERMO_HYDRO_MECHANICS process does not support given "
1144 "dimension");
1145 }
1146 }
1147 else
1148#endif
1149#ifdef OGS_BUILD_PROCESS_THERMOMECHANICALPHASEFIELD
1150 if (type == "THERMO_MECHANICAL_PHASE_FIELD")
1151 {
1153 {
1154 case 2:
1157 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1160 process_config);
1161 break;
1162 case 3:
1165 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1168 process_config);
1169 break;
1170 }
1171 }
1172 else
1173#endif
1174#ifdef OGS_BUILD_PROCESS_THERMOMECHANICS
1175 if (type == "THERMO_MECHANICS")
1176 {
1178 {
1179 case 2:
1182 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1186 break;
1187 case 3:
1190 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1194 break;
1195 }
1196 }
1197 else
1198#endif
1199#ifdef OGS_BUILD_PROCESS_RICHARDSFLOW
1200 if (type == "RICHARDS_FLOW")
1201 {
1203 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1206 }
1207 else
1208#endif
1209#ifdef OGS_BUILD_PROCESS_RICHARDSMECHANICS
1210 if (type == "RICHARDS_MECHANICS")
1211 {
1212 if (
1213 process_config.getConfigParameterOptional<int>("dimension"))
1214 {
1216 "The 'dimension' tag has been removed in the merge-request "
1217 "!4766."
1218 "The dimension is now taken from the main mesh and the tag "
1219 "must be"
1220 "removed. There is a python script in the merge-request "
1221 "description"
1222 "for automatic conversion.");
1223 }
1225 {
1226 case 2:
1229 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1233 break;
1234 case 3:
1237 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1241 break;
1242 }
1243 }
1244 else
1245#endif
1246#ifdef OGS_BUILD_PROCESS_THERMORICHARDSFLOW
1247 if (type == "THERMO_RICHARDS_FLOW")
1248 {
1249 process =
1251 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1254 }
1255 else
1256#endif
1257#ifdef OGS_BUILD_PROCESS_THERMORICHARDSMECHANICS
1258 if (type == "THERMO_RICHARDS_MECHANICS")
1259 {
1261 {
1262 case 2:
1265 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1269 break;
1270 case 3:
1273 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1277 break;
1278 }
1279 }
1280 else
1281#endif
1282
1283#ifdef OGS_BUILD_PROCESS_TWOPHASEFLOWWITHPP
1284 if (type == "TWOPHASE_FLOW_PP")
1285 {
1286 process =
1288 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1291 }
1292 else
1293#endif
1294#ifdef OGS_BUILD_PROCESS_TWOPHASEFLOWWITHPRHO
1295 if (type == "TWOPHASE_FLOW_PRHO")
1296 {
1299 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1302 }
1303 else
1304#endif
1305#ifdef OGS_BUILD_PROCESS_THERMALTWOPHASEFLOWWITHPP
1306 if (type == "THERMAL_TWOPHASE_WITH_PP")
1307 {
1310 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1313 }
1314 else
1315#endif
1316 {
1317 OGS_FATAL(
"Unknown process type: {:s}", type);
1318 }
1319
1321 [](std::unique_ptr<ProcessLib::Process> const& p)
1322 {
return p->name; }))
1323 {
1324 OGS_FATAL(
"The process name '{:s}' is not unique.", name);
1325 }
1327 }
1328}
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< AbstractJacobianAssembler > createJacobianAssembler(std::optional< BaseLib::ConfigTree > const &config)