Class SpaceChargeCalcSliceBySlice2D#

Inheritance Relationships#

Base Type#

Class Documentation#

class SpaceChargeCalcSliceBySlice2D : public OrbitUtils::CppPyWrapper#

Public Functions

SpaceChargeCalcSliceBySlice2D(int xSize, int ySize, int zSize, double xy_ratio_in)#

Constructor

SpaceChargeCalcSliceBySlice2D(int xSize, int ySize, int zSize)#
virtual ~SpaceChargeCalcSliceBySlice2D()#

Destructor

void trackBunch(Bunch *bunch, double length, BaseBoundary2D *boundary)#

Calculates space charge and applies the transverse SC kicks to the macro-particles in the bunch.

Grid3D *getRhoGrid()#

Returns the 3D rho grid with a transverse density distribution.

Grid3D *getPhiGrid()#

Returns the 3D phi grid with a transverse potential.

void longTracking(int useLongTracking)#

Sets if we will use the longitudinal dynamics for bunch tracking. Remember if there is no boundary this settings is irrelevant, we cannot perform longitudinal electric field from the Space Charge Solver. useLongTracking = 1 - will use, 0 - no.

int getLongitudinalTracking()#

Protected Attributes

PoissonSolverFFT2D *poissonSolver#
Grid3D *rhoGrid3D#
Grid3D *phiGrid3D#
OrbitUtils::BunchExtremaCalculator *bunchExtremaCalc#
double xy_ratio#