ParaView: Add openPMD Support (#33821)

openPMD, a metadata standard on top of backends like ADIOS2 and HDF5,
is implemented in ParaView 5.9+ via a Python3 module.

Simplify Conflicts & Variant

Add to ECP Data Vis SDK
This commit is contained in:
Axel Huebl 2022-12-14 19:45:27 -08:00 committed by GitHub
parent 21a1f7dd97
commit 2a5f0158bc
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 13 additions and 1 deletions

View file

@ -156,7 +156,7 @@ class EcpDataVisSdk(BundlePackage, CudaPackage, ROCmPackage):
depends_on("py-cinemasci", when="+cinema") depends_on("py-cinemasci", when="+cinema")
dav_sdk_depends_on( dav_sdk_depends_on(
"paraview@5.10:+mpi+python+kits+shared+catalyst+libcatalyst", "paraview@5.10:+mpi+openpmd+python+kits+shared+catalyst+libcatalyst",
when="+paraview", when="+paraview",
propagate=["hdf5", "adios2"], propagate=["hdf5", "adios2"],
) )

View file

@ -71,6 +71,12 @@ class Paraview(CMakePackage, CudaPackage):
variant("eyedomelighting", default=False, description="Enable Eye Dome Lighting feature") variant("eyedomelighting", default=False, description="Enable Eye Dome Lighting feature")
variant("adios2", default=False, description="Enable ADIOS2 support", when="@5.8:") variant("adios2", default=False, description="Enable ADIOS2 support", when="@5.8:")
variant("visitbridge", default=False, description="Enable VisItBridge support") variant("visitbridge", default=False, description="Enable VisItBridge support")
variant(
"openpmd",
default=False,
description="Enable openPMD support (w/ ADIOS2/HDF5)",
when="@5.9: +python",
)
variant("catalyst", default=False, description="Enable Catalyst 1", when="@5.7:") variant("catalyst", default=False, description="Enable Catalyst 1", when="@5.7:")
variant( variant(
"libcatalyst", "libcatalyst",
@ -104,6 +110,7 @@ class Paraview(CMakePackage, CudaPackage):
conflicts("~hdf5", when="+visitbridge") conflicts("~hdf5", when="+visitbridge")
conflicts("+adios2", when="@:5.10 ~mpi") conflicts("+adios2", when="@:5.10 ~mpi")
conflicts("+openpmd", when="~adios2 ~hdf5", msg="openPMD needs ADIOS2 and/or HDF5")
conflicts("~shared", when="+cuda") conflicts("~shared", when="+cuda")
conflicts("+cuda", when="@5.8:5.10") conflicts("+cuda", when="@5.8:5.10")
# Legacy rendering dropped in 5.5 # Legacy rendering dropped in 5.5
@ -153,6 +160,11 @@ class Paraview(CMakePackage, CudaPackage):
depends_on("py-matplotlib", when="+python", type="run") depends_on("py-matplotlib", when="+python", type="run")
depends_on("py-pandas@0.21:", when="+python", type="run") depends_on("py-pandas@0.21:", when="+python", type="run")
# openPMD is implemented as a Python module and provides ADIOS2 and HDF5 backends
depends_on("openpmd-api@0.14.5: +python", when="+python +openpmd", type=("build", "run"))
depends_on("openpmd-api +adios2", when="+openpmd +adios2", type=("build", "run"))
depends_on("openpmd-api +hdf5", when="+openpmd +hdf5", type=("build", "run"))
depends_on("mpi", when="+mpi") depends_on("mpi", when="+mpi")
depends_on("qt+opengl", when="@5.3.0:+qt+opengl2") depends_on("qt+opengl", when="@5.3.0:+qt+opengl2")
depends_on("qt~opengl", when="@5.3.0:+qt~opengl2") depends_on("qt~opengl", when="@5.3.0:+qt~opengl2")