@@ -144,6 +144,33 @@ class Palace(CMakePackage, CudaPackage, ROCmPackage):
144144 depends_on ("hypre~cuda" , when = "~cuda" )
145145 depends_on ("hypre~rocm" , when = "~rocm" )
146146
147+ with when ("@develop" ):
148+ depends_on (
149+ "mfem+mpi+metis cxxstd=17 commit=0c4c006ef86dc2b2cf415e5bc4ed9118c9768652" ,
150+ patches = [
151+ "patch_mesh_vis_dev.diff" ,
152+ "patch_par_tet_mesh_fix_dev.diff" ,
153+ "patch_gmsh_parser_performance.diff" ,
154+ "patch_race_condition_fix.diff" ,
155+ ],
156+ )
157+ depends_on ("mfem+shared" , when = "+shared" )
158+ depends_on ("mfem~shared" , when = "~shared" )
159+ depends_on ("mfem+openmp" , when = "+openmp" )
160+ depends_on ("mfem~openmp" , when = "~openmp" )
161+ depends_on ("mfem+superlu-dist" , when = "+superlu-dist" )
162+ depends_on ("mfem~superlu-dist" , when = "~superlu-dist" )
163+ depends_on ("mfem+strumpack" , when = "+strumpack" )
164+ depends_on ("mfem~strumpack" , when = "~strumpack" )
165+ depends_on ("mfem+mumps" , when = "+mumps" )
166+ depends_on ("mfem~mumps" , when = "~mumps" )
167+ depends_on ("mfem+sundials" , when = "+sundials" )
168+ depends_on ("mfem~sundials" , when = "~sundials" )
169+ depends_on ("mfem+gslib" , when = "+gslib" )
170+ depends_on ("mfem~gslib" , when = "~gslib" )
171+
172+ depends_on ("mfem+exceptions" , when = "+tests" )
173+
147174 with when ("+libxsmm" ):
148175 # NOTE: @=main != @main since libxsmm has a version main-2023-22
149176 depends_on ("libxsmm@=main blas=0" )
@@ -190,6 +217,7 @@ class Palace(CMakePackage, CudaPackage, ROCmPackage):
190217 for arch in CudaPackage .cuda_arch_values :
191218 cuda_variant = f"+cuda cuda_arch={ arch } "
192219 depends_on (f"hypre{ cuda_variant } " , when = f"{ cuda_variant } " )
220+ depends_on (f"mfem{ cuda_variant } " , when = f"{ cuda_variant } " )
193221 depends_on (f"magma{ cuda_variant } " , when = f"{ cuda_variant } " )
194222 depends_on (f"libceed{ cuda_variant } " , when = f"{ cuda_variant } @0.14:" )
195223 depends_on (f"sundials{ cuda_variant } " , when = f"+sundials{ cuda_variant } @0.14:" )
@@ -200,6 +228,7 @@ class Palace(CMakePackage, CudaPackage, ROCmPackage):
200228 for arch in ROCmPackage .amdgpu_targets :
201229 rocm_variant = f"+rocm amdgpu_target={ arch } "
202230 depends_on (f"hypre{ rocm_variant } " , when = f"{ rocm_variant } " )
231+ depends_on (f"mfem{ rocm_variant } " , when = f"{ rocm_variant } " )
203232 depends_on (f"magma{ rocm_variant } " , when = f"{ rocm_variant } " )
204233 depends_on (f"libceed{ rocm_variant } " , when = f"{ rocm_variant } @0.14:" )
205234 depends_on (f"sundials{ rocm_variant } " , when = f"+sundials{ rocm_variant } @0.14:" )
@@ -225,9 +254,12 @@ def cmake_args(self):
225254 self .define_from_variant ("PALACE_WITH_SUNDIALS" , "sundials" ),
226255 self .define_from_variant ("PALACE_WITH_SUPERLU" , "superlu-dist" ),
227256 self .define ("PALACE_BUILD_EXTERNAL_DEPS" , False ),
228- self .define_from_variant ("PALACE_MFEM_USE_EXCEPTIONS" , "tests" ),
229257 ]
230258
259+
260+ with when ("@:0.14" ):
261+ self .define_from_variant ("PALACE_MFEM_USE_EXCEPTIONS" , "tests" )
262+
231263 # We guarantee that there are arch specs with conflicts above
232264 if self .spec .satisfies ("+cuda" ):
233265 args .append (
0 commit comments