Skip to content

Releases: openPMD/openPMD-viewer

1.10.0

02 Jan 23:24
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: 1.9.0...1.10.0

1.9.0

13 Nov 17:27
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: 1.7.0...1.9.0

1.7.0

20 Apr 15:36
Compare
Choose a tag to compare

This release includes a few improvements:

  • The function get_laser_waist is more robust: it does not automatically assume that the z axis is the last axis of the data. In addition, the user can now specify the laser propagation direction. (The default is z.) (See #345)

  • The handling of unitSI is now more robust. (See #363)

1.6.0

10 Feb 14:18
Compare
Choose a tag to compare

This release adds a few features:

  • openPMD-viewer can now read complex datasets (See #353)

  • Avoid errors in LPA diagnostics in the absence of selected particles (See #358)

1.5.0

06 Feb 20:21
Compare
Choose a tag to compare

This release fixes a few miscellaneous bugs:

  • Better 3D reconstruction for theta=None (See #344)

  • Better support for ADIOS data (See #355)

  • Support for group-based encoding (See #346)

1.4.0

14 Apr 17:53
Compare
Choose a tag to compare

This new release introduces several improvements:

  • The changes introduced in 1.3.0 caused a major slowdown when reading certain types of data. This has been fixed in this new release. (See #340 for more details.)

  • openPMD-viewer now supports thetaMode geometry with data written using r as the fastest index (as written by e.g. WarpX in addition to the previously supported data format which used z as the fastest index (as written by e.g. fbpic). (See 337)

  • openPMD-viewer will raise an exception if the user asks for an iteration that is not part of the dataset (instead of printing a message and reverting to the first iteration, which can be confusing) (See 336)

1.3.0

03 Mar 21:01
Compare
Choose a tag to compare

This new release introduces preliminary support for mesh-refinement datasets
(see #332).

1.2.0

17 Sep 00:39
Compare
Choose a tag to compare

This new release introduces several bug-fixes and miscellaneous features:

  • There is a new function get_energy_spread that returns the energy spread of the beam. This is partially redundant with get_mean_gamma, which is kept for backward compatibility. (see #304 and #317)

  • The 3D field reconstruction from ThetaMode data now has an option max_resolution_3d that limits the resolution of the final 3D array. This is added in order to limit the memory footprint of this array. (see #307) The 3D reconstruction is now also more accurate, thanks to the implementation of linear interpolation. (see #311)

  • A bug that affected reading ThetaMode data with the openpmd-api backend has been fixed. (see #313)

  • A bug that affected get_laser_waist has been fixed. (see #320)

openPMD-api backend

06 Jan 04:59
Compare
Choose a tag to compare

This new release introduces the option to read openPMD files with different backends. In addition to the legacy h5py backend (which can read only HDF5 openPMD file), openPMD-viewer now has the option to use the openpmd-api backend (which can read both HDF5 and ADIOS openPMD files). Because the openpmd-api backend is thus more general, it is selected by default if available (i.e. if installed locally).
The user can override the default choice, by passing the backend argument when creating an OpenPMDTimeSeries object, and check which backend has been chosen by inspecting the .backend attribute of this object.

In addition, several smaller changes were introduced in this PR:

  • The method get_laser_envelope can now take the argument laser_propagation in order to support lasers that do not propagates along the z axis.
  • openPMD-viewer can now properly read groupBased openPMD files (i.e. files that contain several iterations) #301.
  • Users can now pass arrays of ID to the ParticleTracker #283

1.0.0: Breaking changes in the API

07 Feb 13:07
Compare
Choose a tag to compare

This version introduces major changes and breaks backward compatibility.

Here is a list of the changes:

  • The import statement now uses openpmd_viewer instead of opmd_viewer, e.g.
from openpmd_viewer import OpenPMDTimeSeries
  • For consistency, ts.get_particle now return particle positions in meters,
    instead of microns. For instance, in the code below, x, y, z will be in
    meters
x, y, z = ts.get_particle(['x', 'y', 'z'], iteration=1000)
  • In ts.get_field, slicing can now be done in several directions, and for
    1d, 2d, 3d, and circ geometries. As a consequence, this breaks backward
    compatibility for 3d field:
    get_field(field=field, coord=coord, iteration=iteration)
    used to return the central slice along y while it now returns the full 3d field.
    In addition, the name of the argument of get_field that triggers slicing
    has been changed from slicing_dir to slice_across (and slicing has been
    changed to slice_relative_position).
  • openPMD-viewer does not rely on Cython anymore. Instead, it uses numba
    for functions that perform a substantial amount of computation.
  • A new function (ts.iterate) was introduced in order to quickly apply a
    given function to all iterations of a time series. See the docstring of
    ts.iterate for more information.
  • The function get_laser_envelope does not support the argument index anymore
    (which was effectively used in order to perform slicing). Instead, users should use
    the argument slicing_dir. In addition, get_laser_envelope now supports the
    argument plot_range.
  • The function get_laser_waist does not support the agument slicing_dir anymore.