diff --git a/.github/workflows/cuda.yml b/.github/workflows/cuda.yml index 9b905727500..4e3d6e8455b 100644 --- a/.github/workflows/cuda.yml +++ b/.github/workflows/cuda.yml @@ -56,7 +56,7 @@ jobs: which nvcc || echo "nvcc not in PATH!" cmake-easyinstall --prefix=/usr/local \ - git+https://github.com/openPMD/openPMD-api.git@0.16.1 \ + git+https://github.com/openPMD/openPMD-api.git@0.17.0 \ -DopenPMD_USE_PYTHON=OFF \ -DBUILD_TESTING=OFF \ -DBUILD_EXAMPLES=OFF \ diff --git a/.github/workflows/dependencies/icc.sh b/.github/workflows/dependencies/icc.sh index 63763421d31..945ece8d74a 100755 --- a/.github/workflows/dependencies/icc.sh +++ b/.github/workflows/dependencies/icc.sh @@ -58,7 +58,7 @@ export CEI_TMP="/tmp/cei" CXX=$(which icpc) CC=$(which icc) \ cmake-easyinstall \ --prefix=/usr/local \ - git+https://github.com/openPMD/openPMD-api.git@0.16.1 \ + git+https://github.com/openPMD/openPMD-api.git@0.17.0 \ -DopenPMD_USE_PYTHON=OFF \ -DBUILD_TESTING=OFF \ -DBUILD_EXAMPLES=OFF \ diff --git a/Docs/source/developers/gnumake/openpmd.rst b/Docs/source/developers/gnumake/openpmd.rst index fc0ebd88be0..393fe273701 100644 --- a/Docs/source/developers/gnumake/openpmd.rst +++ b/Docs/source/developers/gnumake/openpmd.rst @@ -9,7 +9,7 @@ therefore we recommend to use `spack `__ in order to facilitate the installation. More specifically, we recommend that you try installing the -`openPMD-api library 0.16.1 or newer `__ +`openPMD-api library 0.17.0 or newer `__ using spack (first section below). If this fails, a back-up solution is to install parallel HDF5 with spack, and then install the openPMD-api library from source. diff --git a/Docs/source/install/cmake.rst b/Docs/source/install/cmake.rst index 778fa66fa03..134104ec9a8 100644 --- a/Docs/source/install/cmake.rst +++ b/Docs/source/install/cmake.rst @@ -468,7 +468,7 @@ CMake Option Default & Values Des ``WarpX_amrex_internal`` **ON**/OFF Needs a pre-installed AMReX library if set to ``OFF`` ``WarpX_openpmd_src`` *None* Path to openPMD-api source directory (preferred if set) ``WarpX_openpmd_repo`` ``https://github.com/openPMD/openPMD-api.git`` Repository URI to pull and build openPMD-api from -``WarpX_openpmd_branch`` ``0.16.1`` Repository branch for ``WarpX_openpmd_repo`` +``WarpX_openpmd_branch`` ``0.17.0`` Repository branch for ``WarpX_openpmd_repo`` ``WarpX_openpmd_internal`` **ON**/OFF Needs a pre-installed openPMD-api library if set to ``OFF`` ``WarpX_picsar_src`` *None* Path to PICSAR source directory (preferred if set) ``WarpX_picsar_repo`` ``https://github.com/ECP-WarpX/picsar.git`` Repository URI to pull and build PICSAR from diff --git a/Docs/source/install/dependencies.rst b/Docs/source/install/dependencies.rst index 104f3021dc1..8834e27d981 100644 --- a/Docs/source/install/dependencies.rst +++ b/Docs/source/install/dependencies.rst @@ -31,7 +31,7 @@ Optional dependencies include: - also needs the ``pkg-config`` tool on Unix - `BLAS++ `__ and `LAPACK++ `__: for spectral solver (PSATD) support in RZ geometry - `Boost 1.66.0+ `__: for QED lookup tables generation support -- `openPMD-api 0.16.1+ `__: we automatically download and compile a copy of openPMD-api for openPMD I/O support +- `openPMD-api 0.17.0+ `__: we automatically download and compile a copy of openPMD-api for openPMD I/O support - see `optional I/O backends `__, i.e., ADIOS2 and/or HDF5 - `Ascent 0.8.0+ `__: for in situ 3D visualization diff --git a/Docs/source/usage/parameters.rst b/Docs/source/usage/parameters.rst index ed7baebc52c..b1077c508f0 100644 --- a/Docs/source/usage/parameters.rst +++ b/Docs/source/usage/parameters.rst @@ -3028,21 +3028,21 @@ In-situ capabilities can be used by turning on Sensei or Ascent (provided they a When WarpX is compiled with openPMD support, the first available backend in the order given above is taken. * ``.openpmd_encoding`` (optional, ``v`` (variable based), ``f`` (file based) or ``g`` (group based) ) only read if ``.format = openpmd``. - openPMD `file output encoding `__. + openPMD `file output encoding `__. File based: one file per timestep (slower), group/variable based: one file for all steps (faster)). - ``variable based`` is an `experimental feature with ADIOS2 BP5 `__ that will replace ``g``. + ``variable based`` is an `experimental feature with ADIOS2 BP5 `__ that will replace ``g``. Default: ``f`` (full diagnostics) * ``.buffer_flush_limit_btd`` (`integer`; defaults to 5) optional, only read if ``.diag_type = BackTransformed`` This parameter is intended for ADIOS backend to group every N buffers (N is the value of this parameter) and then flush to disk. * ``.adios2_operator.type`` (``zfp``, ``blosc``) optional, - `ADIOS2 I/O operator type `__ for `openPMD `_ data dumps. + `ADIOS2 I/O operator type `__ for `openPMD `_ data dumps. * ``.adios2_operator.parameters.*`` optional, - `ADIOS2 I/O operator parameters `__ for `openPMD `_ data dumps. + `ADIOS2 I/O operator parameters `__ for `openPMD `_ data dumps. - A typical example for `ADIOS2 output using lossless compression `__ with ``blosc`` using the ``zstd`` compressor and 6 CPU treads per MPI Rank (e.g. for a `GPU run with spare CPU resources `__): + A typical example for `ADIOS2 output using lossless compression `__ with ``blosc`` using the ``zstd`` compressor and 6 CPU treads per MPI Rank (e.g. for a `GPU run with spare CPU resources `__): .. code-block:: text @@ -3068,11 +3068,11 @@ In-situ capabilities can be used by turning on Sensei or Ascent (provided they a .adios2_engine.parameters.FlattenSteps = on * ``.adios2_engine.type`` (``bp5``, ``bp4``, ``sst``, ``ssc``, ``dataman``) optional, - `ADIOS2 Engine type `__ for `openPMD `_ data dumps. + `ADIOS2 Engine type `__ for `openPMD `_ data dumps. See full list of engines at `ADIOS2 readthedocs `__ * ``.adios2_engine.parameters.*`` optional, - `ADIOS2 Engine parameters `__ for `openPMD `_ data dumps. + `ADIOS2 Engine parameters `__ for `openPMD `_ data dumps. An example for parameters for the BP engine are setting the number of writers (``NumAggregators``), transparently redirecting data to burst buffers etc. A detailed list of engine-specific parameters are available at the official `ADIOS2 documentation `__ diff --git a/Source/Diagnostics/requirements.txt b/Source/Diagnostics/requirements.txt index 9c85c8a621d..9d7f6992bf7 100644 --- a/Source/Diagnostics/requirements.txt +++ b/Source/Diagnostics/requirements.txt @@ -5,4 +5,4 @@ # License: BSD-3-Clause-LBNL # keep this entry for GitHub's dependency graph -openPMD-api>=0.16.1 +openPMD-api>=0.17.0 diff --git a/Source/Make.WarpX b/Source/Make.WarpX index 6563121e336..23a5db7531f 100644 --- a/Source/Make.WarpX +++ b/Source/Make.WarpX @@ -151,7 +151,7 @@ endif ifeq ($(USE_OPENPMD), TRUE) # try pkg-config query - ifeq (0, $(shell pkg-config "openPMD >= 0.16.1"; echo $$?)) + ifeq (0, $(shell pkg-config "openPMD >= 0.17.0"; echo $$?)) CXXFLAGS += $(shell pkg-config --cflags openPMD) LIBRARY_LOCATIONS += $(shell pkg-config --variable=libdir openPMD) libraries += $(shell pkg-config --libs-only-l openPMD) diff --git a/Tools/machines/karolina-it4i/spack-karolina-cuda.yaml b/Tools/machines/karolina-it4i/spack-karolina-cuda.yaml index ead49f06fab..19768c1979a 100644 --- a/Tools/machines/karolina-it4i/spack-karolina-cuda.yaml +++ b/Tools/machines/karolina-it4i/spack-karolina-cuda.yaml @@ -20,7 +20,7 @@ spack: - py-cython - py-mpi4py - py-numpy@1.24.2 - - openpmd-api@0.16.1 +python + - openpmd-api@0.17.0 +python - py-periodictable@1.5.0 - py-h5py # optional diff --git a/cmake/dependencies/openPMD.cmake b/cmake/dependencies/openPMD.cmake index a5a80f25790..33d4ad4b00f 100644 --- a/cmake/dependencies/openPMD.cmake +++ b/cmake/dependencies/openPMD.cmake @@ -13,7 +13,7 @@ function(find_openpmd) if(WarpX_openpmd_internal OR WarpX_openpmd_src) set(CMAKE_POLICY_DEFAULT_CMP0077 NEW) - # see https://openpmd-api.readthedocs.io/en/0.16.1/dev/buildoptions.html + # see https://openpmd-api.readthedocs.io/en/0.17.0/dev/buildoptions.html set(openPMD_USE_ADIOS1 OFF CACHE INTERNAL "") set(openPMD_USE_MPI ${WarpX_MPI} CACHE INTERNAL "") set(openPMD_USE_PYTHON OFF CACHE INTERNAL "") @@ -71,7 +71,7 @@ function(find_openpmd) else() set(COMPONENT_WMPI NOMPI) endif() - find_package(openPMD 0.16.1 CONFIG REQUIRED COMPONENTS ${COMPONENT_WMPI}) + find_package(openPMD 0.17.0 CONFIG REQUIRED COMPONENTS ${COMPONENT_WMPI}) message(STATUS "openPMD-api: Found version '${openPMD_VERSION}'") endif() endfunction() @@ -87,7 +87,7 @@ if(WarpX_OPENPMD) set(WarpX_openpmd_repo "https://github.com/openPMD/openPMD-api.git" CACHE STRING "Repository URI to pull and build openPMD-api from if(WarpX_openpmd_internal)") - set(WarpX_openpmd_branch "0.16.1" + set(WarpX_openpmd_branch "0.17.0" CACHE STRING "Repository branch for WarpX_openpmd_repo if(WarpX_openpmd_internal)") diff --git a/setup.py b/setup.py index ea0dc8caee9..40675f98121 100644 --- a/setup.py +++ b/setup.py @@ -333,7 +333,7 @@ def build_extension(self, ext): # }, extras_require={ "all": [ - "openPMD-api>=0.16.1", + "openPMD-api>=0.17.0", "openPMD-viewer~=1.1", "yt>=4.1.0", "matplotlib",