OPAL (Object Oriented Parallel Accelerator Library) 2024.2
OPAL
CSRIGFWakeFunction Class Reference

#include <CSRIGFWakeFunction.h>

Inheritance diagram for CSRIGFWakeFunction:
Collaboration diagram for CSRIGFWakeFunction:

Public Member Functions

 CSRIGFWakeFunction (const std::string &name, std::vector< Filter * > filters, const unsigned int &N)
void apply (PartBunchBase< double, 3 > *bunch) override
void initialize (const ElementBase *ref) override
virtual WakeType getType () const override
const std::string & getName () const

Protected Attributes

const unsigned int nBins_m

Private Member Functions

void calculateLineDensity (PartBunchBase< double, 3 > *bunch, std::pair< double, double > &meshInfo)
void calculateContributionInside (size_t sliceNumber, double angleOfSlice, double meshSpacing)
void calculateContributionAfter (size_t sliceNumber, double angleOfSlice, double meshSpacing)
void calculateGreenFunction (PartBunchBase< double, 3 > *bunch, double meshSpacing)
double calcPsi (const double &psiInitial, const double &x, const double &Ds) const

Private Attributes

std::vector< Filter * > filters_m
std::shared_ptr< FilterdefaultFilter_m
FilterdiffOp_m
LineDensity lineDensity_m
LineDensity dlineDensitydz_m
std::vector< double > Ez_m
std::vector< double > Chi_m
std::vector< double > Grn_m
std::vector< double > Psi_m
double Begin_m
double FieldBegin_m
double Length_m
double bendRadius_m
std::string bendName_m
double totalBendAngle_m
const std::string name_m

Detailed Description

Definition at line 29 of file CSRIGFWakeFunction.h.

Constructor & Destructor Documentation

◆ CSRIGFWakeFunction()

CSRIGFWakeFunction::CSRIGFWakeFunction ( const std::string & name,
std::vector< Filter * > filters,
const unsigned int & N )

Definition at line 35 of file CSRIGFWakeFunction.cpp.

References begin(), bendRadius_m, diffOp_m, dlineDensitydz_m, end(), filters_m, lineDensity_m, name, totalBendAngle_m, and WakeFunction::WakeFunction().

Here is the call graph for this function:

Member Function Documentation

◆ apply()

◆ calcPsi()

double CSRIGFWakeFunction::calcPsi ( const double & psiInitial,
const double & x,
const double & Ds ) const
private

solve the equation

\[\Delta s = \frac{R \Psi^3}{24} \frac{\Psi + 4x}{\Psi + x} \]

for \(\Psi\) using Newtons method.

Definition at line 257 of file CSRIGFWakeFunction.cpp.

References bendRadius_m, endl(), ERRORMSG, RootFinderForCSR::hasPositiveRealRoots(), and RootFinderForCSR::searchRoot().

Referenced by calculateContributionAfter().

Here is the call graph for this function:

◆ calculateContributionAfter()

void CSRIGFWakeFunction::calculateContributionAfter ( size_t sliceNumber,
double angleOfSlice,
double meshSpacing )
private

Definition at line 198 of file CSRIGFWakeFunction.cpp.

References bendRadius_m, calcPsi(), dlineDensitydz_m, Ez_m, lineDensity_m, Psi_m, and totalBendAngle_m.

Referenced by apply().

Here is the call graph for this function:

◆ calculateContributionInside()

void CSRIGFWakeFunction::calculateContributionInside ( size_t sliceNumber,
double angleOfSlice,
double meshSpacing )
private

Definition at line 189 of file CSRIGFWakeFunction.cpp.

References Ez_m, Grn_m, lineDensity_m, and totalBendAngle_m.

Referenced by apply().

◆ calculateGreenFunction()

void CSRIGFWakeFunction::calculateGreenFunction ( PartBunchBase< double, 3 > * bunch,
double meshSpacing )
private

Definition at line 163 of file CSRIGFWakeFunction.cpp.

References bendRadius_m, Chi_m, Units::eV2MeV, PartBunchBase< T, Dim >::get_meanKineticEnergy(), PartBunchBase< T, Dim >::getM(), Grn_m, and lineDensity_m.

Referenced by apply().

Here is the call graph for this function:

