Skip to content

Commit

Permalink
openPMD-api: 0.16.0+
Browse files Browse the repository at this point in the history
Update to the latest stable release of openPMD-api, version 0.16.0.
  • Loading branch information
ax3l committed Oct 8, 2024
1 parent bacbef7 commit 3c2ab5b
Show file tree
Hide file tree
Showing 9 changed files with 17 additions and 17 deletions.
2 changes: 1 addition & 1 deletion Docs/source/developers/gnumake/openpmd.rst
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ therefore we recommend to use `spack <https://
spack.io>`__ in order to facilitate the installation.

More specifically, we recommend that you try installing the
`openPMD-api library 0.15.1 or newer <https://openpmd-api.readthedocs.io/en/0.15.1/>`__
`openPMD-api library 0.16.0 or newer <https://openpmd-api.readthedocs.io/en/0.16.0/>`__
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.
Expand Down
2 changes: 1 addition & 1 deletion Docs/source/install/cmake.rst
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,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.15.2`` Repository branch for ``WarpX_openpmd_repo``
``WarpX_openpmd_branch`` ``0.16.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
Expand Down
2 changes: 1 addition & 1 deletion Docs/source/install/dependencies.rst
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ Optional dependencies include:
- `heFFTe 2.4.0+ <https://github.com/icl-utk-edu/heffte>`__: for multi-node spectral solver (IGF) support
- `BLAS++ <https://github.com/icl-utk-edu/blaspp>`__ and `LAPACK++ <https://github.com/icl-utk-edu/lapackpp>`__: for spectral solver (PSATD) support in RZ geometry
- `Boost 1.66.0+ <https://www.boost.org/>`__: for QED lookup tables generation support
- `openPMD-api 0.15.1+ <https://github.com/openPMD/openPMD-api>`__: we automatically download and compile a copy of openPMD-api for openPMD I/O support
- `openPMD-api 0.16.0+ <https://github.com/openPMD/openPMD-api>`__: we automatically download and compile a copy of openPMD-api for openPMD I/O support

- see `optional I/O backends <https://github.com/openPMD/openPMD-api#dependencies>`__, i.e., ADIOS2 and/or HDF5
- `Ascent 0.8.0+ <https://ascent.readthedocs.io>`__: for in situ 3D visualization
Expand Down
14 changes: 7 additions & 7 deletions Docs/source/usage/parameters.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2700,18 +2700,18 @@ 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.

* ``<diag_name>.openpmd_encoding`` (optional, ``v`` (variable based), ``f`` (file based) or ``g`` (group based) ) only read if ``<diag_name>.format = openpmd``.
openPMD `file output encoding <https://openpmd-api.readthedocs.io/en/0.15.2/usage/concepts.html#iteration-and-series>`__.
openPMD `file output encoding <https://openpmd-api.readthedocs.io/en/0.16.0/usage/concepts.html#iteration-and-series>`__.
File based: one file per timestep (slower), group/variable based: one file for all steps (faster)).
``variable based`` is an `experimental feature with ADIOS2 <https://openpmd-api.readthedocs.io/en/0.15.2/backends/adios2.html#experimental-new-adios2-schema>`__ and not supported for back-transformed diagnostics.
``variable based`` is an `experimental feature with ADIOS2 <https://openpmd-api.readthedocs.io/en/0.16.0/backends/adios2.html#experimental-new-adios2-schema>`__ and not supported for back-transformed diagnostics.
Default: ``f`` (full diagnostics)

* ``<diag_name>.adios2_operator.type`` (``zfp``, ``blosc``) optional,
`ADIOS2 I/O operator type <https://openpmd-api.readthedocs.io/en/0.15.2/details/backendconfig.html#adios2>`__ for `openPMD <https://www.openPMD.org>`_ data dumps.
`ADIOS2 I/O operator type <https://openpmd-api.readthedocs.io/en/0.16.0/details/backendconfig.html#adios2>`__ for `openPMD <https://www.openPMD.org>`_ data dumps.

* ``<diag_name>.adios2_operator.parameters.*`` optional,
`ADIOS2 I/O operator parameters <https://openpmd-api.readthedocs.io/en/0.15.2/details/backendconfig.html#adios2>`__ for `openPMD <https://www.openPMD.org>`_ data dumps.
`ADIOS2 I/O operator parameters <https://openpmd-api.readthedocs.io/en/0.16.0/details/backendconfig.html#adios2>`__ for `openPMD <https://www.openPMD.org>`_ data dumps.

