Releases: openPMD/openPMD-viewer
1.0.0: Breaking changes in the API
This version introduces major changes and breaks backward compatibility.
Here is a list of the changes:
- The import statement now uses
openpmd_viewer
instead ofopmd_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 alongy
while it now returns the full 3d field.
In addition, the name of the argument ofget_field
that triggers slicing
has been changed fromslicing_dir
toslice_across
(andslicing
has been
changed toslice_relative_position
). openPMD-viewer
does not rely on Cython anymore. Instead, it usesnumba
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 argumentindex
anymore
(which was effectively used in order to perform slicing). Instead, users should use
the argumentslicing_dir
. In addition,get_laser_envelope
now supports the
argumentplot_range
. - The function
get_laser_waist
does not support the agumentslicing_dir
anymore.
0.9.1
This release includes a few minor bug fixes
- Make the histogram and
get_current
functions more robust, when the min and max of a given particle quantity are identical. - Make the reader more robust by checking that there is at least one particle species, before parsing particles metadata. (Needed for WarpX datasets.)
0.9.0
0.8.2
0.8.1
This version includes minor improvements to the viewer:
- (Experimental) support for Windows users
- In the interactive Jupyter GUI, the user can now select the scale of the vertical axis.
- The function
get_emittance
has more options (including calculation of the slice emttance) - The default
openPMD_notebook
now avoids warning messages about matplotlib inline, which used to occur even though%matplotlib notebook
was used.
Many thanks to @MaxThevenet and @AngelFP for their contributions to this release!
0.8.0
This version introduces several improvements to the viewer:
- The ability to read files that contain fields in different geometries (e.g. 3D fields and 2D slices).
- Better support for files that do not contain mesh (or do not contain particles), including support for the openPMD 1.1.0 standard.
- Cloud-In-Cell deposition in histograms.
- Better handling of %matplotlib notebook for newer version of jupyter.
0.7.1
This version adds better support, when the local installation of matplotlib has issues:
- The LpaDiagnostics can now work without matplotlib if needed.
- The MacOSX matplotlib backend is now avoided, since there can be issues when using it in the latest version of Jupyter.
0.7.0
This version improves support for ipywidgets
version 7, especially in the layout of the slider.
In addition, with this version of openPMD-viewer
, matplotlib
is not a strict requirement anymore. This allows lighter installation for users that need openPMD-viewer
only as a data reader.
Finally, the calculation of the laser envelope in 2D has been improved (see PR 170). Note that the function wstd
(which is not documented in the tutorial, but which some users might still use) has been renamed to w_std
.
0.6.0
This version improves the layout of the Jupyter GUI and allows the user to select a particular region of the plots through this GUI.
In addition, support for massless particle (e.g. photons) was added. In this case, the momenta are returned in kg.m.s^-1, instead of using the dimensionless momenta.