Parses the processes configuration and creates new processes for each process entry passing the corresponding subtree to the process constructor.
635{
636 (void)output_directory;
637
638 DBUG(
"Reading processes:");
640 for (auto process_config : processes_config.getConfigSubtreeList("process"))
641 {
642 auto const type =
644 process_config.peekConfigParameter<std::string>("type");
645
648 process_config.getConfigParameter<std::string>("name");
649
650 [[maybe_unused]] auto const integration_order =
652 process_config.getConfigParameter<int>("integration_order");
653
654 std::unique_ptr<ProcessLib::Process> process;
655
658 process_config.getConfigSubtreeOptional("jacobian_assembler"));
659
660#ifdef OGS_BUILD_PROCESS_STEADYSTATEDIFFUSION
661 if (type == "STEADY_STATE_DIFFUSION")
662 {
663
664
665
666
667
668 process =
670 name, *
_mesh_vec[0], std::move(jacobian_assembler),
673 }
674 else
675#endif
676#ifdef OGS_BUILD_PROCESS_LIQUIDFLOW
677 if (type == "LIQUID_FLOW")
678 {
680 name, *
_mesh_vec[0], std::move(jacobian_assembler),
683 }
684 else
685#endif
686#ifdef OGS_BUILD_PROCESS_TH2M
687 if (type == "TH2M")
688 {
690 {
691 case 2:
693 name, *
_mesh_vec[0], std::move(jacobian_assembler),
697 break;
698 case 3:
700 name, *
_mesh_vec[0], std::move(jacobian_assembler),
704 break;
705 default:
706 OGS_FATAL(
"TH2M process does not support given dimension");
707 }
708 }
709 else
710#endif
711#ifdef OGS_BUILD_PROCESS_HEATCONDUCTION
712 if (type == "HEAT_CONDUCTION")
713 {
715 name, *
_mesh_vec[0], std::move(jacobian_assembler),
718 }
719 else
720#endif
721#ifdef OGS_BUILD_PROCESS_HEATTRANSPORTBHE
722 if (type == "HEAT_TRANSPORT_BHE")
723 {
725 {
727 "HEAT_TRANSPORT_BHE can only work with a 3-dimensional "
728 "mesh! ");
729 }
730
731 process =
733 name, *
_mesh_vec[0], std::move(jacobian_assembler),
736 }
737 else
738#endif
739#ifdef OGS_BUILD_PROCESS_WELLBORESIMULATOR
740 if (type == "WELLBORE_SIMULATOR")
741 {
743 {
745 "WELLBORE_SIMULATOR can only work with a 1-dimensional "
746 "mesh!");
747 }
748
749 process =
751 name, *
_mesh_vec[0], std::move(jacobian_assembler),
754 }
755 else
756#endif
757#ifdef OGS_BUILD_PROCESS_HYDROMECHANICS
758 if (type == "HYDRO_MECHANICS")
759 {
760 if (
761 process_config.getConfigParameterOptional<int>("dimension"))
762 {
764 "The 'dimension' tag has been removed in the merge-request "
765 "!4766. The dimension is now taken from the main mesh and "
766 "the tag must be removed. There is a python script in the "
767 "merge-request description for automatic conversion.");
768 }
770 {
771 case 2:
772 process =
775 std::move(jacobian_assembler),
779 break;
780 case 3:
781 process =
784 std::move(jacobian_assembler),
788 break;
789 default:
791 "HYDRO_MECHANICS process does not support given "
792 "dimension");
793 }
794 }
795 else
796#endif
797#ifdef OGS_BUILD_PROCESS_LARGEDEFORMATION
798 if (type == "LARGE_DEFORMATION")
799 {
801 {
802 case 2:
805 name, *
_mesh_vec[0], std::move(jacobian_assembler),
809 break;
810 case 3:
813 name, *
_mesh_vec[0], std::move(jacobian_assembler),
817 break;
818 default:
820 "LARGE_DEFORMATION process does not support given "
821 "dimension");
822 }
823 }
824 else
825#endif
826#ifdef OGS_BUILD_PROCESS_LIE_HM
827 if (type == "HYDRO_MECHANICS_WITH_LIE")
828 {
829 if (
830 process_config.getConfigParameterOptional<int>("dimension"))
831 {
833 "The 'dimension' tag has been removed in the merge-request "
834 "!4766."
835 "The dimension is now taken from the main mesh and the tag "
836 "must be"
837 "removed. There is a python script in the merge-request "
838 "description"
839 "for automatic conversion.");
840 }
842 {
843 case 2:
846 name, *
_mesh_vec[0], std::move(jacobian_assembler),
850 break;
851 case 3:
854 name, *
_mesh_vec[0], std::move(jacobian_assembler),
858 break;
859 default:
861 "HYDRO_MECHANICS_WITH_LIE process does not support "
862 "given dimension");
863 }
864 }
865 else
866#endif
867#ifdef OGS_BUILD_PROCESS_HT
868 if (type == "HT")
869 {
871 name, *
_mesh_vec[0], std::move(jacobian_assembler),
874 }
875 else
876#endif
877#ifdef OGS_BUILD_PROCESS_COMPONENTTRANSPORT
878 if (type == "ComponentTransport")
879 {
880 process =
882 name, *
_mesh_vec[0], std::move(jacobian_assembler),
885 std::move(chemical_solver_interface));
886 }
887 else
888#endif
889#ifdef OGS_BUILD_PROCESS_PHASEFIELD
890 if (type == "PHASE_FIELD")
891 {
893 {
894 case 2:
895 process =
897 name, *
_mesh_vec[0], std::move(jacobian_assembler),
900 process_config);
901 break;
902 case 3:
903 process =
905 name, *
_mesh_vec[0], std::move(jacobian_assembler),
908 process_config);
909 break;
910 }
911 }
912 else
913#endif
914#ifdef OGS_BUILD_PROCESS_HMPHASEFIELD
915 if (type == "HM_PHASE_FIELD")
916 {
918 {
919 case 2:
920 process =
922 name, *
_mesh_vec[0], std::move(jacobian_assembler),
926 break;
927 case 3:
928 process =
930 name, *
_mesh_vec[0], std::move(jacobian_assembler),
934 break;
935 }
936 }
937 else
938#endif
939#ifdef OGS_BUILD_PROCESS_RICHARDSCOMPONENTTRANSPORT
940 if (type == "RichardsComponentTransport")
941 {
944 name, *
_mesh_vec[0], std::move(jacobian_assembler),
947 }
948 else
949#endif
950#ifdef OGS_BUILD_PROCESS_SMALLDEFORMATION
951 if (type == "SMALL_DEFORMATION")
952 {
954 {
955 case 2:
958 name, *
_mesh_vec[0], std::move(jacobian_assembler),
962 break;
963 case 3:
966 name, *
_mesh_vec[0], std::move(jacobian_assembler),
970 break;
971 default:
973 "SMALL_DEFORMATION process does not support given "
974 "dimension");
975 }
976 }
977 else
978#endif
979#ifdef OGS_BUILD_PROCESS_LIE_M
980 if (type == "SMALL_DEFORMATION_WITH_LIE")
981 {
982 if (
983 process_config.getConfigParameterOptional<int>("dimension"))
984 {
986 "The 'dimension' tag has been removed in the merge-request "
987 "!4766."
988 "The dimension is now taken from the main mesh and the tag "
989 "must be"
990 "removed. There is a python script in the merge-request "
991 "description"
992 "for automatic conversion.");
993 }
995 {
996 case 2:
999 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1002 process_config);
1003 break;
1004 case 3:
1007 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1010 process_config);
1011 break;
1012 default:
1014 "SMALL_DEFORMATION_WITH_LIE process does not support "
1015 "given dimension");
1016 }
1017 }
1018 else
1019#endif
1020#ifdef OGS_BUILD_PROCESS_THERMOHYDROMECHANICS
1021 if (type == "THERMO_HYDRO_MECHANICS")
1022 {
1023 if (
1024 process_config.getConfigParameterOptional<int>("dimension"))
1025 {
1027 "The 'dimension' tag has been removed in the merge-request "
1028 "!4766."
1029 "The dimension is now taken from the main mesh and the tag "
1030 "must be"
1031 "removed. There is a python script in the merge-request "
1032 "description"
1033 "for automatic conversion.");
1034 }
1036 {
1037 case 2:
1040 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1044 break;
1045 case 3:
1048 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1052 break;
1053 default:
1055 "THERMO_HYDRO_MECHANICS process does not support given "
1056 "dimension");
1057 }
1058 }
1059 else
1060#endif
1061#ifdef OGS_BUILD_PROCESS_THERMOMECHANICS
1062 if (type == "THERMO_MECHANICS")
1063 {
1065 {
1066 case 2:
1069 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1073 break;
1074 case 3:
1077 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1081 break;
1082 }
1083 }
1084 else
1085#endif
1086#ifdef OGS_BUILD_PROCESS_RICHARDSFLOW
1087 if (type == "RICHARDS_FLOW")
1088 {
1090 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1093 }
1094 else
1095#endif
1096#ifdef OGS_BUILD_PROCESS_RICHARDSMECHANICS
1097 if (type == "RICHARDS_MECHANICS")
1098 {
1099 if (
1100 process_config.getConfigParameterOptional<int>("dimension"))
1101 {
1103 "The 'dimension' tag has been removed in the merge-request "
1104 "!4766."
1105 "The dimension is now taken from the main mesh and the tag "
1106 "must be"
1107 "removed. There is a python script in the merge-request "
1108 "description"
1109 "for automatic conversion.");
1110 }
1112 {
1113 case 2:
1116 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1120 break;
1121 case 3:
1124 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1128 break;
1129 }
1130 }
1131 else
1132#endif
1133#ifdef OGS_BUILD_PROCESS_THERMORICHARDSFLOW
1134 if (type == "THERMO_RICHARDS_FLOW")
1135 {
1136 process =
1138 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1141 }
1142 else
1143#endif
1144#ifdef OGS_BUILD_PROCESS_THERMORICHARDSMECHANICS
1145 if (type == "THERMO_RICHARDS_MECHANICS")
1146 {
1148 {
1149 case 2:
1152 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1156 break;
1157 case 3:
1160 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1164 break;
1165 }
1166 }
1167 else
1168#endif
1169
1170#ifdef OGS_BUILD_PROCESS_TWOPHASEFLOWWITHPP
1171 if (type == "TWOPHASE_FLOW_PP")
1172 {
1173 process =
1175 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1178 }
1179 else
1180#endif
1181#ifdef OGS_BUILD_PROCESS_THERMALTWOPHASEFLOWWITHPP
1182 if (type == "THERMAL_TWOPHASE_WITH_PP")
1183 {
1186 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1189 }
1190 else
1191#endif
1192 {
1193 OGS_FATAL(
"Unknown process type: {:s}", type);
1194 }
1195
1197 [](std::unique_ptr<ProcessLib::Process> const& p)
1198 { return p->name; }))
1199 {
1200 OGS_FATAL(
"The process name '{:s}' is not unique.", name);
1201 }
1203 }
1204}
std::vector< ProcessLib::ProcessVariable > _process_variables
std::unique_ptr< Process > createComponentTransportProcess(std::string const &name, MeshLib::Mesh &mesh, std::unique_ptr< ProcessLib::AbstractJacobianAssembler > &&jacobian_assembler, std::vector< ProcessVariable > const &variables, std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const ¶meters, unsigned const integration_order, BaseLib::ConfigTree const &config, std::vector< std::unique_ptr< MeshLib::Mesh > > const &meshes, std::map< int, std::shared_ptr< MaterialPropertyLib::Medium > > const &media, std::unique_ptr< ChemistryLib::ChemicalSolverInterface > &&chemical_solver_interface)
template std::unique_ptr< Process > createHMPhaseFieldProcess< 3 >(std::string name, MeshLib::Mesh &mesh, std::unique_ptr< ProcessLib::AbstractJacobianAssembler > &&jacobian_assembler, std::vector< ProcessVariable > const &variables, std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const ¶meters, std::optional< ParameterLib::CoordinateSystem > const &local_coordinate_system, unsigned const integration_order, BaseLib::ConfigTree const &config, std::map< int, std::shared_ptr< MaterialPropertyLib::Medium > > const &media)
template std::unique_ptr< Process > createHMPhaseFieldProcess< 2 >(std::string name, MeshLib::Mesh &mesh, std::unique_ptr< ProcessLib::AbstractJacobianAssembler > &&jacobian_assembler, std::vector< ProcessVariable > const &variables, std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const ¶meters, std::optional< ParameterLib::CoordinateSystem > const &local_coordinate_system, unsigned const integration_order, BaseLib::ConfigTree const &config, std::map< int, std::shared_ptr< MaterialPropertyLib::Medium > > const &media)
std::unique_ptr< Process > createHTProcess(std::string const &name, MeshLib::Mesh &mesh, std::unique_ptr< ProcessLib::AbstractJacobianAssembler > &&jacobian_assembler, std::vector< ProcessVariable > const &variables, std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const ¶meters, unsigned const integration_order, BaseLib::ConfigTree const &config, std::vector< std::unique_ptr< MeshLib::Mesh > > const &meshes, std::map< int, std::shared_ptr< MaterialPropertyLib::Medium > > const &media)
std::unique_ptr< Process > createHeatConductionProcess(std::string const &name, MeshLib::Mesh &mesh, std::unique_ptr< ProcessLib::AbstractJacobianAssembler > &&jacobian_assembler, std::vector< ProcessVariable > const &variables, std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const ¶meters, unsigned const integration_order, BaseLib::ConfigTree const &config, std::map< int, std::shared_ptr< MaterialPropertyLib::Medium > > const &media)
std::unique_ptr< Process > createHeatTransportBHEProcess(std::string const &name, MeshLib::Mesh &mesh, std::unique_ptr< ProcessLib::AbstractJacobianAssembler > &&jacobian_assembler, std::vector< ProcessVariable > const &variables, std::vector< std::unique_ptr< ParameterLib::ParameterBase > > ¶meters, unsigned const integration_order, BaseLib::ConfigTree const &config, std::map< std::string, std::unique_ptr< MathLib::PiecewiseLinearInterpolation > > const &curves, std::map< int, std::shared_ptr< MaterialPropertyLib::Medium > > const &media)
std::unique_ptr< Process > createHydroMechanicsProcess(std::string const &name, MeshLib::Mesh &mesh, std::unique_ptr< ProcessLib::AbstractJacobianAssembler > &&jacobian_assembler, std::vector< ProcessVariable > const &variables, std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const ¶meters, std::optional< ParameterLib::CoordinateSystem > const &local_coordinate_system, unsigned const integration_order, BaseLib::ConfigTree const &config, std::map< int, std::shared_ptr< MaterialPropertyLib::Medium > > const &media)
template std::unique_ptr< Process > createHydroMechanicsProcess< 2 >(std::string const &name, MeshLib::Mesh &mesh, std::unique_ptr< ProcessLib::AbstractJacobianAssembler > &&jacobian_assembler, std::vector< ProcessVariable > const &variables, std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const ¶meters, std::optional< ParameterLib::CoordinateSystem > const &local_coordinate_system, unsigned const integration_order, BaseLib::ConfigTree const &config, std::map< int, std::shared_ptr< MaterialPropertyLib::Medium > > const &media)
template std::unique_ptr< Process > createHydroMechanicsProcess< 3 >(std::string const &name, MeshLib::Mesh &mesh, std::unique_ptr< ProcessLib::AbstractJacobianAssembler > &&jacobian_assembler, std::vector< ProcessVariable > const &variables, std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const ¶meters, std::optional< ParameterLib::CoordinateSystem > const &local_coordinate_system, unsigned const integration_order, BaseLib::ConfigTree const &config, std::map< int, std::shared_ptr< MaterialPropertyLib::Medium > > const &media)
std::unique_ptr< Process > createLiquidFlowProcess(std::string const &name, MeshLib::Mesh &mesh, std::unique_ptr< ProcessLib::AbstractJacobianAssembler > &&jacobian_assembler, std::vector< ProcessVariable > const &variables, std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const ¶meters, unsigned const integration_order, BaseLib::ConfigTree const &config, std::vector< std::unique_ptr< MeshLib::Mesh > > const &meshes, std::map< int, std::shared_ptr< MaterialPropertyLib::Medium > > const &media)
template std::unique_ptr< Process > createPhaseFieldProcess< 2 >(std::string const &name, MeshLib::Mesh &mesh, std::unique_ptr< ProcessLib::AbstractJacobianAssembler > &&jacobian_assembler, std::vector< ProcessVariable > const &variables, std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const ¶meters, std::optional< ParameterLib::CoordinateSystem > const &local_coordinate_system, unsigned const integration_order, BaseLib::ConfigTree const &config)
template std::unique_ptr< Process > createPhaseFieldProcess< 3 >(std::string const &name, MeshLib::Mesh &mesh, std::unique_ptr< ProcessLib::AbstractJacobianAssembler > &&jacobian_assembler, std::vector< ProcessVariable > const &variables, std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const ¶meters, std::optional< ParameterLib::CoordinateSystem > const &local_coordinate_system, unsigned const integration_order, BaseLib::ConfigTree const &config)
std::unique_ptr< Process > createRichardsComponentTransportProcess(std::string const &name, MeshLib::Mesh &mesh, std::unique_ptr< ProcessLib::AbstractJacobianAssembler > &&jacobian_assembler, std::vector< ProcessVariable > const &variables, std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const ¶meters, unsigned const integration_order, BaseLib::ConfigTree const &config, std::map< int, std::shared_ptr< MaterialPropertyLib::Medium > > const &media)
std::unique_ptr< Process > createRichardsFlowProcess(std::string const &name, MeshLib::Mesh &mesh, std::unique_ptr< ProcessLib::AbstractJacobianAssembler > &&jacobian_assembler, std::vector< ProcessVariable > const &variables, std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const ¶meters, unsigned const integration_order, BaseLib::ConfigTree const &config, std::map< int, std::shared_ptr< MaterialPropertyLib::Medium > > const &media)
template std::unique_ptr< Process > createRichardsMechanicsProcess< 3 >(std::string const &name, MeshLib::Mesh &mesh, std::unique_ptr< ProcessLib::AbstractJacobianAssembler > &&jacobian_assembler, std::vector< ProcessVariable > const &variables, std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const ¶meters, std::optional< ParameterLib::CoordinateSystem > const &local_coordinate_system, unsigned const integration_order, BaseLib::ConfigTree const &config, std::map< int, std::shared_ptr< MaterialPropertyLib::Medium > > const &media)
template std::unique_ptr< Process > createRichardsMechanicsProcess< 2 >(std::string const &name, MeshLib::Mesh &mesh, std::unique_ptr< ProcessLib::AbstractJacobianAssembler > &&jacobian_assembler, std::vector< ProcessVariable > const &variables, std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const ¶meters, std::optional< ParameterLib::CoordinateSystem > const &local_coordinate_system, unsigned const integration_order, BaseLib::ConfigTree const &config, std::map< int, std::shared_ptr< MaterialPropertyLib::Medium > > const &media)
std::unique_ptr< Process > createSteadyStateDiffusion(std::string const &name, MeshLib::Mesh &mesh, std::unique_ptr< ProcessLib::AbstractJacobianAssembler > &&jacobian_assembler, std::vector< ProcessVariable > const &variables, std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const ¶meters, unsigned const integration_order, BaseLib::ConfigTree const &config, std::vector< std::unique_ptr< MeshLib::Mesh > > const &meshes, std::map< int, std::shared_ptr< MaterialPropertyLib::Medium > > const &media)
template std::unique_ptr< Process > createTH2MProcess< 3 >(std::string const &name, MeshLib::Mesh &mesh, std::unique_ptr< ProcessLib::AbstractJacobianAssembler > &&jacobian_assembler, std::vector< ProcessVariable > const &variables, std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const ¶meters, std::optional< ParameterLib::CoordinateSystem > const &local_coordinate_system, unsigned const integration_order, BaseLib::ConfigTree const &config, std::map< int, std::shared_ptr< MaterialPropertyLib::Medium > > const &media)
template std::unique_ptr< Process > createTH2MProcess< 2 >(std::string const &name, MeshLib::Mesh &mesh, std::unique_ptr< ProcessLib::AbstractJacobianAssembler > &&jacobian_assembler, std::vector< ProcessVariable > const &variables, std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const ¶meters, std::optional< ParameterLib::CoordinateSystem > const &local_coordinate_system, unsigned const integration_order, BaseLib::ConfigTree const &config, std::map< int, std::shared_ptr< MaterialPropertyLib::Medium > > const &media)
std::unique_ptr< Process > createThermalTwoPhaseFlowWithPPProcess(std::string const &name, MeshLib::Mesh &mesh, std::unique_ptr< ProcessLib::AbstractJacobianAssembler > &&jacobian_assembler, std::vector< ProcessVariable > const &variables, std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const ¶meters, unsigned const integration_order, BaseLib::ConfigTree const &config, std::map< int, std::shared_ptr< MaterialPropertyLib::Medium > > const &media)
template std::unique_ptr< Process > createThermoHydroMechanicsProcess< 2 >(std::string const &name, MeshLib::Mesh &mesh, std::unique_ptr< ProcessLib::AbstractJacobianAssembler > &&jacobian_assembler, std::vector< ProcessVariable > const &variables, std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const ¶meters, std::optional< ParameterLib::CoordinateSystem > const &local_coordinate_system, unsigned const integration_order, BaseLib::ConfigTree const &config, std::map< int, std::shared_ptr< MaterialPropertyLib::Medium > > const &media)
template std::unique_ptr< Process > createThermoHydroMechanicsProcess< 3 >(std::string const &name, MeshLib::Mesh &mesh, std::unique_ptr< ProcessLib::AbstractJacobianAssembler > &&jacobian_assembler, std::vector< ProcessVariable > const &variables, std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const ¶meters, std::optional< ParameterLib::CoordinateSystem > const &local_coordinate_system, unsigned const integration_order, BaseLib::ConfigTree const &config, std::map< int, std::shared_ptr< MaterialPropertyLib::Medium > > const &media)
template std::unique_ptr< Process > createThermoMechanicsProcess< 3 >(std::string const &name, MeshLib::Mesh &mesh, std::unique_ptr< ProcessLib::AbstractJacobianAssembler > &&jacobian_assembler, std::vector< ProcessVariable > const &variables, std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const ¶meters, std::optional< ParameterLib::CoordinateSystem > const &local_coordinate_system, unsigned const integration_order, BaseLib::ConfigTree const &config, std::map< int, std::shared_ptr< MaterialPropertyLib::Medium > > const &media)
template std::unique_ptr< Process > createThermoMechanicsProcess< 2 >(std::string const &name, MeshLib::Mesh &mesh, std::unique_ptr< ProcessLib::AbstractJacobianAssembler > &&jacobian_assembler, std::vector< ProcessVariable > const &variables, std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const ¶meters, std::optional< ParameterLib::CoordinateSystem > const &local_coordinate_system, unsigned const integration_order, BaseLib::ConfigTree const &config, std::map< int, std::shared_ptr< MaterialPropertyLib::Medium > > const &media)
std::unique_ptr< Process > createThermoRichardsFlowProcess(std::string const &name, MeshLib::Mesh &mesh, std::unique_ptr< ProcessLib::AbstractJacobianAssembler > &&jacobian_assembler, std::vector< ProcessVariable > const &variables, std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const ¶meters, unsigned const integration_order, BaseLib::ConfigTree const &config, std::map< int, std::shared_ptr< MaterialPropertyLib::Medium > > const &media)
template std::unique_ptr< Process > createThermoRichardsMechanicsProcess< 3 >(std::string const &name, MeshLib::Mesh &mesh, std::unique_ptr< ProcessLib::AbstractJacobianAssembler > &&jacobian_assembler, std::vector< ProcessVariable > const &variables, std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const ¶meters, std::optional< ParameterLib::CoordinateSystem > const &local_coordinate_system, unsigned const integration_order, BaseLib::ConfigTree const &config, std::map< int, std::shared_ptr< MaterialPropertyLib::Medium > > const &media)
template std::unique_ptr< Process > createThermoRichardsMechanicsProcess< 2 >(std::string const &name, MeshLib::Mesh &mesh, std::unique_ptr< ProcessLib::AbstractJacobianAssembler > &&jacobian_assembler, std::vector< ProcessVariable > const &variables, std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const ¶meters, std::optional< ParameterLib::CoordinateSystem > const &local_coordinate_system, unsigned const integration_order, BaseLib::ConfigTree const &config, std::map< int, std::shared_ptr< MaterialPropertyLib::Medium > > const &media)
std::unique_ptr< Process > createTwoPhaseFlowWithPPProcess(std::string const &name, MeshLib::Mesh &mesh, std::unique_ptr< ProcessLib::AbstractJacobianAssembler > &&jacobian_assembler, std::vector< ProcessVariable > const &variables, std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const ¶meters, unsigned const integration_order, BaseLib::ConfigTree const &config, std::map< int, std::shared_ptr< MaterialPropertyLib::Medium > > const &media)
std::unique_ptr< Process > createWellboreSimulatorProcess(std::string name, MeshLib::Mesh &mesh, std::unique_ptr< ProcessLib::AbstractJacobianAssembler > &&jacobian_assembler, std::vector< ProcessVariable > const &variables, std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const ¶meters, unsigned const integration_order, BaseLib::ConfigTree const &config, std::map< int, std::shared_ptr< MaterialPropertyLib::Medium > > const &media)
std::unique_ptr< AbstractJacobianAssembler > createJacobianAssembler(std::optional< BaseLib::ConfigTree > const &config)