All notable changes to OCELOT will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning. (Not yet, maybe it won't. Versioning is based on year.month.day.
- The
CSR
class now gives an explicitlogging
error
when failing inarcline
and a more useful explanation. This error often occurs because the user has mixed CSR for vertical bends with horizontal bends. Navigator.add_physics_process
should now be a lot faster by doing fewer unnecessary deepcopies.
- New properties on
ParticleArrray
,beta
andgamma
, providing the relativistic properties of each particle. - New method
sort
onParticleArray
for possibly sorting in place with respect to one of the properties or functions (e.g.beta
,x
,p0c
, etc.) returning the indices that sort theParticleArray
. - Implementation of
__len__
forParticleArray
which simply returns the number of particles it contains. Identical in function tosize
. get_envelope
now also calculates the normalised emittancesemit_xn
andemit_yn
, not just the geometric ones, as was previously the case.- Added
overwrite_progress
kwarg tocpbd.track.track
function which allows tracking progress to optionally be written on new lines rather than overwritten repeatedly using carriage returns. This is particularly useful when logging the output of a running ocelot simulation to avoid extremely long lines and unreadable log files. - Inactive processes in
Navigator
instances are now stored in theinactive_proccses
attribute. This way processes attached to aNavigator
remain accessible in that for the lifetime of the Navigator. - New
ParameterScanner
class incpbd.track
for scanning arbitrary parameters in parallel (either using multiprocessing mpi4py). For example one might scan different compression schemes. Results are compiled into a single hdf5 file. - insert_markers_by_predicate now has optional arbitrary name suffixes for the markers
- Twiss.from_series allows for Twiss instances to be made from pd.Series (or a dictionary for example).
- ParticleArray slicing:
parray[10:100]
returns a ParticleArray instance with slices rparticles and q_array. remove_coupler_kick
convenience method for Cavity class- Integrated quad strengths for
k1
andk2
convenience getters/setters (k1l
and `k2l). - Added new method
Navigator.add_physics_processes
for adding multiple physics processes at the same time. This will be a lot fastwe when lots of physics processes are to be added.
6fdd98a24d013057498abd8e9ccf734939ef30e7
Navigator.jump_to
method allowing aNavigator
instance to jump to arbitrary points in z along the magnetic lattice. Useful as it does not require modifying the underling beamling to achieve equivalent behaviour.- new
__repr__
methods for some common physics processes:CSR
,SmoothBeam
,SpaceCharge
andWakeTable
. SmoothBeam
mslice attribute can now be set in the__init__
.extract_slice
method on SliceParameters instances- modified the 'MagneticLattice.transfer_maps()' method. When using the 'output_at_each_step=True' flag, the method returns (Bs, Rs, Ts, S), where 'S' is a list of coordinates after each transfer map.
- New
WakeTable3
andWake3
class for third order Taylor expansion of wakefield tracking. - New wake table for the wakefields of parallel plate structure based on analytical results,
WakeTableParallelPlate_origin
,WakeTableParallelPlate
,WakeTableParallelPlate3_origin
,WakeTableParallelPlate3
. The waketables withorigin
use point charge wake at the vicinity of the drive particle, which is the upper limit for wake. The other two waketables contain exponential decay term. The waketables with3
provide third order Taylor expansion and should be used withWake3
.
6fdd98a24d013057498abd8e9ccf734939ef30e7
- fixed bugs in matching function if Drift length is in list of variables.
- None yet.
- None yet.