OPAL (Object Oriented Parallel Accelerator Library)  2.2.0
OPAL
Public Member Functions | Private Member Functions | Private Attributes | List of all members
CSRIGFWakeFunction Class Reference

#include <CSRIGFWakeFunction.hh>

Inheritance diagram for CSRIGFWakeFunction:
Inheritance graph
[legend]
Collaboration diagram for CSRIGFWakeFunction:
Collaboration graph
[legend]

Public Member Functions

 CSRIGFWakeFunction (const std::string &name, ElementBase *element, std::vector< Filter * > filters, const unsigned int &N)
 
void apply (PartBunchBase< double, 3 > *bunch)
 
void initialize (const ElementBase *ref)
 
virtual const std::string getType () const
 
- Public Member Functions inherited from WakeFunction
 WakeFunction (std::string name, ElementBase *elref, unsigned int n)
 
virtual ~WakeFunction ()
 
const std::string & getName () const
 

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
 

Additional Inherited Members

- Protected Attributes inherited from WakeFunction
const unsigned int nBins_m
 

Detailed Description

Definition at line 13 of file CSRIGFWakeFunction.hh.

Constructor & Destructor Documentation

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

Definition at line 17 of file CSRIGFWakeFunction.cpp.

References defaultFilter_m, diffOp_m, and filters_m.

Member Function Documentation

void CSRIGFWakeFunction::apply ( PartBunchBase< double, 3 > *  bunch)
virtual
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 229 of file CSRIGFWakeFunction.cpp.

References abs(), bendRadius_m, Physics::e, endl(), ERRORMSG, RootFinderForCSR::hasPositiveRealRoots(), pow(), and RootFinderForCSR::searchRoot().

Referenced by calculateContributionAfter().

Here is the call graph for this function:

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

Definition at line 172 of file CSRIGFWakeFunction.cpp.

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

Referenced by apply().

Here is the call graph for this function:

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

Definition at line 164 of file CSRIGFWakeFunction.cpp.

References Ez_m, Grn_m, lineDensity_m, and totalBendAngle_m.

Referenced by apply().

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

Definition at line 138 of file CSRIGFWakeFunction.cpp.

References bendRadius_m, Chi_m, Physics::e, PartBunchBase< T, Dim >::get_meanKineticEnergy(), PartBunchBase< T, Dim >::getM(), Grn_m, lineDensity_m, log(), pow(), and sqrt().

Referenced by apply().

Here is the call graph for this function:

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

Definition at line 126 of file CSRIGFWakeFunction.cpp.

References Filter::calc_derivative(), 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:

const std::string CSRIGFWakeFunction::getType ( ) const
virtual

Implements WakeFunction.

Definition at line 257 of file CSRIGFWakeFunction.cpp.

void CSRIGFWakeFunction::initialize ( const ElementBase ref)
virtual

Member Data Documentation

double CSRIGFWakeFunction::Begin_m
private

Definition at line 51 of file CSRIGFWakeFunction.hh.

Referenced by initialize().

std::string CSRIGFWakeFunction::bendName_m
private

Definition at line 63 of file CSRIGFWakeFunction.hh.

Referenced by apply(), and initialize().

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

Definition at line 42 of file CSRIGFWakeFunction.hh.

Referenced by apply(), and calculateGreenFunction().

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

Definition at line 32 of file CSRIGFWakeFunction.hh.

Referenced by CSRIGFWakeFunction().

Filter* CSRIGFWakeFunction::diffOp_m
private

Definition at line 33 of file CSRIGFWakeFunction.hh.

Referenced by calculateLineDensity(), and CSRIGFWakeFunction().

LineDensity CSRIGFWakeFunction::dlineDensitydz_m
private

Definition at line 36 of file CSRIGFWakeFunction.hh.

Referenced by calculateContributionAfter(), and calculateLineDensity().

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

Definition at line 55 of file CSRIGFWakeFunction.hh.

Referenced by apply(), and initialize().

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

Definition at line 31 of file CSRIGFWakeFunction.hh.

Referenced by calculateLineDensity(), and CSRIGFWakeFunction().

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

Definition at line 58 of file CSRIGFWakeFunction.hh.

Referenced by initialize().

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

Definition at line 48 of file CSRIGFWakeFunction.hh.

Referenced by apply(), and calculateContributionAfter().

double CSRIGFWakeFunction::totalBendAngle_m
private

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