Class SpaceChargeCalc3D#

Inheritance Relationships#

Base Type#

Class Documentation#

class SpaceChargeCalc3D : public OrbitUtils::CppPyWrapper#

Public Functions

SpaceChargeCalc3D(int xSize, int ySize, int zSize)#

Constructor with the 3D grid sizes.

virtual ~SpaceChargeCalc3D()#

Destructor

void trackBunch(Bunch *bunch, double length)#

Calculates space charge and applies 3D kicks to the macro-particles in the bunch.

Grid3D *getRhoGrid()#

Returns the 3D rho grid with density distribution.

Grid3D *getPhiGrid()#

Returns the 3D phi grid with a potential.

void setRatioLimit(double ratio_limit_in)#

Sets the ratio limit for the shape change and Green Function recalculations.

double getRatioLimit()#

Returns the ratio limit for the shape change and Green Function recalculations.

void setNumberOfExternalBunches(int nBunches)#

Set number of bunches from both sides for space charge calculations

void setFrequencyOfBunches(double frequency)#

Set frequency of the arrivals of the bunches

int getNumberOfExternalBunches()#

Get number of bunches from both sides for space charge calculations

double getFrequencyOfBunches()#

Get frequency of the arrivals of the bunches

Protected Attributes

PoissonSolverFFT3D *poissonSolver#
Grid3D *rhoGrid#
Grid3D *phiGrid#
OrbitUtils::BunchExtremaCalculator *bunchExtremaCalc#
double xy_ratio#
double xz_ratio#
double ratio_limit#
int nBunches_#
double frequency_#