Parses the processes configuration and creates new processes for each process entry passing the corresponding subtree to the process constructor.
642{
643 (void)project_directory;
644 (void)output_directory;
645
646 DBUG(
"Reading processes:");
648 for (auto process_config : processes_config.getConfigSubtreeList("process"))
649 {
650 auto const type =
652 process_config.peekConfigParameter<std::string>("type");
653
656 process_config.getConfigParameter<std::string>("name");
657
658 [[maybe_unused]] auto const integration_order =
660 process_config.getConfigParameter<int>("integration_order");
661
662 std::unique_ptr<ProcessLib::Process> process;
663
666 process_config.getConfigSubtreeOptional("jacobian_assembler"));
667
668#ifdef OGS_BUILD_PROCESS_STEADYSTATEDIFFUSION
669 if (type == "STEADY_STATE_DIFFUSION")
670 {
671
672
673
674
675
676 process =
678 name, *
_mesh_vec[0], std::move(jacobian_assembler),
681 }
682 else
683#endif
684#ifdef OGS_BUILD_PROCESS_LIQUIDFLOW
685 if (type == "LIQUID_FLOW")
686 {
688 name, *
_mesh_vec[0], std::move(jacobian_assembler),
691 }
692 else
693#endif
694#ifdef OGS_BUILD_PROCESS_STOKESFLOW
695 if (type == "StokesFlow")
696 {
698 {
699 case 2:
700 process =
702 name, *
_mesh_vec[0], std::move(jacobian_assembler),
705 break;
706 default:
708 "StokesFlow process does not support given "
709 "dimension {:d}",
711 }
712 }
713 else
714#endif
715#ifdef OGS_BUILD_PROCESS_TES
716 if (type == "TES")
717 {
719 name, *
_mesh_vec[0], std::move(jacobian_assembler),
721 process_config);
722 }
723 else
724#endif
725#ifdef OGS_BUILD_PROCESS_TH2M
726 if (type == "TH2M")
727 {
729 {
730 case 2:
732 name, *
_mesh_vec[0], std::move(jacobian_assembler),
736 break;
737 case 3:
739 name, *
_mesh_vec[0], std::move(jacobian_assembler),
743 break;
744 default:
745 OGS_FATAL(
"TH2M process does not support given dimension");
746 }
747 }
748 else
749#endif
750#ifdef OGS_BUILD_PROCESS_HEATCONDUCTION
751 if (type == "HEAT_CONDUCTION")
752 {
754 name, *
_mesh_vec[0], std::move(jacobian_assembler),
757 }
758 else
759#endif
760#ifdef OGS_BUILD_PROCESS_HEATTRANSPORTBHE
761 if (type == "HEAT_TRANSPORT_BHE")
762 {
764 {
766 "HEAT_TRANSPORT_BHE can only work with a 3-dimensional "
767 "mesh! ");
768 }
769
770 process =
772 name, *
_mesh_vec[0], std::move(jacobian_assembler),
775 }
776 else
777#endif
778#ifdef OGS_BUILD_PROCESS_HYDROMECHANICS
779 if (type == "HYDRO_MECHANICS")
780 {
781 if (
782 process_config.getConfigParameterOptional<int>("dimension"))
783 {
785 "The 'dimension' tag has been removed in the merge-request "
786 "!4766."
787 "The dimension is now taken from the main mesh and the tag "
788 "must be"
789 "removed. There is a python script in the merge-request "
790 "description"
791 "for automatic conversion.");
792 }
794 {
795 case 2:
796 process =
799 std::move(jacobian_assembler),
803 break;
804 case 3:
805 process =
808 std::move(jacobian_assembler),
812 break;
813 default:
815 "HYDRO_MECHANICS process does not support given "
816 "dimension");
817 }
818 }
819 else
820#endif
821#ifdef OGS_BUILD_PROCESS_LARGEDEFORMATION
822 if (type == "LARGE_DEFORMATION")
823 {
825 {
826 case 2:
829 name, *
_mesh_vec[0], std::move(jacobian_assembler),
833 break;
834 case 3:
837 name, *
_mesh_vec[0], std::move(jacobian_assembler),
841 break;
842 default:
844 "LARGE_DEFORMATION process does not support given "
845 "dimension");
846 }
847 }
848 else
849#endif
850#ifdef OGS_BUILD_PROCESS_LIE
851 if (type == "HYDRO_MECHANICS_WITH_LIE")
852 {
853 if (
854 process_config.getConfigParameterOptional<int>("dimension"))
855 {
857 "The 'dimension' tag has been removed in the merge-request "
858 "!4766."
859 "The dimension is now taken from the main mesh and the tag "
860 "must be"
861 "removed. There is a python script in the merge-request "
862 "description"
863 "for automatic conversion.");
864 }
866 {
867 case 2:
870 name, *
_mesh_vec[0], std::move(jacobian_assembler),
873 process_config);
874 break;
875 case 3:
878 name, *
_mesh_vec[0], std::move(jacobian_assembler),
881 process_config);
882 break;
883 default:
885 "HYDRO_MECHANICS_WITH_LIE process does not support "
886 "given dimension");
887 }
888 }
889 else
890#endif
891#ifdef OGS_BUILD_PROCESS_HT
892 if (type == "HT")
893 {
895 name, *
_mesh_vec[0], std::move(jacobian_assembler),
898 }
899 else
900#endif
901#ifdef OGS_BUILD_PROCESS_COMPONENTTRANSPORT
902 if (type == "ComponentTransport")
903 {
904 process =
906 name, *
_mesh_vec[0], std::move(jacobian_assembler),
909 std::move(chemical_solver_interface));
910 }
911 else
912#endif
913#ifdef OGS_BUILD_PROCESS_PHASEFIELD
914 if (type == "PHASE_FIELD")
915 {
917 {
918 case 2:
919 process =
921 name, *
_mesh_vec[0], std::move(jacobian_assembler),
924 process_config);
925 break;
926 case 3:
927 process =
929 name, *
_mesh_vec[0], std::move(jacobian_assembler),
932 process_config);
933 break;
934 }
935 }
936 else
937#endif
938#ifdef OGS_BUILD_PROCESS_RICHARDSCOMPONENTTRANSPORT
939 if (type == "RichardsComponentTransport")
940 {
943 name, *
_mesh_vec[0], std::move(jacobian_assembler),
946 }
947 else
948#endif
949#ifdef OGS_BUILD_PROCESS_SMALLDEFORMATION
950 if (type == "SMALL_DEFORMATION")
951 {
953 {
954 case 2:
957 name, *
_mesh_vec[0], std::move(jacobian_assembler),
961 break;
962 case 3:
965 name, *
_mesh_vec[0], std::move(jacobian_assembler),
969 break;
970 default:
972 "SMALL_DEFORMATION process does not support given "
973 "dimension");
974 }
975 }
976 else
977#endif
978#ifdef OGS_BUILD_PROCESS_SMALLDEFORMATIONNONLOCAL
979 if (type == "SMALL_DEFORMATION_NONLOCAL")
980 {
982 {
983 case 2:
986 name, *
_mesh_vec[0], std::move(jacobian_assembler),
989 process_config);
990 break;
991 case 3:
994 name, *
_mesh_vec[0], std::move(jacobian_assembler),
997 process_config);
998 break;
999 default:
1001 "SMALL_DEFORMATION_NONLOCAL process does not support "
1002 "given dimension {:d}",
1004 }
1005 }
1006 else
1007#endif
1008#ifdef OGS_BUILD_PROCESS_LIE
1009 if (type == "SMALL_DEFORMATION_WITH_LIE")
1010 {
1011 if (
1012 process_config.getConfigParameterOptional<int>("dimension"))
1013 {
1015 "The 'dimension' tag has been removed in the merge-request "
1016 "!4766."
1017 "The dimension is now taken from the main mesh and the tag "
1018 "must be"
1019 "removed. There is a python script in the merge-request "
1020 "description"
1021 "for automatic conversion.");
1022 }
1024 {
1025 case 2:
1028 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1031 process_config);
1032 break;
1033 case 3:
1036 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1039 process_config);
1040 break;
1041 default:
1043 "SMALL_DEFORMATION_WITH_LIE process does not support "
1044 "given dimension");
1045 }
1046 }
1047 else
1048#endif
1049#ifdef OGS_BUILD_PROCESS_THERMOHYDROMECHANICS
1050 if (type == "THERMO_HYDRO_MECHANICS")
1051 {
1052 if (
1053 process_config.getConfigParameterOptional<int>("dimension"))
1054 {
1056 "The 'dimension' tag has been removed in the merge-request "
1057 "!4766."
1058 "The dimension is now taken from the main mesh and the tag "
1059 "must be"
1060 "removed. There is a python script in the merge-request "
1061 "description"
1062 "for automatic conversion.");
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 default:
1084 "THERMO_HYDRO_MECHANICS process does not support given "
1085 "dimension");
1086 }
1087 }
1088 else
1089#endif
1090#ifdef OGS_BUILD_PROCESS_THERMOMECHANICALPHASEFIELD
1091 if (type == "THERMO_MECHANICAL_PHASE_FIELD")
1092 {
1094 {
1095 case 2:
1098 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1101 process_config);
1102 break;
1103 case 3:
1106 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1109 process_config);
1110 break;
1111 }
1112 }
1113 else
1114#endif
1115#ifdef OGS_BUILD_PROCESS_THERMOMECHANICS
1116 if (type == "THERMO_MECHANICS")
1117 {
1119 {
1120 case 2:
1123 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1127 break;
1128 case 3:
1131 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1135 break;
1136 }
1137 }
1138 else
1139#endif
1140#ifdef OGS_BUILD_PROCESS_RICHARDSFLOW
1141 if (type == "RICHARDS_FLOW")
1142 {
1144 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1147 }
1148 else
1149#endif
1150#ifdef OGS_BUILD_PROCESS_RICHARDSMECHANICS
1151 if (type == "RICHARDS_MECHANICS")
1152 {
1153 if (
1154 process_config.getConfigParameterOptional<int>("dimension"))
1155 {
1157 "The 'dimension' tag has been removed in the merge-request "
1158 "!4766."
1159 "The dimension is now taken from the main mesh and the tag "
1160 "must be"
1161 "removed. There is a python script in the merge-request "
1162 "description"
1163 "for automatic conversion.");
1164 }
1166 {
1167 case 2:
1170 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1174 break;
1175 case 3:
1178 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1182 break;
1183 }
1184 }
1185 else
1186#endif
1187#ifdef OGS_BUILD_PROCESS_THERMORICHARDSFLOW
1188 if (type == "THERMO_RICHARDS_FLOW")
1189 {
1190 process =
1192 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1195 }
1196 else
1197#endif
1198#ifdef OGS_BUILD_PROCESS_THERMORICHARDSMECHANICS
1199 if (type == "THERMO_RICHARDS_MECHANICS")
1200 {
1202 {
1203 case 2:
1206 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1210 break;
1211 case 3:
1214 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1218 break;
1219 }
1220 }
1221 else
1222#endif
1223
1224#ifdef OGS_BUILD_PROCESS_TWOPHASEFLOWWITHPP
1225 if (type == "TWOPHASE_FLOW_PP")
1226 {
1227 process =
1229 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1232 }
1233 else
1234#endif
1235#ifdef OGS_BUILD_PROCESS_TWOPHASEFLOWWITHPRHO
1236 if (type == "TWOPHASE_FLOW_PRHO")
1237 {
1240 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1243 }
1244 else
1245#endif
1246#ifdef OGS_BUILD_PROCESS_THERMALTWOPHASEFLOWWITHPP
1247 if (type == "THERMAL_TWOPHASE_WITH_PP")
1248 {
1251 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1254 }
1255 else
1256#endif
1257 {
1258 OGS_FATAL(
"Unknown process type: {:s}", type);
1259 }
1260
1262 [](std::unique_ptr<ProcessLib::Process> const& p)
1263 {
return p->name; }))
1264 {
1265 OGS_FATAL(
"The process name '{:s}' is not unique.", name);
1266 }
1268 }
1269}
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)