Parses the processes configuration and creates new processes for each process entry passing the corresponding subtree to the process constructor.
659{
660 (void)project_directory;
661 (void)output_directory;
662
663 DBUG(
"Reading processes:");
665 for (auto process_config : processes_config.getConfigSubtreeList("process"))
666 {
667 auto const type =
669 process_config.peekConfigParameter<std::string>("type");
670
673 process_config.getConfigParameter<std::string>("name");
674
675 [[maybe_unused]] auto const integration_order =
677 process_config.getConfigParameter<int>("integration_order");
678
679 std::unique_ptr<ProcessLib::Process> process;
680
683 process_config.getConfigSubtreeOptional("jacobian_assembler"));
684
685#ifdef OGS_BUILD_PROCESS_STEADYSTATEDIFFUSION
686 if (type == "STEADY_STATE_DIFFUSION")
687 {
688
689
690
691
692
693 process =
695 name, *
_mesh_vec[0], std::move(jacobian_assembler),
698 }
699 else
700#endif
701#ifdef OGS_BUILD_PROCESS_LIQUIDFLOW
702 if (type == "LIQUID_FLOW")
703 {
705 name, *
_mesh_vec[0], std::move(jacobian_assembler),
708 }
709 else
710#endif
711#ifdef OGS_BUILD_PROCESS_TH2M
712 if (type == "TH2M")
713 {
715 {
716 case 2:
718 name, *
_mesh_vec[0], std::move(jacobian_assembler),
722 break;
723 case 3:
725 name, *
_mesh_vec[0], std::move(jacobian_assembler),
729 break;
730 default:
731 OGS_FATAL(
"TH2M process does not support given dimension");
732 }
733 }
734 else
735#endif
736#ifdef OGS_BUILD_PROCESS_HEATCONDUCTION
737 if (type == "HEAT_CONDUCTION")
738 {
740 name, *
_mesh_vec[0], std::move(jacobian_assembler),
743 }
744 else
745#endif
746#ifdef OGS_BUILD_PROCESS_HEATTRANSPORTBHE
747 if (type == "HEAT_TRANSPORT_BHE")
748 {
750 {
752 "HEAT_TRANSPORT_BHE can only work with a 3-dimensional "
753 "mesh! ");
754 }
755
756 process =
758 name, *
_mesh_vec[0], std::move(jacobian_assembler),
761 }
762 else
763#endif
764#ifdef OGS_BUILD_PROCESS_WELLBORESIMULATOR
765 if (type == "WELLBORE_SIMULATOR")
766 {
768 {
770 "WELLBORE_SIMULATOR can only work with a 1-dimensional "
771 "mesh!");
772 }
773
774 process =
776 name, *
_mesh_vec[0], std::move(jacobian_assembler),
779 }
780 else
781#endif
782#ifdef OGS_BUILD_PROCESS_HYDROMECHANICS
783 if (type == "HYDRO_MECHANICS")
784 {
785 if (
786 process_config.getConfigParameterOptional<int>("dimension"))
787 {
789 "The 'dimension' tag has been removed in the merge-request "
790 "!4766. The dimension is now taken from the main mesh and "
791 "the tag must be removed. There is a python script in the "
792 "merge-request description for automatic conversion.");
793 }
795 {
796 case 2:
797 process =
800 std::move(jacobian_assembler),
804 break;
805 case 3:
806 process =
809 std::move(jacobian_assembler),
813 break;
814 default:
816 "HYDRO_MECHANICS process does not support given "
817 "dimension");
818 }
819 }
820 else
821#endif
822#ifdef OGS_BUILD_PROCESS_LARGEDEFORMATION
823 if (type == "LARGE_DEFORMATION")
824 {
826 {
827 case 2:
830 name, *
_mesh_vec[0], std::move(jacobian_assembler),
834 break;
835 case 3:
838 name, *
_mesh_vec[0], std::move(jacobian_assembler),
842 break;
843 default:
845 "LARGE_DEFORMATION process does not support given "
846 "dimension");
847 }
848 }
849 else
850#endif
851#ifdef OGS_BUILD_PROCESS_LIE_HM
852 if (type == "HYDRO_MECHANICS_WITH_LIE")
853 {
854 if (
855 process_config.getConfigParameterOptional<int>("dimension"))
856 {
858 "The 'dimension' tag has been removed in the merge-request "
859 "!4766."
860 "The dimension is now taken from the main mesh and the tag "
861 "must be"
862 "removed. There is a python script in the merge-request "
863 "description"
864 "for automatic conversion.");
865 }
867 {
868 case 2:
871 name, *
_mesh_vec[0], std::move(jacobian_assembler),
875 break;
876 case 3:
879 name, *
_mesh_vec[0], std::move(jacobian_assembler),
883 break;
884 default:
886 "HYDRO_MECHANICS_WITH_LIE process does not support "
887 "given dimension");
888 }
889 }
890 else
891#endif
892#ifdef OGS_BUILD_PROCESS_HT
893 if (type == "HT")
894 {
896 name, *
_mesh_vec[0], std::move(jacobian_assembler),
899 }
900 else
901#endif
902#ifdef OGS_BUILD_PROCESS_COMPONENTTRANSPORT
903 if (type == "ComponentTransport")
904 {
905 process =
907 name, *
_mesh_vec[0], std::move(jacobian_assembler),
910 std::move(chemical_solver_interface));
911 }
912 else
913#endif
914#ifdef OGS_BUILD_PROCESS_PHASEFIELD
915 if (type == "PHASE_FIELD")
916 {
918 {
919 case 2:
920 process =
922 name, *
_mesh_vec[0], std::move(jacobian_assembler),
925 process_config);
926 break;
927 case 3:
928 process =
930 name, *
_mesh_vec[0], std::move(jacobian_assembler),
933 process_config);
934 break;
935 }
936 }
937 else
938#endif
939#ifdef OGS_BUILD_PROCESS_HMPHASEFIELD
940 if (type == "HM_PHASE_FIELD")
941 {
943 {
944 case 2:
945 process =
947 name, *
_mesh_vec[0], std::move(jacobian_assembler),
951 break;
952 case 3:
953 process =
955 name, *
_mesh_vec[0], std::move(jacobian_assembler),
959 break;
960 }
961 }
962 else
963#endif
964#ifdef OGS_BUILD_PROCESS_RICHARDSCOMPONENTTRANSPORT
965 if (type == "RichardsComponentTransport")
966 {
969 name, *
_mesh_vec[0], std::move(jacobian_assembler),
972 }
973 else
974#endif
975#ifdef OGS_BUILD_PROCESS_SMALLDEFORMATION
976 if (type == "SMALL_DEFORMATION")
977 {
979 {
980 case 2:
983 name, *
_mesh_vec[0], std::move(jacobian_assembler),
987 break;
988 case 3:
991 name, *
_mesh_vec[0], std::move(jacobian_assembler),
995 break;
996 default:
998 "SMALL_DEFORMATION process does not support given "
999 "dimension");
1000 }
1001 }
1002 else
1003#endif
1004#ifdef OGS_BUILD_PROCESS_LIE_M
1005 if (type == "SMALL_DEFORMATION_WITH_LIE")
1006 {
1007 if (
1008 process_config.getConfigParameterOptional<int>("dimension"))
1009 {
1011 "The 'dimension' tag has been removed in the merge-request "
1012 "!4766."
1013 "The dimension is now taken from the main mesh and the tag "
1014 "must be"
1015 "removed. There is a python script in the merge-request "
1016 "description"
1017 "for automatic conversion.");
1018 }
1020 {
1021 case 2:
1024 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1027 process_config);
1028 break;
1029 case 3:
1032 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1035 process_config);
1036 break;
1037 default:
1039 "SMALL_DEFORMATION_WITH_LIE process does not support "
1040 "given dimension");
1041 }
1042 }
1043 else
1044#endif
1045#ifdef OGS_BUILD_PROCESS_THERMOHYDROMECHANICS
1046 if (type == "THERMO_HYDRO_MECHANICS")
1047 {
1048 if (
1049 process_config.getConfigParameterOptional<int>("dimension"))
1050 {
1052 "The 'dimension' tag has been removed in the merge-request "
1053 "!4766."
1054 "The dimension is now taken from the main mesh and the tag "
1055 "must be"
1056 "removed. There is a python script in the merge-request "
1057 "description"
1058 "for automatic conversion.");
1059 }
1061 {
1062 case 2:
1065 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1069 break;
1070 case 3:
1073 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1077 break;
1078 default:
1080 "THERMO_HYDRO_MECHANICS process does not support given "
1081 "dimension");
1082 }
1083 }
1084 else
1085#endif
1086#ifdef OGS_BUILD_PROCESS_THERMOMECHANICS
1087 if (type == "THERMO_MECHANICS")
1088 {
1090 {
1091 case 2:
1094 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1098 break;
1099 case 3:
1102 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1106 break;
1107 }
1108 }
1109 else
1110#endif
1111#ifdef OGS_BUILD_PROCESS_RICHARDSFLOW
1112 if (type == "RICHARDS_FLOW")
1113 {
1115 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1118 }
1119 else
1120#endif
1121#ifdef OGS_BUILD_PROCESS_RICHARDSMECHANICS
1122 if (type == "RICHARDS_MECHANICS")
1123 {
1124 if (
1125 process_config.getConfigParameterOptional<int>("dimension"))
1126 {
1128 "The 'dimension' tag has been removed in the merge-request "
1129 "!4766."
1130 "The dimension is now taken from the main mesh and the tag "
1131 "must be"
1132 "removed. There is a python script in the merge-request "
1133 "description"
1134 "for automatic conversion.");
1135 }
1137 {
1138 case 2:
1141 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1145 break;
1146 case 3:
1149 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1153 break;
1154 }
1155 }
1156 else
1157#endif
1158#ifdef OGS_BUILD_PROCESS_THERMORICHARDSFLOW
1159 if (type == "THERMO_RICHARDS_FLOW")
1160 {
1161 process =
1163 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1166 }
1167 else
1168#endif
1169#ifdef OGS_BUILD_PROCESS_THERMORICHARDSMECHANICS
1170 if (type == "THERMO_RICHARDS_MECHANICS")
1171 {
1173 {
1174 case 2:
1177 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1181 break;
1182 case 3:
1185 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1189 break;
1190 }
1191 }
1192 else
1193#endif
1194
1195#ifdef OGS_BUILD_PROCESS_TWOPHASEFLOWWITHPP
1196 if (type == "TWOPHASE_FLOW_PP")
1197 {
1198 process =
1200 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1203 }
1204 else
1205#endif
1206#ifdef OGS_BUILD_PROCESS_THERMALTWOPHASEFLOWWITHPP
1207 if (type == "THERMAL_TWOPHASE_WITH_PP")
1208 {
1211 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1214 }
1215 else
1216#endif
1217 {
1218 OGS_FATAL(
"Unknown process type: {:s}", type);
1219 }
1220
1222 [](std::unique_ptr<ProcessLib::Process> const& p)
1223 { return p->name; }))
1224 {
1225 OGS_FATAL(
"The process name '{:s}' is not unique.", name);
1226 }
1228 }
1229}
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 > > 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, 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)