Highlights
- Improved interoperability with numpy:
Field
now understands most of numpy's broadcastingField
can be used as an argument to numpy's ufuncs.
- Import and export routines for
Field
incuding vtk, compatible with paraview. - Coordinate mapping and transform for
Field
. - Brand new
Multispecies.__call__
interface: This takes an expression, which is evaluated bynumexr
, increasing the speed of per-particle scalar computations strongly. It's also really user-friendly.
Incompatible adjustments to previous version
postpic.Field
methodexporttocsv
is removed. Useexport
instead.postpic.Field
methodtransform
is renamed tomap_coordinates
, matching the underlying scipy-function.postpic.Field
methodmean
has now an interface matchingndarray.mean
. This means that, if theaxis
argument is not given, it averages across all axes instead the last axis.postpic.Field.map_coordinates
applies now the Jacobian determinant of the transformation, in order to preserve the definite integral.
In your code you will need to turn calls toField.transform
into calls toField.map_coordinates
and set the keyword argumentpreserve_integral=False
to get the old behaviour.postpic.MultiSpecies.createField
has now keyword arguments (bins
,shape
), which replace the corresponding entries from theoptargsh
dictionary. The use of theoptargsh
keyword argument has been deprecated.- The functions
MultiSpecies.compress
,MultiSpecies.filter
,MultiSpecies.uncompress
andParticleHistory.skip
return a new object now. Before this release, they modified the current object. Assumingms
is aMultiSpecies
object, the corresponding adjustemens read:
old:ms.filter('gamma > 2')
new:ms = ms.filter('gamma > 2')
plotter_matplotlib
has a new default symmetric colormap
Other improvements and new features
- Overload of the
~
(invert) operator onpostpic.MultiSpecies
. Ifms
is a MultiSpecies object with filtered particles (created by the use ofcompress
orfilter
), then~ms
inverts the selection of particles. postpic.Field
has methods.loadfrom
and.saveto
. These can be used to save a Field to a.npz
file for later use. Use.loadfrom
to load a Field object from such a file. All attributes of the Field are restored.postpic.Field
has methods.export
and.import
. These are used to export fields to and import fields from foreign file formats such as.csv
,.vtk
,.png
,.tif
,.jpg
. It is not guaranteed to get all attributes back after.export
ing and than.import
ing a Field. Some formats are not available for both methods.postpic
has a new functiontime_profile_at_plane
that 'measures' the temporal profile of a pulse while passing through a planepostpic
has a new functionunstagger_fields
that will take a set of staggered fields and returns the fields after removing the staggerpostpic
has a new functionexport_vector_vtk
that takes up to three fields and exports them as a vector field in the.vtk
formatpostpic
has a new functionexport_scalars_vtk
that takes up to four fields and exports them as multiple scalar fields on the same grid in the.vtk
formatpostpic.Field
works now with all numpy ufuncs, also withufunc.reduce
,ufunc.outer
,ufunc.accumulate
andufunc.at
postpic.Field
now supports broadcasting like numpy arrays, for binary operators as well as binary ufunc operationspostpic.Field
has methods.swapaxes
,.transpose
and properties.T
andndim
compatible to numpy.ndarraypostpic.Field
has methodsall
,any
,max
,min
,prod
,sum
,ptp
,std
,var
,mean
,clip
compatible to numpy.ndarraypostpic.Field
has a new methodmap_axis_grid
for transforming the coordinates only along one axis which is simpler thanmap_coordinates
, but also takes care of the Jacobianpostpic.Field
has a new methodautocutout
used to slice away close-to-zero regions from the borderspostpic.Field
has a new methodfft_autopad
used to pad a small number of grid points to each axis such that the dimensions of the Field are favourable to FFTWpostpic.Field
has a new methodadjust_stagger_to
to adjust the grid origin to match the grid origin of another fieldpostpic.Field
has a new methodphase
to get the unwrapped phase of the fieldpostpic.Field
has a new methodderivative
to calculate the derivative of a fieldpostpic.Field
has new methodsflip
androt90
similar tonp.flip()
andnp.rot90()
postpic.Field.topolar
has new defaults for extent and shapepostpic.Field.integrate
now uses the simpson method by defaultpostpic.Field.integrate
now has a new 'fast' method that uses numexpr, suitable for large datasets- New module
postpic.experimental
to contain experimental algorithms for your reference. These algorithms are not meant to be useable as-is, but may serve as recipes to write your own algorithms. - k-space reconstruction from EPOCH dumps has greatly improved accuracy due to a new algorithm correctly incorporating the frequency response of the implicit linear interpolation performed by EPOCH's half-steps
plotter_matplotlib.plotField
allows to overrideaspect
option toimshow