◆ calculateLineDensity()

void CSRIGFWakeFunction::calculateLineDensity ( PartBunchBase< double, 3 > * bunch,
std::pair< double, double > & meshInfo )
private

Definition at line 150 of file CSRIGFWakeFunction.cpp.

References PartBunchBase< T, Dim >::calcLineDensity(), diffOp_m, dlineDensitydz_m, filters_m, lineDensity_m, and WakeFunction::nBins_m.

Referenced by apply().

Here is the call graph for this function:

◆ getName()

const std::string & WakeFunction::getName ( ) const
inlineinherited

Definition at line 49 of file WakeFunction.h.

References name_m.

◆ getType()

WakeType CSRIGFWakeFunction::getType ( ) const
overridevirtual

Implements WakeFunction.

Definition at line 285 of file CSRIGFWakeFunction.cpp.

References CSRIGFWakeFunction.

◆ initialize()

void CSRIGFWakeFunction::initialize ( const ElementBase * ref)
overridevirtual

Reimplemented from WakeFunction.

Definition at line 134 of file CSRIGFWakeFunction.cpp.

References Begin_m, bendName_m, bendRadius_m, FieldBegin_m, BendBase::getBendAngle(), Bend2D::getBendRadius(), Bend2D::getDimensions(), Bend2D::getEffectiveCenter(), Bend2D::getEffectiveLength(), ElementBase::getName(), Length_m, RBEND, SBEND, and totalBendAngle_m.

Here is the call graph for this function:

Member Data Documentation

◆ Begin_m

double CSRIGFWakeFunction::Begin_m
private

Definition at line 67 of file CSRIGFWakeFunction.h.

Referenced by initialize().

◆ bendName_m

std::string CSRIGFWakeFunction::bendName_m
private

Definition at line 79 of file CSRIGFWakeFunction.h.

Referenced by apply(), and initialize().

◆ bendRadius_m

double CSRIGFWakeFunction::bendRadius_m
private

◆ Chi_m

std::vector<double> CSRIGFWakeFunction::Chi_m
private

Definition at line 58 of file CSRIGFWakeFunction.h.

Referenced by apply(), and calculateGreenFunction().

◆ defaultFilter_m

std::shared_ptr<Filter> CSRIGFWakeFunction::defaultFilter_m
private

Definition at line 48 of file CSRIGFWakeFunction.h.

◆ diffOp_m

Filter* CSRIGFWakeFunction::diffOp_m
private

Definition at line 49 of file CSRIGFWakeFunction.h.

Referenced by calculateLineDensity(), and CSRIGFWakeFunction().

◆ dlineDensitydz_m

LineDensity CSRIGFWakeFunction::dlineDensitydz_m
private

◆ Ez_m

std::vector<double> CSRIGFWakeFunction::Ez_m
private

◆ FieldBegin_m

double CSRIGFWakeFunction::FieldBegin_m
private

Definition at line 71 of file CSRIGFWakeFunction.h.

Referenced by apply(), and initialize().

◆ filters_m

std::vector<Filter*> CSRIGFWakeFunction::filters_m
private

Definition at line 47 of file CSRIGFWakeFunction.h.

Referenced by calculateLineDensity(), and CSRIGFWakeFunction().

◆ Grn_m

std::vector<double> CSRIGFWakeFunction::Grn_m
private

Definition at line 61 of file CSRIGFWakeFunction.h.

Referenced by apply(), calculateContributionInside(), and calculateGreenFunction().

◆ Length_m

double CSRIGFWakeFunction::Length_m
private

Definition at line 74 of file CSRIGFWakeFunction.h.

Referenced by initialize().

◆ lineDensity_m

◆ name_m

const std::string WakeFunction::name_m
privateinherited

Definition at line 55 of file WakeFunction.h.

Referenced by getName(), and WakeFunction().

◆ nBins_m

const unsigned int WakeFunction::nBins_m
protectedinherited

◆ Psi_m

std::vector<double> CSRIGFWakeFunction::Psi_m
private

Definition at line 64 of file CSRIGFWakeFunction.h.

Referenced by apply(), and calculateContributionAfter().

◆ totalBendAngle_m

double CSRIGFWakeFunction::totalBendAngle_m
private

The documentation for this class was generated from the following files: