Changelog of postpic¶
current master¶
Incompatible adjustments to previous version
postpic.Fieldmethodexporttocsvis removed. Useexportinstead.postpic.Fieldmethodtransformis renamed tomap_coordinates, matching the underlying scipy-function.postpic.Fieldmethodmeanhas now an interface matchingndarray.mean. This means that, if theaxisargument is not given, it averages across all axes instead the last axis.postpic.Field.map_coordinatesapplies now the Jacobian determinant of the transformation, in order to preserve the definite integral. In your code you will need to turn calls toField.transforminto calls toField.map_coordinatesand set the keyword argumentpreserve_integral=Falseto get the old behaviour.- The functions
MultiSpecies.compress,MultiSpecies.filter,MultiSpecies.uncompressandParticleHistory.skipreturn a new object now. Before this release, they modified the current object. Assumingmsis aMultiSpeciesobject, the corresponding adjustemens read:
old:ms.filter('gamma > 2')
new:ms = ms.filter('gamma > 2')
Other improvements and new features
postpic.Fieldhas methods.loadfrom,.savetoand.export..savetosaves the complete Field object as a.npzfile. Use.loadfromto load a Field object from file..exportis able to write.csvfiles and.vtkfiles in addition.postpichas a new functiontime_profile_at_planethat 'measures' the temporal profile of a pulse while passing through a planepostpichas a new functionunstagger_fieldsthat will take a set of staggered fields and returns the fields after removing the staggerpostpichas a new functionexport_vector_vtkthat takes up to three fields and exports them as a vector field in the.vtkformatpostpichas a new functionexport_scalars_vtkthat takes up to four fields and exports them as multiple scalar fields on the same grid in the.vtkformatpostpic.Fieldworks now with all numpy ufuncs, also withufunc.reduce,ufunc.outer,ufunc.accumulateandufunc.atpostpic.Fieldnow supports broadcasting like numpy arrays, for binary operators as well as binary ufunc operationspostpic.Fieldhas methods.swapaxes,.transposeand property.Tcompatible to numpy.ndarraypostpic.Fieldhas methodsall,any,max,min,prod,sum,ptp,std,var,mean,clipcompatible to numpy.ndarraypostpic.Fieldhas a new methodmap_axis_gridfor transforming the coordinates only along one axis which is simpler thanmap_coordinates, but also takes care of the Jacobianpostpic.Fieldhas a new methodautocutoutused to slice away close-to-zero regions from the borderspostpic.Fieldhas a new methodfft_autopadused to pad a small number of grid points to each axis such that the dimensions of the Field are favourable to FFTWpostpic.Fieldhas a new methodadjust_stagger_toto adjust the grid origin to match the grid origin of another fieldpostpic.Field.topolarhas new defaults for extent and shapepostpic.Field.integratenow uses the simpson method by default- New module
postpic.experimentalto 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
v0.3¶
2017-09-28
Many improvements in terms of speed and features. Unfortunately some changes are not backwards-compatible to v0.2.3, so you may have to adapt your code to the new interface. For details, see the corresponding section below.
Highlights
- kspace reconstruction and propagation of EM waves.
postpic.Fieldproperly handles operator overloading and slicing. Slicing can be index based (integers) or referring the actual physical extent on the axis of a Field object (using floats).- Expression based interface to particle properties (see below)
Incompatible adjustments to previous version
- New dependency: Postpic requires the
numexprpackage to be installed now. - Expression based interface of for particles: If
msis apostpic.MultiSpeciesobject, then the callms.X()has been deprecated. Usems('x')instead. This new particle interface can handle expressions that thenumexprpackage understands. Alsoms('sqrt(x**2 + gamma - id)')is valid. This interface is easier to use, has better functionality and is faster due tonumexpr. The list of known per particle scalars and their definitions is available atpostpic.particle_scalars. In addition all constants ofscipy.constants.*can be used. In case you find particle scalar that you use regularly which is not in the list, please open an issue and let us know! - The
postpic.Fieldclass now behaves more like annumpy.ndarraywhich means that almost all functions return a new field object instead of modifying the current. This change affects the following functions:half_resolution,autoreduce,cutout,mean.
Other improvements and new features
postpic.helper.kspacecan reconstruct the correct k-space from three EM fields provided to distinguish between forward and backward propagating waves (thanks to @Ablinne)postpic.helper.kspace_propagatewill turn the phases in k-space to propagate the EM-wave.- List of new functions in
postpicfrompostpic.helper(thanks to @Ablinne):kspace_epoch_like,kspace,kspace_propagate. Field.fftfunction for fft optimized with pyfftw (thanks to @Ablinne).Field.__getitem__to slice a Field object. If integers are provided, it will interpret them as gridpoints. If float are provided they are interpreted as the physical region of the data and slice along the corresponding axis positions (thanks to @Ablinne).Fieldclass has been massively impoved (thanks to @Ablinne): The operator overloading is now properly implemented and thanks to__array__method, it can be interpreted by numpy as an ndarray whenever necessary.- List of new functions of the
Fieldclass (thanks to @Ablinne):meshgrid,conj,replace_data,pad,transform,squeeze,integrate,fft,shift_grid_by,__getitem__,__setitem__. - List of new properties of the
Fieldclass (thanks to @Ablinne):matrix,real,imag,angle. - Many performance optimizations using pyfftw library (optional) or numexpr (now required by postpic) or by avoiding in memory data copying.
- Lots of fixes
v0.2.3¶
2017-02-17
This release brings some bugfixes and various new features.
Bugfixes
- Particle property Bz.
- plotting of contourlevels.
Improvements and new features
- openPMD support (thanks to @ax3l).
- ParticleHistory class to collect particle information over the entire simulation.
- added particle properties v{x,y,z} and beta{x,y,z}.
- Lots of performance improvemts: particle data will be much less copied in memory now.
v0.2.2 and earlier¶
There hasnt been any changelog. Dont use those versions anymore.