A typical example for `ADIOS2 output using lossless compression <https://openpmd-api.readthedocs.io/en/0.15.2/details/backendconfig.html#adios2>`__ with ``blosc`` using the ``zstd`` compressor and 6 CPU treads per MPI Rank (e.g. for a `GPU run with spare CPU resources <https://arxiv.org/abs/1706.00522>`__):
A typical example for `ADIOS2 output using lossless compression <https://openpmd-api.readthedocs.io/en/0.16.0/details/backendconfig.html#adios2>`__ with ``blosc`` using the ``zstd`` compressor and 6 CPU treads per MPI Rank (e.g. for a `GPU run with spare CPU resources <https://arxiv.org/abs/1706.00522>`__):

.. code-block:: text
Expand All @@ -2730,11 +2730,11 @@ In-situ capabilities can be used by turning on Sensei or Ascent (provided they a
<diag_name>.adios2_operator.parameters.precision = 3
* ``<diag_name>.adios2_engine.type`` (``bp4``, ``sst``, ``ssc``, ``dataman``) optional,
`ADIOS2 Engine type <https://openpmd-api.readthedocs.io/en/0.15.2/details/backendconfig.html#adios2>`__ for `openPMD <https://www.openPMD.org>`_ data dumps.
`ADIOS2 Engine type <https://openpmd-api.readthedocs.io/en/0.16.0/details/backendconfig.html#adios2>`__ for `openPMD <https://www.openPMD.org>`_ data dumps.
See full list of engines at `ADIOS2 readthedocs <https://adios2.readthedocs.io/en/latest/engines/engines.html>`__

* ``<diag_name>.adios2_engine.parameters.*`` optional,
`ADIOS2 Engine parameters <https://openpmd-api.readthedocs.io/en/0.15.2/details/backendconfig.html#adios2>`__ for `openPMD <https://www.openPMD.org>`_ data dumps.
`ADIOS2 Engine parameters <https://openpmd-api.readthedocs.io/en/0.16.0/details/backendconfig.html#adios2>`__ for `openPMD <https://www.openPMD.org>`_ 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 <https://adios2.readthedocs.io/en/latest/engines/engines.html>`__
Expand Down
2 changes: 1 addition & 1 deletion Source/Diagnostics/requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,4 @@
# License: BSD-3-Clause-LBNL

# keep this entry for GitHub's dependency graph
openPMD-api>=0.15.1
openPMD-api>=0.16.0
2 changes: 1 addition & 1 deletion Source/Make.WarpX
Original file line number Diff line number Diff line change
Expand Up @@ -151,7 +151,7 @@ endif

ifeq ($(USE_OPENPMD), TRUE)
# try pkg-config query
ifeq (0, $(shell pkg-config "openPMD >= 0.15.1"; echo $$?))
ifeq (0, $(shell pkg-config "openPMD >= 0.16.0"; echo $$?))
CXXFLAGS += $(shell pkg-config --cflags openPMD)
LIBRARY_LOCATIONS += $(shell pkg-config --variable=libdir openPMD)
libraries += $(shell pkg-config --libs-only-l openPMD)
Expand Down
2 changes: 1 addition & 1 deletion Tools/machines/karolina-it4i/spack-karolina-cuda.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ spack:
- py-cython
- py-mpi4py
- py-numpy@1.24.2
- openpmd-api@0.15.2 +python
- openpmd-api@0.16.0 +python
- py-periodictable@1.5.0
- py-h5py
# optional
Expand Down
6 changes: 3 additions & 3 deletions cmake/dependencies/openPMD.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -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.15.2/dev/buildoptions.html
# see https://openpmd-api.readthedocs.io/en/0.16.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 "")
Expand Down Expand Up @@ -71,7 +71,7 @@ function(find_openpmd)
else()
set(COMPONENT_WMPI NOMPI)
endif()
find_package(openPMD 0.15.1 CONFIG REQUIRED COMPONENTS ${COMPONENT_WMPI})
find_package(openPMD 0.16.0 CONFIG REQUIRED COMPONENTS ${COMPONENT_WMPI})
message(STATUS "openPMD-api: Found version '${openPMD_VERSION}'")
endif()
endfunction()
Expand All @@ -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.15.2"
set(WarpX_openpmd_branch "0.16.0"
CACHE STRING
"Repository branch for WarpX_openpmd_repo if(WarpX_openpmd_internal)")

Expand Down
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -312,7 +312,7 @@ def build_extension(self, ext):
# },
extras_require={
"all": [
"openPMD-api~=0.15.1",
"openPMD-api>=0.16.0",
"openPMD-viewer~=1.1",
"yt>=4.1.0",
"matplotlib",
Expand Down

0 comments on commit 3c2ab5b

Please sign in to comment.