Parses the processes configuration and creates new processes for each process entry passing the corresponding subtree to the process constructor.
656{
657 (void)project_directory;
658 (void)output_directory;
659
660 DBUG(
"Reading processes:");
662 for (auto process_config : processes_config.getConfigSubtreeList("process"))
663 {
664 auto const type =
666 process_config.peekConfigParameter<std::string>("type");
667
670 process_config.getConfigParameter<std::string>("name");
671
672 [[maybe_unused]] auto const integration_order =
674 process_config.getConfigParameter<int>("integration_order");
675
676 std::unique_ptr<ProcessLib::Process> process;
677
680 process_config.getConfigSubtreeOptional("jacobian_assembler"));
681
682#ifdef OGS_BUILD_PROCESS_STEADYSTATEDIFFUSION
683 if (type == "STEADY_STATE_DIFFUSION")
684 {
685
686
687
688
689
690 process =
692 name, *
_mesh_vec[0], std::move(jacobian_assembler),
695 }
696 else
697#endif
698#ifdef OGS_BUILD_PROCESS_LIQUIDFLOW
699 if (type == "LIQUID_FLOW")
700 {
702 name, *
_mesh_vec[0], std::move(jacobian_assembler),
705 }
706 else
707#endif
708#ifdef OGS_BUILD_PROCESS_STOKESFLOW
709 if (type == "StokesFlow")
710 {
712 {
713 case 2:
714 process =
716 name, *
_mesh_vec[0], std::move(jacobian_assembler),
719 break;
720 default:
722 "StokesFlow process does not support given "
723 "dimension {:d}",
725 }
726 }
727 else
728#endif
729#ifdef OGS_BUILD_PROCESS_TES
730 if (type == "TES")
731 {
733 name, *
_mesh_vec[0], std::move(jacobian_assembler),
735 process_config);
736 }
737 else
738#endif
739#ifdef OGS_BUILD_PROCESS_TH2M
740 if (type == "TH2M")
741 {
743 {
744 case 2:
746 name, *
_mesh_vec[0], std::move(jacobian_assembler),
750 break;
751 case 3:
753 name, *
_mesh_vec[0], std::move(jacobian_assembler),
757 break;
758 default:
759 OGS_FATAL(
"TH2M process does not support given dimension");
760 }
761 }
762 else
763#endif
764#ifdef OGS_BUILD_PROCESS_HEATCONDUCTION
765 if (type == "HEAT_CONDUCTION")
766 {
768 name, *
_mesh_vec[0], std::move(jacobian_assembler),
771 }
772 else
773#endif
774#ifdef OGS_BUILD_PROCESS_HEATTRANSPORTBHE
775 if (type == "HEAT_TRANSPORT_BHE")
776 {
778 {
780 "HEAT_TRANSPORT_BHE can only work with a 3-dimensional "
781 "mesh! ");
782 }
783
784 process =
786 name, *
_mesh_vec[0], std::move(jacobian_assembler),
789 }
790 else
791#endif
792#ifdef OGS_BUILD_PROCESS_HYDROMECHANICS
793 if (type == "HYDRO_MECHANICS")
794 {
795 if (
796 process_config.getConfigParameterOptional<int>("dimension"))
797 {
799 "The 'dimension' tag has been removed in the merge-request "
800 "!4766."
801 "The dimension is now taken from the main mesh and the tag "
802 "must be"
803 "removed. There is a python script in the merge-request "
804 "description"
805 "for automatic conversion.");
806 }
808 {
809 case 2:
810 process =
813 std::move(jacobian_assembler),
817 break;
818 case 3:
819 process =
822 std::move(jacobian_assembler),
826 break;
827 default:
829 "HYDRO_MECHANICS process does not support given "
830 "dimension");
831 }
832 }
833 else
834#endif
835#ifdef OGS_BUILD_PROCESS_LARGEDEFORMATION
836 if (type == "LARGE_DEFORMATION")
837 {
839 {
840 case 2:
843 name, *
_mesh_vec[0], std::move(jacobian_assembler),
847 break;
848 case 3:
851 name, *
_mesh_vec[0], std::move(jacobian_assembler),
855 break;
856 default:
858 "LARGE_DEFORMATION process does not support given "
859 "dimension");
860 }
861 }
862 else
863#endif
864#ifdef OGS_BUILD_PROCESS_LIE
865 if (type == "HYDRO_MECHANICS_WITH_LIE")
866 {
867 if (
868 process_config.getConfigParameterOptional<int>("dimension"))
869 {
871 "The 'dimension' tag has been removed in the merge-request "
872 "!4766."
873 "The dimension is now taken from the main mesh and the tag "
874 "must be"
875 "removed. There is a python script in the merge-request "
876 "description"
877 "for automatic conversion.");
878 }
880 {
881 case 2:
884 name, *
_mesh_vec[0], std::move(jacobian_assembler),
887 process_config);
888 break;
889 case 3:
892 name, *
_mesh_vec[0], std::move(jacobian_assembler),
895 process_config);
896 break;
897 default:
899 "HYDRO_MECHANICS_WITH_LIE process does not support "
900 "given dimension");
901 }
902 }
903 else
904#endif
905#ifdef OGS_BUILD_PROCESS_HT
906 if (type == "HT")
907 {
909 name, *
_mesh_vec[0], std::move(jacobian_assembler),
912 }
913 else
914#endif
915#ifdef OGS_BUILD_PROCESS_COMPONENTTRANSPORT
916 if (type == "ComponentTransport")
917 {
918 process =
920 name, *
_mesh_vec[0], std::move(jacobian_assembler),
923 std::move(chemical_solver_interface));
924 }
925 else
926#endif
927#ifdef OGS_BUILD_PROCESS_PHASEFIELD
928 if (type == "PHASE_FIELD")
929 {
931 {
932 case 2:
933 process =
935 name, *
_mesh_vec[0], std::move(jacobian_assembler),
938 process_config);
939 break;
940 case 3:
941 process =
943 name, *
_mesh_vec[0], std::move(jacobian_assembler),
946 process_config);
947 break;
948 }
949 }
950 else
951#endif
952#ifdef OGS_BUILD_PROCESS_RICHARDSCOMPONENTTRANSPORT
953 if (type == "RichardsComponentTransport")
954 {
957 name, *
_mesh_vec[0], std::move(jacobian_assembler),
960 }
961 else
962#endif
963#ifdef OGS_BUILD_PROCESS_SMALLDEFORMATION
964 if (type == "SMALL_DEFORMATION")
965 {
967 {
968 case 2:
971 name, *
_mesh_vec[0], std::move(jacobian_assembler),
975 break;
976 case 3:
979 name, *
_mesh_vec[0], std::move(jacobian_assembler),
983 break;
984 default:
986 "SMALL_DEFORMATION process does not support given "
987 "dimension");
988 }
989 }
990 else
991#endif
992#ifdef OGS_BUILD_PROCESS_SMALLDEFORMATIONNONLOCAL
993 if (type == "SMALL_DEFORMATION_NONLOCAL")
994 {
996 {
997 case 2:
1000 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1003 process_config);
1004 break;
1005 case 3:
1008 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1011 process_config);
1012 break;
1013 default:
1015 "SMALL_DEFORMATION_NONLOCAL process does not support "
1016 "given dimension {:d}",
1018 }
1019 }
1020 else
1021#endif
1022#ifdef OGS_BUILD_PROCESS_LIE
1023 if (type == "SMALL_DEFORMATION_WITH_LIE")
1024 {
1025 if (
1026 process_config.getConfigParameterOptional<int>("dimension"))
1027 {
1029 "The 'dimension' tag has been removed in the merge-request "
1030 "!4766."
1031 "The dimension is now taken from the main mesh and the tag "
1032 "must be"
1033 "removed. There is a python script in the merge-request "
1034 "description"
1035 "for automatic conversion.");
1036 }
1038 {
1039 case 2:
1042 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1045 process_config);
1046 break;
1047 case 3:
1050 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1053 process_config);
1054 break;
1055 default:
1057 "SMALL_DEFORMATION_WITH_LIE process does not support "
1058 "given dimension");
1059 }
1060 }
1061 else
1062#endif
1063#ifdef OGS_BUILD_PROCESS_THERMOHYDROMECHANICS
1064 if (type == "THERMO_HYDRO_MECHANICS")
1065 {
1066 if (
1067 process_config.getConfigParameterOptional<int>("dimension"))
1068 {
1070 "The 'dimension' tag has been removed in the merge-request "
1071 "!4766."
1072 "The dimension is now taken from the main mesh and the tag "
1073 "must be"
1074 "removed. There is a python script in the merge-request "
1075 "description"
1076 "for automatic conversion.");
1077 }
1079 {
1080 case 2:
1083 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1087 break;
1088 case 3:
1091 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1095 break;
1096 default:
1098 "THERMO_HYDRO_MECHANICS process does not support given "
1099 "dimension");
1100 }
1101 }
1102 else
1103#endif
1104#ifdef OGS_BUILD_PROCESS_THERMOMECHANICALPHASEFIELD
1105 if (type == "THERMO_MECHANICAL_PHASE_FIELD")
1106 {
1108 {
1109 case 2:
1112 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1115 process_config);
1116 break;
1117 case 3:
1120 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1123 process_config);
1124 break;
1125 }
1126 }
1127 else
1128#endif
1129#ifdef OGS_BUILD_PROCESS_THERMOMECHANICS
1130 if (type == "THERMO_MECHANICS")
1131 {
1133 {
1134 case 2:
1137 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1141 break;
1142 case 3:
1145 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1149 break;
1150 }
1151 }
1152 else
1153#endif
1154#ifdef OGS_BUILD_PROCESS_RICHARDSFLOW
1155 if (type == "RICHARDS_FLOW")
1156 {
1158 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1161 }
1162 else
1163#endif
1164#ifdef OGS_BUILD_PROCESS_RICHARDSMECHANICS
1165 if (type == "RICHARDS_MECHANICS")
1166 {
1167 if (
1168 process_config.getConfigParameterOptional<int>("dimension"))
1169 {
1171 "The 'dimension' tag has been removed in the merge-request "
1172 "!4766."
1173 "The dimension is now taken from the main mesh and the tag "
1174 "must be"
1175 "removed. There is a python script in the merge-request "
1176 "description"
1177 "for automatic conversion.");
1178 }
1180 {
1181 case 2:
1184 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1188 break;
1189 case 3:
1192 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1196 break;
1197 }
1198 }
1199 else
1200#endif
1201#ifdef OGS_BUILD_PROCESS_THERMORICHARDSFLOW
1202 if (type == "THERMO_RICHARDS_FLOW")
1203 {
1204 process =
1206 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1209 }
1210 else
1211#endif
1212#ifdef OGS_BUILD_PROCESS_THERMORICHARDSMECHANICS
1213 if (type == "THERMO_RICHARDS_MECHANICS")
1214 {
1216 {
1217 case 2:
1220 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1224 break;
1225 case 3:
1228 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1232 break;
1233 }
1234 }
1235 else
1236#endif
1237
1238#ifdef OGS_BUILD_PROCESS_TWOPHASEFLOWWITHPP
1239 if (type == "TWOPHASE_FLOW_PP")
1240 {
1241 process =
1243 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1246 }
1247 else
1248#endif
1249#ifdef OGS_BUILD_PROCESS_TWOPHASEFLOWWITHPRHO
1250 if (type == "TWOPHASE_FLOW_PRHO")
1251 {
1254 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1257 }
1258 else
1259#endif
1260#ifdef OGS_BUILD_PROCESS_THERMALTWOPHASEFLOWWITHPP
1261 if (type == "THERMAL_TWOPHASE_WITH_PP")
1262 {
1265 name, *
_mesh_vec[0], std::move(jacobian_assembler),
1268 }
1269 else
1270#endif
1271 {
1272 OGS_FATAL(
"Unknown process type: {:s}", type);
1273 }
1274
1276 [](std::unique_ptr<ProcessLib::Process> const& p)
1277 {
return p->name; }))
1278 {
1279 OGS_FATAL(
"The process name '{:s}' is not unique.", name);
1280 }
1282 }
1283}
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)