mbtrack2.tracking.spacecharge module

Module for transverse space charge calculations.

class TransverseSpaceCharge(ring: Synchrotron, interaction_length: float, n_bins: int = 100)[source]

Bases: Element

Class representing a transverse space charge element.

Parameters

ringSynchrotron

The synchrotron object representing the particle accelerator ring.

interaction_lengthfloat

The interaction length of the space charge effect in meters.

n_binsint, optional

The number of bins (longitudinal) used for space charge calculations. Default is 100.

Attributes

ratio_thresholdfloat

The ratio numerical threshold for the space charge element to decide if the beam is transversely round.

absolute_thresholdfloat

The absolute numerical threshold for the space charge element to decide if the beam is transversely round.

ring: Synchrotron

Ring object with information about the ring. This class uses ring.E0 and ring.gamma for calculations.

efieldnfunction

The electric field function.

Methods

track(bunch)

Perform the tracking of the bunch through the space charge element.

ratio_threshold = 0.001
absolute_threshold = 1e-10
__init__(ring: Synchrotron, interaction_length: float, n_bins: int = 100)[source]

Initialize the SpaceCharge object.

Parameters

ringSynchrotron

The synchrotron object representing the particle accelerator ring.

interaction_lengthfloat

The interaction length of the space charge effect in meters.

n_binsint, optional
The number of bins (longitudinal) used for space charge

calculations. Default is 100.

track(bunch: Bunch | Beam)[source]

Perform the tracking of the bunch through the space charge element.

Parameters

bunchBunch

The bunch of particles to be tracked.

_abc_impl = <_abc._abc_data object>