Parses the processes configuration and creates new processes for each process entry passing the corresponding subtree to the process constructor.
664{
665 (void)project_directory;
666 (void)output_directory;
667
668 DBUG(
"Reading processes:");
670 for (auto process_config : processes_config.getConfigSubtreeList("process"))
671 {
672 auto const type =
674 process_config.peekConfigParameter<std::string>("type");
675
678 process_config.getConfigParameter<std::string>("name");
679
680 [[maybe_unused]] auto const integration_order =
682 process_config.getConfigParameter<int>("integration_order");
683
684 std::unique_ptr<ProcessLib::Process> process;
685
688 process_config.getConfigSubtreeOptional("jacobian_assembler"));
689
690#ifdef OGS_BUILD_PROCESS_STEADYSTATEDIFFUSION
691 if (type == "STEADY_STATE_DIFFUSION")
692 {
693
694
695
696
697
698 process =
700 name, *
_mesh_vec[0], std::move(jacobian_assembler),
703 }
704 else
705#endif
706#ifdef OGS_BUILD_PROCESS_LIQUIDFLOW
707 if (type == "LIQUID_FLOW")
708 {
710 name, *
_mesh_vec[0], std::move(jacobian_assembler),
713 }
714 else
715#endif
716#ifdef OGS_BUILD_PROCESS_STOKESFLOW
717 if (type == "StokesFlow")
718 {
720 {
721 case 2:
722 process =
724 name, *
_mesh_vec[0], std::move(jacobian_assembler),
727 break;
728 default:
730 "StokesFlow process does not support given "
731 "dimension {:d}",
733 }
734 }
735 else
736#endif
737#ifdef OGS_BUILD_PROCESS_TES
738 if (type == "TES")
739 {
741 name, *
_mesh_vec[0], std::move(jacobian_assembler),
743 process_config);
744 }
745 else
746#endif
747#ifdef OGS_BUILD_PROCESS_TH2M
748 if (type == "TH2M")
749 {
751 {
752 case 2:
754 name, *
_mesh_vec[0], std::move(jacobian_assembler),
758 break;
759 case 3:
761 name, *
_mesh_vec[0], std::move(jacobian_assembler),
765 break;
766 default:
767 OGS_FATAL(
"TH2M process does not support given dimension");
768 }
769 }
770 else
771#endif
772#ifdef OGS_BUILD_PROCESS_HEATCONDUCTION
773 if (type == "HEAT_CONDUCTION")
774 {
776 name, *
_mesh_vec[0], std::move(jacobian_assembler),
779 }
780 else
781#endif
782#ifdef OGS_BUILD_PROCESS_HEATTRANSPORTBHE
783 if (type == "HEAT_TRANSPORT_BHE")
784 {
786 {
788 "HEAT_TRANSPORT_BHE can only work with a 3-dimensional "
789 "mesh! ");
790 }
791
792 process =
794 name, *
_mesh_vec[0], std::move(jacobian_assembler),
797 }
798 else
799#endif
800#ifdef OGS_BUILD_PROCESS_HYDROMECHANICS
801 if (type == "HYDRO_MECHANICS")
802 {
803 if (
804 process_config.getConfigParameterOptional<int>("dimension"))
805 {
807 "The 'dimension' tag has been removed in the merge-request "
808 "!4766."
809 "The dimension is now taken from the main mesh and the tag "
810 "must be"
811 "removed. There is a python script in the merge-request "
812 "description"
813 "for automatic conversion.");
814 }
816 {
817 case 2:
818 process =
821 std::move(jacobian_assembler),
825 break;
826 case 3:
827 process =
830 std::move(jacobian_assembler),
834 break;
835 default:
837 "HYDRO_MECHANICS process does not support given "
838 "dimension");
839 }
840 }
841 else
842#endif
843#ifdef OGS_BUILD_PROCESS_LARGEDEFORMATION
844 if (type == "LARGE_DEFORMATION")
845 {
847 {
848 case 2:
851 name, *
_mesh_vec[0], std::move(jacobian_assembler),
855 break;
856 case 3:
859 name, *
_mesh_vec[0], std::move(jacobian_assembler),
863 break;
864 default:
866 "LARGE_DEFORMATION process does not support given "
867 "dimension");
868 }
869 }
870 else
871#endif
872#ifdef OGS_BUILD_PROCESS_LIE
873 if (type == "HYDRO_MECHANICS_WITH_LIE")
874 {
875 if (
876 process_config.getConfigParameterOptional<int>("dimension"))
877 {
879 "The 'dimension' tag has been removed in the merge-request "
880 "!4766."
881 "The dimension is now taken from the main mesh and the tag "
882 "must be"
883 "removed. There is a python script in the merge-request "
884 "description"
885 "for automatic conversion.");
886 }
888 {
889 case 2:
892 name, *
_mesh_vec[0], std::move(jacobian_assembler),
895 process_config);
896 break;
897 case 3:
900 name, *
_mesh_vec[0], std::move(jacobian_assembler),
903 process_config);
904 break;
905 default:
907 "HYDRO_MECHANICS_WITH_LIE process does not support "
908 "given dimension");
909 }
910 }
911 else
912#endif
913#ifdef OGS_BUILD_PROCESS_HT
914 if (type == "HT")
915 {
917 name, *
_mesh_vec[0], std::move(jacobian_assembler),
920 }
921 else
922#endif
923#ifdef OGS_BUILD_PROCESS_COMPONENTTRANSPORT
924 if (type == "ComponentTransport")
925 {
926 process =
928 name, *
_mesh_vec[0], std::move(jacobian_assembler),
931 std::move(chemical_solver_interface));
932 }
933 else
934#endif
935#ifdef OGS_BUILD_PROCESS_PHASEFIELD
936 if (type == "PHASE_FIELD")
937 {
939 {
940 case 2:
941 process =
943 name, *
_mesh_vec[0], std::move(jacobian_assembler),
946 process_config);
947 break;
948 case 3:
949 process =
951 name, *
_mesh_vec[0], std::move(jacobian_assembler),
954 process_config);
955 break;
956 }
957 }
958 else
959#endif
960#ifdef OGS_BUILD_PROCESS_RICHARDSCOMPONENTTRANSPORT
961 if (type == "RichardsComponentTransport")
962 {
965 name, *
_mesh_vec[0], std::move(jacobian_assembler),
968 }
969 else
970#endif
971#ifdef OGS_BUILD_PROCESS_SMALLDEFORMATION
972 if (type == "SMALL_DEFORMATION")
973 {
975 {
976 case 2:
979 name, *
_mesh_vec[0], std::move(jacobian_assembler),
983 break;
984 case 3:
987 name, *
_mesh_vec[0], std::move(jacobian_assembler),
991 break;
992 default:
994 "SMALL_DEFORMATION process does not support given "
995 "dimension");
996 }
997 }
998 else
999#endif
1000#ifdef OGS_BUILD_PROCESS_SMALLDEFORMATIONNONLOCAL
1001 if (type == "SMALL_DEFORMATION_NONLOCAL")
1002 {
1004 {
1005 case 2:
1008 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1011 process_config);
1012 break;
1013 case 3:
1016 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1019 process_config);
1020 break;
1021 default:
1023 "SMALL_DEFORMATION_NONLOCAL process does not support "
1024 "given dimension {:d}",
1026 }
1027 }
1028 else
1029#endif
1030#ifdef OGS_BUILD_PROCESS_LIE
1031 if (type == "SMALL_DEFORMATION_WITH_LIE")
1032 {
1033 if (
1034 process_config.getConfigParameterOptional<int>("dimension"))
1035 {
1037 "The 'dimension' tag has been removed in the merge-request "
1038 "!4766."
1039 "The dimension is now taken from the main mesh and the tag "
1040 "must be"
1041 "removed. There is a python script in the merge-request "
1042 "description"
1043 "for automatic conversion.");
1044 }
1046 {
1047 case 2:
1050 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1053 process_config);
1054 break;
1055 case 3:
1058 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1061 process_config);
1062 break;
1063 default:
1065 "SMALL_DEFORMATION_WITH_LIE process does not support "
1066 "given dimension");
1067 }
1068 }
1069 else
1070#endif
1071#ifdef OGS_BUILD_PROCESS_THERMOHYDROMECHANICS
1072 if (type == "THERMO_HYDRO_MECHANICS")
1073 {
1074 if (
1075 process_config.getConfigParameterOptional<int>("dimension"))
1076 {
1078 "The 'dimension' tag has been removed in the merge-request "
1079 "!4766."
1080 "The dimension is now taken from the main mesh and the tag "
1081 "must be"
1082 "removed. There is a python script in the merge-request "
1083 "description"
1084 "for automatic conversion.");
1085 }
1087 {
1088 case 2:
1091 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1095 break;
1096 case 3:
1099 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1103 break;
1104 default:
1106 "THERMO_HYDRO_MECHANICS process does not support given "
1107 "dimension");
1108 }
1109 }
1110 else
1111#endif
1112#ifdef OGS_BUILD_PROCESS_THERMOMECHANICALPHASEFIELD
1113 if (type == "THERMO_MECHANICAL_PHASE_FIELD")
1114 {
1116 {
1117 case 2:
1120 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1123 process_config);
1124 break;
1125 case 3:
1128 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1131 process_config);
1132 break;
1133 }
1134 }
1135 else
1136#endif
1137#ifdef OGS_BUILD_PROCESS_THERMOMECHANICS
1138 if (type == "THERMO_MECHANICS")
1139 {
1141 {
1142 case 2:
1145 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1149 break;
1150 case 3:
1153 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1157 break;
1158 }
1159 }
1160 else
1161#endif
1162#ifdef OGS_BUILD_PROCESS_RICHARDSFLOW
1163 if (type == "RICHARDS_FLOW")
1164 {
1166 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1169 }
1170 else
1171#endif
1172#ifdef OGS_BUILD_PROCESS_RICHARDSMECHANICS
1173 if (type == "RICHARDS_MECHANICS")
1174 {
1175 if (
1176 process_config.getConfigParameterOptional<int>("dimension"))
1177 {
1179 "The 'dimension' tag has been removed in the merge-request "
1180 "!4766."
1181 "The dimension is now taken from the main mesh and the tag "
1182 "must be"
1183 "removed. There is a python script in the merge-request "
1184 "description"
1185 "for automatic conversion.");
1186 }
1188 {
1189 case 2:
1192 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1196 break;
1197 case 3:
1200 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1204 break;
1205 }
1206 }
1207 else
1208#endif
1209#ifdef OGS_BUILD_PROCESS_THERMORICHARDSFLOW
1210 if (type == "THERMO_RICHARDS_FLOW")
1211 {
1212 process =
1214 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1217 }
1218 else
1219#endif
1220#ifdef OGS_BUILD_PROCESS_THERMORICHARDSMECHANICS
1221 if (type == "THERMO_RICHARDS_MECHANICS")
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
1246#ifdef OGS_BUILD_PROCESS_TWOPHASEFLOWWITHPP
1247 if (type == "TWOPHASE_FLOW_PP")
1248 {
1249 process =
1251 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1254 }
1255 else
1256#endif
1257#ifdef OGS_BUILD_PROCESS_TWOPHASEFLOWWITHPRHO
1258 if (type == "TWOPHASE_FLOW_PRHO")
1259 {
1262 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1265 }
1266 else
1267#endif
1268#ifdef OGS_BUILD_PROCESS_THERMALTWOPHASEFLOWWITHPP
1269 if (type == "THERMAL_TWOPHASE_WITH_PP")
1270 {
1273 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1276 }
1277 else
1278#endif
1279 {
1280 OGS_FATAL(
"Unknown process type: {:s}", type);
1281 }
1282
1284 [](std::unique_ptr<ProcessLib::Process> const& p)
1285 {
return p->name; }))
1286 {
1287 OGS_FATAL(
"The process name '{:s}' is not unique.", name);
1288 }
1290 }
1291}
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)