Parses the processes configuration and creates new processes for each process entry passing the corresponding subtree to the process constructor.
644{
645 (void)output_directory;
646
647 DBUG(
"Reading processes:");
649 for (auto process_config : processes_config.getConfigSubtreeList("process"))
650 {
651 auto const type =
653 process_config.peekConfigParameter<std::string>("type");
654
657 process_config.getConfigParameter<std::string>("name");
658
659 [[maybe_unused]] auto const integration_order =
661 process_config.getConfigParameter<int>("integration_order");
662
663 std::unique_ptr<ProcessLib::Process> process;
664
667 process_config.getConfigSubtreeOptional("jacobian_assembler"));
668
669#ifdef OGS_BUILD_PROCESS_STEADYSTATEDIFFUSION
670 if (type == "STEADY_STATE_DIFFUSION")
671 {
672
673
674
675
676
677 process =
679 name, *
_mesh_vec[0], std::move(jacobian_assembler),
682 }
683 else
684#endif
685#ifdef OGS_BUILD_PROCESS_LIQUIDFLOW
686 if (type == "LIQUID_FLOW")
687 {
689 name, *
_mesh_vec[0], std::move(jacobian_assembler),
692 }
693 else
694#endif
695#ifdef OGS_BUILD_PROCESS_TH2M
696 if (type == "TH2M")
697 {
699 {
700 case 2:
702 name, *
_mesh_vec[0], std::move(jacobian_assembler),
706 break;
707 case 3:
709 name, *
_mesh_vec[0], std::move(jacobian_assembler),
713 break;
714 default:
715 OGS_FATAL(
"TH2M process does not support given dimension");
716 }
717 }
718 else
719#endif
720#ifdef OGS_BUILD_PROCESS_HEATCONDUCTION
721 if (type == "HEAT_CONDUCTION")
722 {
724 name, *
_mesh_vec[0], std::move(jacobian_assembler),
727 }
728 else
729#endif
730#ifdef OGS_BUILD_PROCESS_HEATTRANSPORTBHE
731 if (type == "HEAT_TRANSPORT_BHE")
732 {
734 {
736 "HEAT_TRANSPORT_BHE can only work with a 3-dimensional "
737 "mesh! ");
738 }
739
740 process =
742 name, *
_mesh_vec[0], std::move(jacobian_assembler),
745 }
746 else
747#endif
748#ifdef OGS_BUILD_PROCESS_WELLBORESIMULATOR
749 if (type == "WELLBORE_SIMULATOR")
750 {
752 {
754 "WELLBORE_SIMULATOR can only work with a 1-dimensional "
755 "mesh!");
756 }
757
758 process =
760 name, *
_mesh_vec[0], std::move(jacobian_assembler),
763 }
764 else
765#endif
766#ifdef OGS_BUILD_PROCESS_HYDROMECHANICS
767 if (type == "HYDRO_MECHANICS")
768 {
769 if (
770 process_config.getConfigParameterOptional<int>("dimension"))
771 {
773 "The 'dimension' tag has been removed in the merge-request "
774 "!4766. The dimension is now taken from the main mesh and "
775 "the tag must be removed. There is a python script in the "
776 "merge-request description for automatic conversion.");
777 }
779 {
780 case 2:
781 process =
784 std::move(jacobian_assembler),
788 break;
789 case 3:
790 process =
793 std::move(jacobian_assembler),
797 break;
798 default:
800 "HYDRO_MECHANICS process does not support given "
801 "dimension");
802 }
803 }
804 else
805#endif
806#ifdef OGS_BUILD_PROCESS_LARGEDEFORMATION
807 if (type == "LARGE_DEFORMATION")
808 {
810 {
811 case 2:
814 name, *
_mesh_vec[0], std::move(jacobian_assembler),
818 break;
819 case 3:
822 name, *
_mesh_vec[0], std::move(jacobian_assembler),
826 break;
827 default:
829 "LARGE_DEFORMATION process does not support given "
830 "dimension");
831 }
832 }
833 else
834#endif
835#ifdef OGS_BUILD_PROCESS_LIE_HM
836 if (type == "HYDRO_MECHANICS_WITH_LIE")
837 {
838 if (
839 process_config.getConfigParameterOptional<int>("dimension"))
840 {
842 "The 'dimension' tag has been removed in the merge-request "
843 "!4766."
844 "The dimension is now taken from the main mesh and the tag "
845 "must be"
846 "removed. There is a python script in the merge-request "
847 "description"
848 "for automatic conversion.");
849 }
851 {
852 case 2:
855 name, *
_mesh_vec[0], std::move(jacobian_assembler),
859 break;
860 case 3:
863 name, *
_mesh_vec[0], std::move(jacobian_assembler),
867 break;
868 default:
870 "HYDRO_MECHANICS_WITH_LIE process does not support "
871 "given dimension");
872 }
873 }
874 else
875#endif
876#ifdef OGS_BUILD_PROCESS_HT
877 if (type == "HT")
878 {
880 name, *
_mesh_vec[0], std::move(jacobian_assembler),
883 }
884 else
885#endif
886#ifdef OGS_BUILD_PROCESS_COMPONENTTRANSPORT
887 if (type == "ComponentTransport")
888 {
889 process =
891 name, *
_mesh_vec[0], std::move(jacobian_assembler),
894 std::move(chemical_solver_interface));
895 }
896 else
897#endif
898#ifdef OGS_BUILD_PROCESS_PHASEFIELD
899 if (type == "PHASE_FIELD")
900 {
902 {
903 case 2:
904 process =
906 name, *
_mesh_vec[0], std::move(jacobian_assembler),
909 process_config);
910 break;
911 case 3:
912 process =
914 name, *
_mesh_vec[0], std::move(jacobian_assembler),
917 process_config);
918 break;
919 }
920 }
921 else
922#endif
923#ifdef OGS_BUILD_PROCESS_HMPHASEFIELD
924 if (type == "HM_PHASE_FIELD")
925 {
927 {
928 case 2:
929 process =
931 name, *
_mesh_vec[0], std::move(jacobian_assembler),
935 break;
936 case 3:
937 process =
939 name, *
_mesh_vec[0], std::move(jacobian_assembler),
943 break;
944 }
945 }
946 else
947#endif
948#ifdef OGS_BUILD_PROCESS_RICHARDSCOMPONENTTRANSPORT
949 if (type == "RichardsComponentTransport")
950 {
953 name, *
_mesh_vec[0], std::move(jacobian_assembler),
956 }
957 else
958#endif
959#ifdef OGS_BUILD_PROCESS_SMALLDEFORMATION
960 if (type == "SMALL_DEFORMATION")
961 {
963 {
964 case 2:
967 name, *
_mesh_vec[0], std::move(jacobian_assembler),
971 break;
972 case 3:
975 name, *
_mesh_vec[0], std::move(jacobian_assembler),
979 break;
980 default:
982 "SMALL_DEFORMATION process does not support given "
983 "dimension");
984 }
985 }
986 else
987#endif
988#ifdef OGS_BUILD_PROCESS_LIE_M
989 if (type == "SMALL_DEFORMATION_WITH_LIE")
990 {
991 if (
992 process_config.getConfigParameterOptional<int>("dimension"))
993 {
995 "The 'dimension' tag has been removed in the merge-request "
996 "!4766."
997 "The dimension is now taken from the main mesh and the tag "
998 "must be"
999 "removed. There is a python script in the merge-request "
1000 "description"
1001 "for automatic conversion.");
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_WITH_LIE process does not support "
1024 "given dimension");
1025 }
1026 }
1027 else
1028#endif
1029#ifdef OGS_BUILD_PROCESS_THERMOHYDROMECHANICS
1030 if (type == "THERMO_HYDRO_MECHANICS")
1031 {
1032 if (
1033 process_config.getConfigParameterOptional<int>("dimension"))
1034 {
1036 "The 'dimension' tag has been removed in the merge-request "
1037 "!4766."
1038 "The dimension is now taken from the main mesh and the tag "
1039 "must be"
1040 "removed. There is a python script in the merge-request "
1041 "description"
1042 "for automatic conversion.");
1043 }
1045 {
1046 case 2:
1049 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1053 break;
1054 case 3:
1057 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1061 break;
1062 default:
1064 "THERMO_HYDRO_MECHANICS process does not support given "
1065 "dimension");
1066 }
1067 }
1068 else
1069#endif
1070#ifdef OGS_BUILD_PROCESS_THERMOMECHANICS
1071 if (type == "THERMO_MECHANICS")
1072 {
1074 {
1075 case 2:
1078 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1082 break;
1083 case 3:
1086 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1090 break;
1091 }
1092 }
1093 else
1094#endif
1095#ifdef OGS_BUILD_PROCESS_RICHARDSFLOW
1096 if (type == "RICHARDS_FLOW")
1097 {
1099 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1102 }
1103 else
1104#endif
1105#ifdef OGS_BUILD_PROCESS_RICHARDSMECHANICS
1106 if (type == "RICHARDS_MECHANICS")
1107 {
1108 if (
1109 process_config.getConfigParameterOptional<int>("dimension"))
1110 {
1112 "The 'dimension' tag has been removed in the merge-request "
1113 "!4766."
1114 "The dimension is now taken from the main mesh and the tag "
1115 "must be"
1116 "removed. There is a python script in the merge-request "
1117 "description"
1118 "for automatic conversion.");
1119 }
1121 {
1122 case 2:
1125 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1129 break;
1130 case 3:
1133 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1137 break;
1138 }
1139 }
1140 else
1141#endif
1142#ifdef OGS_BUILD_PROCESS_THERMORICHARDSFLOW
1143 if (type == "THERMO_RICHARDS_FLOW")
1144 {
1145 process =
1147 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1150 }
1151 else
1152#endif
1153#ifdef OGS_BUILD_PROCESS_THERMORICHARDSMECHANICS
1154 if (type == "THERMO_RICHARDS_MECHANICS")
1155 {
1157 {
1158 case 2:
1161 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1165 break;
1166 case 3:
1169 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1173 break;
1174 }
1175 }
1176 else
1177#endif
1178
1179#ifdef OGS_BUILD_PROCESS_TWOPHASEFLOWWITHPP
1180 if (type == "TWOPHASE_FLOW_PP")
1181 {
1182 process =
1184 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1187 }
1188 else
1189#endif
1190#ifdef OGS_BUILD_PROCESS_THERMALTWOPHASEFLOWWITHPP
1191 if (type == "THERMAL_TWOPHASE_WITH_PP")
1192 {
1195 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1198 }
1199 else
1200#endif
1201 {
1202 OGS_FATAL(
"Unknown process type: {:s}", type);
1203 }
1204
1206 [](std::unique_ptr<ProcessLib::Process> const& p)
1207 { return p->name; }))
1208 {
1209 OGS_FATAL(
"The process name '{:s}' is not unique.", name);
1210 }
1212 }
1213}
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)