OPALX (Object Oriented Parallel Accelerator Library for Exascal) MINIorX
OPALX
FM1DDynamic_fast Class Reference

#include <FM1DDynamic_fast.h>

Inheritance diagram for FM1DDynamic_fast:
Collaboration diagram for FM1DDynamic_fast:

Public Member Functions

virtual bool getFieldstrength (const Vector_t< double, 3 > &R, Vector_t< double, 3 > &E, Vector_t< double, 3 > &B) const
virtual bool getFieldDerivative (const Vector_t< double, 3 > &R, Vector_t< double, 3 > &E, Vector_t< double, 3 > &B, const DiffDirection &dir) const
virtual void getFieldDimensions (double &zBegin, double &zEnd) const
virtual void getFieldDimensions (double &xIni, double &xFinal, double &yIni, double &yFinal, double &zIni, double &zFinal) const
virtual void swap ()
virtual void getInfo (Inform *)
virtual double getFrequency () const
virtual void setFrequency (double freq)
virtual void getOnaxisEz (std::vector< std::pair< double, double > > &eZ)
virtual bool isInside (const Vector_t< double, 3 > &r) const
virtual void setEdgeConstants (const double &bendAngle, const double &entranceAngle, const double &exitAngle)
virtual void setFieldLength (const double &)
virtual void get1DProfile1EngeCoeffs (std::vector< double > &engeCoeffsEntry, std::vector< double > &engeCoeffsExit)
virtual void get1DProfile1EntranceParam (double &entranceParameter1, double &entranceParameter2, double &entranceParameter3)
virtual void get1DProfile1ExitParam (double &exitParameter1, double &exitParameter2, double &exitParameter3)
virtual double getFieldGap ()
virtual void setFieldGap (double gap)
MapType getType ()
template<class T>
bool interpretLine (std::ifstream &in, T &value, const bool &file_length_known)

Static Public Member Functions

static FieldmapgetFieldmap (std::string Filename, bool fast=false)
static std::vector< std::string > getListFieldmapNames ()
static void deleteFieldmap (std::string Filename)
static void clearDictionary ()
static MapType readHeader (std::string Filename)
static void readMap (std::string Filename)
static void freeMap (std::string Filename)
static std::string typeset_msg (const std::string &msg, const std::string &title)

Protected Member Functions

void getLine (std::ifstream &in, std::string &buffer)
template<class S>
bool interpretLine (std::ifstream &in, S &value, const bool &file_length_known=true)
template<class S, class T>
bool interpretLine (std::ifstream &in, S &value1, T &value2, const bool &file_length_known=true)
template<class S, class T, class U>
bool interpretLine (std::ifstream &in, S &value1, T &value2, U &value3, const bool &file_length_known=true)
template<class S, class T, class U, class V>
bool interpretLine (std::ifstream &in, S &value1, T &value2, U &value3, V &value4, const bool &file_length_known=true)
template<class S>
bool interpretLine (std::ifstream &in, S &value1, S &value2, S &value3, S &value4, S &value5, S &value6, const bool &file_length_known=true)
bool interpreteEOF (std::ifstream &in)
void interpretWarning (const std::ios_base::iostate &state, const bool &read_all, const std::string &error_msg, const std::string &found)
void missingValuesWarning ()
void exceedingValuesWarning ()
void disableFieldmapWarning ()
void noFieldmapWarning ()
void lowResolutionWarning (double squareError, double maxError)
void checkMap (unsigned int accuracy, std::pair< double, double > fieldDimensions, double deltaZ, const std::vector< double > &fourierCoefficients, gsl_spline *splineCoefficients, gsl_interp_accel *splineAccelerator)
void checkMap (unsigned int accuracy, double length, const std::vector< double > &zSampling, const std::vector< double > &fourierCoefficients, gsl_spline *splineCoefficients, gsl_interp_accel *splineAccelerator)
void write3DField (unsigned int nx, unsigned int ny, unsigned int nz, const std::pair< double, double > &xrange, const std::pair< double, double > &yrange, const std::pair< double, double > &zrange, const std::vector< Vector_t< double, 3 > > &ef, const std::vector< Vector_t< double, 3 > > &bf)

Static Protected Member Functions

static void getLine (std::ifstream &in, int &lines_read, std::string &buffer)

Protected Attributes

MapType Type
std::string Filename_m
int lines_read_m
bool normalize_m

Private Member Functions

 FM1DDynamic_fast (std::string aFilename)
 ~FM1DDynamic_fast ()
virtual void readMap ()
virtual void freeMap ()
bool checkFileData (std::ifstream &fieldFile, bool parsingPassed)
void computeFieldDerivatives (std::vector< double > fourierCoefs, double onAxisFieldP[], double onAxisFieldPP[], double onAxisFieldPPP[])
void computeFieldOffAxis (const Vector_t< double, 3 > &R, Vector_t< double, 3 > &E, Vector_t< double, 3 > &B, std::vector< double > fieldComponents) const
void computeFieldOnAxis (double z, std::vector< double > &fieldComponents) const
std::vector< double > computeFourierCoefficients (double fieldData[])
void computeInterpolationVectors (double onAxisFieldP[], double onAxisFieldPP[], double onAxisFieldPPP[])
void convertHeaderData ()
void normalizeField (double maxEz, std::vector< double > &fourierCoefs)
double readFileData (std::ifstream &fieldFile, double fieldData[])
double readFileData (std::ifstream &fieldFile, std::vector< std::pair< double, double > > &eZ)
bool readFileHeader (std::ifstream &fieldFile)
void scaleField (double maxEz, std::vector< std::pair< double, double > > &eZ)
void stripFileHeader (std::ifstream &fieldFile)
void prepareForMapCheck (std::vector< double > &fourierCoefs)

Private Attributes

double frequency_m
double twoPiOverLambdaSq_m
 Field angular frequency (Hz).
double rBegin_m
 2 Pi divided by the field RF wavelength squared.
double rEnd_m
 Minimum radius of field.
double zBegin_m
 Maximum radius of field.
double zEnd_m
 Longitudinal start of field.
double length_m
 Longitudinal end of field.
unsigned int numberOfGridPoints_m
 Field length.
double deltaZ_m
 Number of grid points in field input file.
unsigned int accuracy_m
 Field grid point spacing.
double * onAxisField_m
gsl_spline * onAxisFieldInterpolants_m
 On axis field data.
gsl_spline * onAxisFieldPInterpolants_m
 On axis field interpolation structure.
gsl_spline * onAxisFieldPPInterpolants_m
 On axis field first derivative interpolation structure.
gsl_spline * onAxisFieldPPPInterpolants_m
 On axis field second derivative interpolation structure.
gsl_interp_accel * onAxisFieldAccel_m
 On axis field third derivative interpolation structure.
gsl_interp_accel * onAxisFieldPAccel_m
gsl_interp_accel * onAxisFieldPPAccel_m
gsl_interp_accel * onAxisFieldPPPAccel_m

Static Private Attributes

static char buffer_m [256]
static std::string alpha_numeric
static std::map< std::string, FieldmapDescriptionFieldmapDictionary

Friends

class Fieldmap

Detailed Description

Definition at line 6 of file FM1DDynamic_fast.h.

Constructor & Destructor Documentation

◆ FM1DDynamic_fast()

FM1DDynamic_fast::FM1DDynamic_fast ( std::string aFilename)
private

Definition at line 13 of file FM1DDynamic_fast.cpp.

References accuracy_m, checkFileData(), convertHeaderData(), deltaZ_m, Fieldmap::disableFieldmapWarning(), Fieldmap, Fieldmap::Filename_m, FM1DDynamic_fast(), length_m, Fieldmap::noFieldmapWarning(), numberOfGridPoints_m, onAxisField_m, readFileHeader(), T1DDynamic, Fieldmap::Type, zBegin_m, and zEnd_m.

Referenced by FM1DDynamic_fast().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ~FM1DDynamic_fast()

FM1DDynamic_fast::~FM1DDynamic_fast ( )
private

Definition at line 39 of file FM1DDynamic_fast.cpp.

References freeMap(), and ~FM1DDynamic_fast().

Referenced by ~FM1DDynamic_fast().

Here is the call graph for this function:
Here is the caller graph for this function:

Member Function Documentation

◆ checkFileData()

bool FM1DDynamic_fast::checkFileData ( std::ifstream & fieldFile,
bool parsingPassed )
private

Definition at line 141 of file FM1DDynamic_fast.cpp.

References checkFileData(), Fieldmap::interpreteEOF(), Fieldmap::interpretLine(), and numberOfGridPoints_m.

Referenced by checkFileData(), and FM1DDynamic_fast().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ checkMap() [1/2]

void Fieldmap::checkMap ( unsigned int accuracy,
double length,
const std::vector< double > & zSampling,
const std::vector< double > & fourierCoefficients,
gsl_spline * splineCoefficients,
gsl_interp_accel * splineAccelerator )
protectedinherited

Definition at line 428 of file Fieldmap.cpp.

References checkMap(), Util::combineFilePath(), end(), Filename_m, OpalData::getInstance(), lowResolutionWarning(), and Physics::two_pi.

Here is the call graph for this function:

◆ checkMap() [2/2]

void Fieldmap::checkMap ( unsigned int accuracy,
std::pair< double, double > fieldDimensions,
double deltaZ,
const std::vector< double > & fourierCoefficients,
gsl_spline * splineCoefficients,
gsl_interp_accel * splineAccelerator )
protectedinherited

Definition at line 413 of file Fieldmap.cpp.

References checkMap().

Referenced by checkMap(), checkMap(), FM1DDynamic_fast::prepareForMapCheck(), FM1DElectroStatic_fast::prepareForMapCheck(), FM1DMagnetoStatic_fast::prepareForMapCheck(), Astra1DDynamic_fast::readMap(), Astra1DElectroStatic_fast::readMap(), and Astra1DMagnetoStatic_fast::readMap().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ clearDictionary()

void Fieldmap::clearDictionary ( )
staticinherited

Definition at line 237 of file Fieldmap.cpp.

References clearDictionary(), and FieldmapDictionary.

Referenced by clearDictionary().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ computeFieldDerivatives()

void FM1DDynamic_fast::computeFieldDerivatives ( std::vector< double > fourierCoefs,
double onAxisFieldP[],
double onAxisFieldPP[],
double onAxisFieldPPP[] )
private

Definition at line 149 of file FM1DDynamic_fast.cpp.

References accuracy_m, computeFieldDerivatives(), deltaZ_m, length_m, numberOfGridPoints_m, Physics::pi, and Physics::two_pi.

Referenced by computeFieldDerivatives(), and readMap().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ computeFieldOffAxis()

void FM1DDynamic_fast::computeFieldOffAxis ( const Vector_t< double, 3 > & R,
Vector_t< double, 3 > & E,
Vector_t< double, 3 > & B,
std::vector< double > fieldComponents ) const
private

Definition at line 183 of file FM1DDynamic_fast.cpp.

References computeFieldOffAxis(), frequency_m, and twoPiOverLambdaSq_m.

Referenced by computeFieldOffAxis(), and getFieldstrength().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ computeFieldOnAxis()

void FM1DDynamic_fast::computeFieldOnAxis ( double z,
std::vector< double > & fieldComponents ) const
private

Definition at line 205 of file FM1DDynamic_fast.cpp.

References computeFieldOnAxis(), onAxisFieldAccel_m, onAxisFieldInterpolants_m, onAxisFieldPAccel_m, onAxisFieldPInterpolants_m, onAxisFieldPPAccel_m, onAxisFieldPPInterpolants_m, onAxisFieldPPPAccel_m, and onAxisFieldPPPInterpolants_m.

Referenced by computeFieldOnAxis(), and getFieldstrength().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ computeFourierCoefficients()

std::vector< double > FM1DDynamic_fast::computeFourierCoefficients ( double fieldData[])
private

Definition at line 214 of file FM1DDynamic_fast.cpp.

References accuracy_m, computeFourierCoefficients(), and numberOfGridPoints_m.

Referenced by computeFourierCoefficients(), and readMap().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ computeInterpolationVectors()

void FM1DDynamic_fast::computeInterpolationVectors ( double onAxisFieldP[],
double onAxisFieldPP[],
double onAxisFieldPPP[] )
private

Definition at line 241 of file FM1DDynamic_fast.cpp.

References computeInterpolationVectors(), deltaZ_m, numberOfGridPoints_m, onAxisField_m, onAxisFieldAccel_m, onAxisFieldInterpolants_m, onAxisFieldPAccel_m, onAxisFieldPInterpolants_m, onAxisFieldPPAccel_m, onAxisFieldPPInterpolants_m, onAxisFieldPPPAccel_m, and onAxisFieldPPPInterpolants_m.

Referenced by computeInterpolationVectors(), and readMap().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ convertHeaderData()

void FM1DDynamic_fast::convertHeaderData ( )
private

Definition at line 264 of file FM1DDynamic_fast.cpp.

References Physics::c, Units::cm2m, convertHeaderData(), frequency_m, Units::MHz2Hz, rBegin_m, rEnd_m, Physics::two_pi, twoPiOverLambdaSq_m, zBegin_m, and zEnd_m.

Referenced by convertHeaderData(), and FM1DDynamic_fast().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ deleteFieldmap()

void Fieldmap::deleteFieldmap ( std::string Filename)
staticinherited

Definition at line 233 of file Fieldmap.cpp.

References deleteFieldmap(), and freeMap().

Referenced by deleteFieldmap().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ disableFieldmapWarning()

◆ exceedingValuesWarning()

void Fieldmap::exceedingValuesWarning ( )
protectedinherited

Definition at line 559 of file Fieldmap.cpp.

References exceedingValuesWarning(), Filename_m, and lines_read_m.

Referenced by exceedingValuesWarning(), and interpreteEOF().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ freeMap() [1/2]

void Fieldmap::freeMap ( std::string Filename)
staticinherited

Definition at line 394 of file Fieldmap.cpp.

References FieldmapDictionary, and freeMap().

Referenced by freeMap().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ freeMap() [2/2]

void FM1DDynamic_fast::freeMap ( )
privatevirtual

Implements Fieldmap.

Definition at line 71 of file FM1DDynamic_fast.cpp.

References Fieldmap::Filename_m, freeMap(), onAxisField_m, onAxisFieldAccel_m, onAxisFieldInterpolants_m, onAxisFieldPAccel_m, onAxisFieldPInterpolants_m, onAxisFieldPPAccel_m, onAxisFieldPPInterpolants_m, onAxisFieldPPPAccel_m, onAxisFieldPPPInterpolants_m, and Fieldmap::typeset_msg().

Referenced by freeMap(), and ~FM1DDynamic_fast().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ get1DProfile1EngeCoeffs()

void Fieldmap::get1DProfile1EngeCoeffs ( std::vector< double > & engeCoeffsEntry,
std::vector< double > & engeCoeffsExit )
virtualinherited

Reimplemented in FM1DProfile1.

Definition at line 671 of file Fieldmap.cpp.

References get1DProfile1EngeCoeffs().

Referenced by get1DProfile1EngeCoeffs().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ get1DProfile1EntranceParam()

void Fieldmap::get1DProfile1EntranceParam ( double & entranceParameter1,
double & entranceParameter2,
double & entranceParameter3 )
virtualinherited

Reimplemented in FM1DProfile1.

Definition at line 675 of file Fieldmap.cpp.

References get1DProfile1EntranceParam().

Referenced by get1DProfile1EntranceParam().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ get1DProfile1ExitParam()

void Fieldmap::get1DProfile1ExitParam ( double & exitParameter1,
double & exitParameter2,
double & exitParameter3 )
virtualinherited

Reimplemented in FM1DProfile1.

Definition at line 680 of file Fieldmap.cpp.

References get1DProfile1ExitParam().

Referenced by get1DProfile1ExitParam().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getFieldDerivative()

bool FM1DDynamic_fast::getFieldDerivative ( const Vector_t< double, 3 > & R,
Vector_t< double, 3 > & E,
Vector_t< double, 3 > & B,
const DiffDirection & dir ) const
virtual

Implements Fieldmap.

Definition at line 98 of file FM1DDynamic_fast.cpp.

References getFieldDerivative(), onAxisFieldPAccel_m, onAxisFieldPInterpolants_m, and zBegin_m.

Referenced by getFieldDerivative().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getFieldDimensions() [1/2]

void FM1DDynamic_fast::getFieldDimensions ( double & xIni,
double & xFinal,
double & yIni,
double & yFinal,
double & zIni,
double & zFinal ) const
virtual

Implements Fieldmap.

Definition at line 111 of file FM1DDynamic_fast.cpp.

References getFieldDimensions().

Here is the call graph for this function:

◆ getFieldDimensions() [2/2]

void FM1DDynamic_fast::getFieldDimensions ( double & zBegin,
double & zEnd ) const
virtual

Implements Fieldmap.

Definition at line 106 of file FM1DDynamic_fast.cpp.

References getFieldDimensions(), zBegin_m, and zEnd_m.

Referenced by getFieldDimensions(), and getFieldDimensions().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getFieldGap()

double Fieldmap::getFieldGap ( )
virtualinherited

Reimplemented in FM1DProfile1.

Definition at line 684 of file Fieldmap.cpp.

References getFieldGap().

Referenced by getFieldGap().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getFieldmap()

Fieldmap * Fieldmap::getFieldmap ( std::string Filename,
bool fast = false )
staticinherited

Definition at line 54 of file Fieldmap.cpp.

References Fieldmap(), FieldmapDictionary, getFieldmap(), readHeader(), T1DDynamic, T1DElectroStatic, T1DMagnetoStatic, T1DProfile1, T1DProfile2, T2DDynamic, T2DElectroStatic, T2DMagnetoStatic, T3DDynamic, T3DDynamicH5Block, T3DMagnetoStatic, T3DMagnetoStatic_Extended, T3DMagnetoStaticH5Block, TAstraDynamic, TAstraElectroStatic, and TAstraMagnetoStatic.

Referenced by getFieldmap().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getFieldstrength()

bool FM1DDynamic_fast::getFieldstrength ( const Vector_t< double, 3 > & R,
Vector_t< double, 3 > & E,
Vector_t< double, 3 > & B ) const
virtual

Implements Fieldmap.

Definition at line 89 of file FM1DDynamic_fast.cpp.

References computeFieldOffAxis(), computeFieldOnAxis(), getFieldstrength(), and zBegin_m.

Referenced by getFieldstrength().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getFrequency()

double FM1DDynamic_fast::getFrequency ( ) const
virtual

Implements Fieldmap.

Definition at line 124 of file FM1DDynamic_fast.cpp.

References frequency_m, and getFrequency().

Referenced by getFrequency().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getInfo()

void FM1DDynamic_fast::getInfo ( Inform * msg)
virtual

Implements Fieldmap.

Definition at line 119 of file FM1DDynamic_fast.cpp.

References Fieldmap::Filename_m, getInfo(), zBegin_m, and zEnd_m.

Referenced by getInfo().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getLine() [1/2]

void Fieldmap::getLine ( std::ifstream & in,
int & lines_read,
std::string & buffer )
staticprotectedinherited

Definition at line 494 of file Fieldmap.cpp.

References alpha_numeric, buffer_m, getLine(), and READ_BUFFER_LENGTH.

Here is the call graph for this function:

◆ getLine() [2/2]

void Fieldmap::getLine ( std::ifstream & in,
std::string & buffer )
inlineprotectedinherited

◆ getListFieldmapNames()

std::vector< std::string > Fieldmap::getListFieldmapNames ( )
staticinherited

Definition at line 224 of file Fieldmap.cpp.

References FieldmapDictionary, and getListFieldmapNames().

Referenced by getListFieldmapNames().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getOnaxisEz()

void FM1DDynamic_fast::getOnaxisEz ( std::vector< std::pair< double, double > > & eZ)
virtual

Reimplemented from Fieldmap.

Definition at line 132 of file FM1DDynamic_fast.cpp.

References Fieldmap::Filename_m, getOnaxisEz(), numberOfGridPoints_m, readFileData(), scaleField(), and stripFileHeader().

Referenced by getOnaxisEz().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getType()

MapType Fieldmap::getType ( )
inlineinherited

Definition at line 96 of file Fieldmap.h.

References Type.

◆ interpreteEOF()

bool Fieldmap::interpreteEOF ( std::ifstream & in)
protectedinherited

◆ interpretLine() [1/6]

template<class S>
bool Fieldmap::interpretLine ( std::ifstream & in,
S & value,
const bool & file_length_known = true )
protectedinherited

Referenced by Astra1DDynamic::Astra1DDynamic(), Astra1DElectroStatic::Astra1DElectroStatic(), Astra1DMagnetoStatic::Astra1DMagnetoStatic(), FM1DDynamic::checkFileData(), FM1DDynamic_fast::checkFileData(), FM1DElectroStatic::checkFileData(), FM1DElectroStatic_fast::checkFileData(), FM1DMagnetoStatic::checkFileData(), FM1DMagnetoStatic_fast::checkFileData(), Astra1D_fast::determineNumSamplingPoints(), FM1DProfile1::FM1DProfile1(), FM1DProfile2::FM1DProfile2(), FM2DDynamic::FM2DDynamic(), FM2DElectroStatic::FM2DElectroStatic(), FM2DMagnetoStatic::FM2DMagnetoStatic(), FM3DDynamic::FM3DDynamic(), FM3DMagnetoStatic::FM3DMagnetoStatic(), FM3DMagnetoStaticExtended::FM3DMagnetoStaticExtended(), Astra1DDynamic::getOnaxisEz(), Astra1DDynamic_fast::getOnaxisEz(), interpretLine(), interpretLine(), interpretLine(), interpretLine(), interpretLine(), Astra1D_fast::readFieldData(), FM1DDynamic::readFileData(), FM1DDynamic::readFileData(), FM1DDynamic_fast::readFileData(), FM1DDynamic_fast::readFileData(), FM1DElectroStatic::readFileData(), FM1DElectroStatic_fast::readFileData(), FM1DMagnetoStatic::readFileData(), FM1DMagnetoStatic_fast::readFileData(), Astra1DDynamic_fast::readFileHeader(), Astra1DElectroStatic_fast::readFileHeader(), Astra1DMagnetoStatic_fast::readFileHeader(), FM1DDynamic::readFileHeader(), FM1DDynamic_fast::readFileHeader(), FM1DElectroStatic::readFileHeader(), FM1DElectroStatic_fast::readFileHeader(), FM1DMagnetoStatic::readFileHeader(), FM1DMagnetoStatic_fast::readFileHeader(), Astra1DDynamic::readMap(), Astra1DElectroStatic::readMap(), Astra1DMagnetoStatic::readMap(), FM1DProfile1::readMap(), FM1DProfile2::readMap(), FM2DDynamic::readMap(), FM2DElectroStatic::readMap(), FM2DMagnetoStatic::readMap(), FM3DDynamic::readMap(), FM3DMagnetoStatic::readMap(), FM3DMagnetoStaticExtended::readMap(), Astra1DDynamic_fast::stripFileHeader(), Astra1DElectroStatic_fast::stripFileHeader(), and Astra1DMagnetoStatic_fast::stripFileHeader().

◆ interpretLine() [2/6]

template<class S>
bool Fieldmap::interpretLine ( std::ifstream & in,
S & value1,
S & value2,
S & value3,
S & value4,
S & value5,
S & value6,
const bool & file_length_known = true )
protectedinherited

Definition at line 141 of file Fieldmap.hpp.

References getLine(), interpretLine(), interpretWarning(), and missingValuesWarning().

Here is the call graph for this function:

◆ interpretLine() [3/6]

template<class S, class T>
bool Fieldmap::interpretLine ( std::ifstream & in,
S & value1,
T & value2,
const bool & file_length_known = true )
protectedinherited

Definition at line 39 of file Fieldmap.hpp.

References getLine(), interpretLine(), interpretWarning(), and missingValuesWarning().

Here is the call graph for this function:

◆ interpretLine() [4/6]

template<class S, class T, class U>
bool Fieldmap::interpretLine ( std::ifstream & in,
S & value1,
T & value2,
U & value3,
const bool & file_length_known = true )
protectedinherited

Definition at line 70 of file Fieldmap.hpp.

References getLine(), interpretLine(), interpretWarning(), and missingValuesWarning().

Here is the call graph for this function:

◆ interpretLine() [5/6]

template<class S, class T, class U, class V>
bool Fieldmap::interpretLine ( std::ifstream & in,
S & value1,
T & value2,
U & value3,
V & value4,
const bool & file_length_known = true )
protectedinherited

Definition at line 104 of file Fieldmap.hpp.

References getLine(), interpretLine(), interpretWarning(), and missingValuesWarning().

Here is the call graph for this function:

◆ interpretLine() [6/6]

template<class T>
bool Fieldmap::interpretLine ( std::ifstream & in,
T & value,
const bool & file_length_known )
inherited

Definition at line 12 of file Fieldmap.hpp.

References getLine(), interpretLine(), interpretWarning(), and missingValuesWarning().

Here is the call graph for this function:

◆ interpretWarning()

void Fieldmap::interpretWarning ( const std::ios_base::iostate & state,
const bool & read_all,
const std::string & error_msg,
const std::string & found )
protectedinherited

Definition at line 532 of file Fieldmap.cpp.

References Filename_m, interpretWarning(), and lines_read_m.

Referenced by interpretLine(), interpretLine(), interpretLine(), interpretLine(), interpretLine(), and interpretWarning().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ isInside()

bool FM1DDynamic_fast::isInside ( const Vector_t< double, 3 > & r) const
inlinevirtual

Reimplemented from Fieldmap.

Definition at line 79 of file FM1DDynamic_fast.h.

References isInside(), zBegin_m, and zEnd_m.

Referenced by isInside().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ lowResolutionWarning()

void Fieldmap::lowResolutionWarning ( double squareError,
double maxError )
protectedinherited

Definition at line 583 of file Fieldmap.cpp.

References Filename_m, OpalData::getAuxiliaryOutputDirectory(), OpalData::getInstance(), lowResolutionWarning(), and typeset_msg().

Referenced by checkMap(), and lowResolutionWarning().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ missingValuesWarning()

void Fieldmap::missingValuesWarning ( )
protectedinherited

Definition at line 550 of file Fieldmap.cpp.

References Filename_m, lines_read_m, and missingValuesWarning().

Referenced by interpretLine(), interpretLine(), interpretLine(), interpretLine(), interpretLine(), and missingValuesWarning().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ noFieldmapWarning()

void Fieldmap::noFieldmapWarning ( )
protectedinherited

Definition at line 576 of file Fieldmap.cpp.

References Filename_m, and noFieldmapWarning().

Referenced by Astra1DDynamic_fast::Astra1DDynamic_fast(), Astra1DElectroStatic_fast::Astra1DElectroStatic_fast(), Astra1DMagnetoStatic_fast::Astra1DMagnetoStatic_fast(), FM1DDynamic::FM1DDynamic(), FM1DDynamic_fast::FM1DDynamic_fast(), FM1DElectroStatic::FM1DElectroStatic(), FM1DElectroStatic_fast::FM1DElectroStatic_fast(), FM1DMagnetoStatic::FM1DMagnetoStatic(), FM1DMagnetoStatic_fast::FM1DMagnetoStatic_fast(), FM1DProfile1::FM1DProfile1(), FM1DProfile2::FM1DProfile2(), FM3DDynamic::FM3DDynamic(), and noFieldmapWarning().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ normalizeField()

void FM1DDynamic_fast::normalizeField ( double maxEz,
std::vector< double > & fourierCoefs )
private

Definition at line 277 of file FM1DDynamic_fast.cpp.

References normalizeField(), numberOfGridPoints_m, onAxisField_m, and Units::Vpm2MVpm.

Referenced by normalizeField(), and readMap().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ prepareForMapCheck()

void FM1DDynamic_fast::prepareForMapCheck ( std::vector< double > & fourierCoefs)
private

Definition at line 369 of file FM1DDynamic_fast.cpp.

References accuracy_m, Fieldmap::checkMap(), deltaZ_m, length_m, numberOfGridPoints_m, onAxisFieldAccel_m, onAxisFieldInterpolants_m, and prepareForMapCheck().

Referenced by prepareForMapCheck(), and readMap().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ readFileData() [1/2]

double FM1DDynamic_fast::readFileData ( std::ifstream & fieldFile,
double fieldData[] )
private

Definition at line 286 of file FM1DDynamic_fast.cpp.

References Fieldmap::interpretLine(), Fieldmap::normalize_m, numberOfGridPoints_m, and readFileData().

Referenced by getOnaxisEz(), readFileData(), readFileData(), and readMap().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ readFileData() [2/2]

double FM1DDynamic_fast::readFileData ( std::ifstream & fieldFile,
std::vector< std::pair< double, double > > & eZ )
private

Definition at line 300 of file FM1DDynamic_fast.cpp.

References Fieldmap::interpretLine(), Fieldmap::normalize_m, numberOfGridPoints_m, readFileData(), zBegin_m, and zEnd_m.

Here is the call graph for this function:

◆ readFileHeader()

bool FM1DDynamic_fast::readFileHeader ( std::ifstream & fieldFile)
private

Definition at line 317 of file FM1DDynamic_fast.cpp.

References accuracy_m, frequency_m, Fieldmap::interpretLine(), Fieldmap::normalize_m, numberOfGridPoints_m, rBegin_m, readFileHeader(), rEnd_m, Util::toUpper(), zBegin_m, and zEnd_m.

Referenced by FM1DDynamic_fast(), and readFileHeader().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ readHeader()

MapType Fieldmap::readHeader ( std::string Filename)
staticinherited

Definition at line 246 of file Fieldmap.cpp.

References getLine(), lines_read_m, readHeader(), T1DDynamic, T1DElectroStatic, T1DMagnetoStatic, T1DProfile1, T2DDynamic, T2DElectroStatic, T2DMagnetoStatic, T3DDynamic, T3DDynamicH5Block, T3DElectroStatic, T3DMagnetoStatic, T3DMagnetoStatic_Extended, T3DMagnetoStaticH5Block, TAstraDynamic, TAstraElectroStatic, TAstraMagnetoStatic, and UNKNOWN.

Referenced by getFieldmap(), and readHeader().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ readMap() [1/2]

void Fieldmap::readMap ( std::string Filename)
staticinherited

Definition at line 384 of file Fieldmap.cpp.

References FieldmapDictionary, and readMap().

Referenced by readMap().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ readMap() [2/2]

void FM1DDynamic_fast::readMap ( )
privatevirtual

Implements Fieldmap.

Definition at line 43 of file FM1DDynamic_fast.cpp.

References computeFieldDerivatives(), computeFourierCoefficients(), computeInterpolationVectors(), Fieldmap::Filename_m, normalizeField(), numberOfGridPoints_m, onAxisField_m, prepareForMapCheck(), readFileData(), readMap(), stripFileHeader(), and Fieldmap::typeset_msg().

Referenced by readMap().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ scaleField()

void FM1DDynamic_fast::scaleField ( double maxEz,
std::vector< std::pair< double, double > > & eZ )
private

Definition at line 352 of file FM1DDynamic_fast.cpp.

References Fieldmap::normalize_m, numberOfGridPoints_m, and scaleField().

Referenced by getOnaxisEz(), and scaleField().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setEdgeConstants()

void Fieldmap::setEdgeConstants ( const double & bendAngle,
const double & entranceAngle,
const double & exitAngle )
virtualinherited

Reimplemented in FM1DProfile2.

Definition at line 489 of file Fieldmap.cpp.

References setEdgeConstants().

Referenced by setEdgeConstants().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setFieldGap()

void Fieldmap::setFieldGap ( double gap)
virtualinherited

Reimplemented in FM1DProfile1.

Definition at line 688 of file Fieldmap.cpp.

References setFieldGap().

Referenced by setFieldGap().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setFieldLength()

void Fieldmap::setFieldLength ( const double & )
virtualinherited

Definition at line 492 of file Fieldmap.cpp.

References setFieldLength().

Referenced by setFieldLength().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setFrequency()

void FM1DDynamic_fast::setFrequency ( double freq)
virtual

Implements Fieldmap.

Definition at line 128 of file FM1DDynamic_fast.cpp.

References frequency_m, and setFrequency().

Referenced by setFrequency().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ stripFileHeader()

void FM1DDynamic_fast::stripFileHeader ( std::ifstream & fieldFile)
private

Definition at line 360 of file FM1DDynamic_fast.cpp.

References Fieldmap::getLine(), and stripFileHeader().

Referenced by getOnaxisEz(), readMap(), and stripFileHeader().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ swap()

void FM1DDynamic_fast::swap ( )
virtual

Implements Fieldmap.

Definition at line 116 of file FM1DDynamic_fast.cpp.

References swap().

Referenced by swap().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ typeset_msg()

std::string Fieldmap::typeset_msg ( const std::string & msg,
const std::string & title )
staticinherited

Definition at line 607 of file Fieldmap.cpp.

References typeset_msg().

Referenced by FMDummy::FMDummy(), Astra1D_fast::freeMap(), Astra1DDynamic::freeMap(), Astra1DElectroStatic::freeMap(), Astra1DMagnetoStatic::freeMap(), FM1DDynamic::freeMap(), FM1DDynamic_fast::freeMap(), FM1DElectroStatic::freeMap(), FM1DElectroStatic_fast::freeMap(), FM1DMagnetoStatic::freeMap(), FM1DMagnetoStatic_fast::freeMap(), FM1DProfile2::freeMap(), FM2DDynamic::freeMap(), FM2DElectroStatic::freeMap(), FM2DMagnetoStatic::freeMap(), FM3DDynamic::freeMap(), FM3DH5Block::freeMap(), FM3DH5Block_nonscale::freeMap(), FM3DMagnetoStatic::freeMap(), FM3DMagnetoStaticExtended::freeMap(), FM3DMagnetoStaticH5Block::freeMap(), lowResolutionWarning(), Astra1DDynamic::readMap(), Astra1DDynamic_fast::readMap(), Astra1DElectroStatic::readMap(), Astra1DElectroStatic_fast::readMap(), Astra1DMagnetoStatic::readMap(), Astra1DMagnetoStatic_fast::readMap(), FM1DDynamic::readMap(), FM1DDynamic_fast::readMap(), FM1DElectroStatic::readMap(), FM1DElectroStatic_fast::readMap(), FM1DMagnetoStatic::readMap(), FM1DMagnetoStatic_fast::readMap(), FM1DProfile1::readMap(), FM1DProfile2::readMap(), FM2DDynamic::readMap(), FM2DElectroStatic::readMap(), FM2DMagnetoStatic::readMap(), FM3DDynamic::readMap(), FM3DH5Block::readMap(), FM3DH5Block_nonscale::readMap(), FM3DMagnetoStatic::readMap(), FM3DMagnetoStaticExtended::readMap(), FM3DMagnetoStaticH5Block::readMap(), and typeset_msg().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ write3DField()

void Fieldmap::write3DField ( unsigned int nx,
unsigned int ny,
unsigned int nz,
const std::pair< double, double > & xrange,
const std::pair< double, double > & yrange,
const std::pair< double, double > & zrange,
const std::vector< Vector_t< double, 3 > > & ef,
const std::vector< Vector_t< double, 3 > > & bf )
protectedinherited

Definition at line 691 of file Fieldmap.cpp.

References Util::combineFilePath(), Filename_m, OpalData::getAuxiliaryOutputDirectory(), OpalData::getInstance(), and write3DField().

Referenced by FM3DDynamic::readMap(), and write3DField().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Fieldmap

friend class Fieldmap
friend

Definition at line 76 of file FM1DDynamic_fast.h.

References Fieldmap.

Referenced by Fieldmap, and FM1DDynamic_fast().

Member Data Documentation

◆ accuracy_m

unsigned int FM1DDynamic_fast::accuracy_m
private

◆ alpha_numeric

std::string Fieldmap::alpha_numeric
staticprivateinherited

Definition at line 182 of file Fieldmap.h.

Referenced by getLine(), and interpreteEOF().

◆ buffer_m

char Fieldmap::buffer_m
staticprivateinherited

Definition at line 181 of file Fieldmap.h.

Referenced by getLine(), and interpreteEOF().

◆ deltaZ_m

double FM1DDynamic_fast::deltaZ_m
private

Number of grid points in field input file.

Definition at line 61 of file FM1DDynamic_fast.h.

Referenced by computeFieldDerivatives(), computeInterpolationVectors(), FM1DDynamic_fast(), and prepareForMapCheck().

◆ FieldmapDictionary

std::map< std::string, Fieldmap::FieldmapDescription > Fieldmap::FieldmapDictionary
staticprivateinherited
Initial value:
=
std::map<std::string, Fieldmap::FieldmapDescription>()

Definition at line 194 of file Fieldmap.h.

Referenced by clearDictionary(), freeMap(), getFieldmap(), getListFieldmapNames(), and readMap().

◆ Filename_m

std::string Fieldmap::Filename_m
protectedinherited

Definition at line 120 of file Fieldmap.h.

Referenced by Astra1DDynamic::Astra1DDynamic(), Astra1DDynamic_fast::Astra1DDynamic_fast(), Astra1DElectroStatic::Astra1DElectroStatic(), Astra1DElectroStatic_fast::Astra1DElectroStatic_fast(), Astra1DMagnetoStatic::Astra1DMagnetoStatic(), Astra1DMagnetoStatic_fast::Astra1DMagnetoStatic_fast(), checkMap(), FM3DH5BlockBase::closeFile(), disableFieldmapWarning(), exceedingValuesWarning(), Fieldmap(), FM1DDynamic::FM1DDynamic(), FM1DDynamic_fast::FM1DDynamic_fast(), FM1DElectroStatic::FM1DElectroStatic(), FM1DElectroStatic_fast::FM1DElectroStatic_fast(), FM1DMagnetoStatic::FM1DMagnetoStatic(), FM1DMagnetoStatic_fast::FM1DMagnetoStatic_fast(), FM1DProfile1::FM1DProfile1(), FM1DProfile2::FM1DProfile2(), FM2DDynamic::FM2DDynamic(), FM2DElectroStatic::FM2DElectroStatic(), FM2DMagnetoStatic::FM2DMagnetoStatic(), FM3DDynamic::FM3DDynamic(), FM3DMagnetoStatic::FM3DMagnetoStatic(), FM3DMagnetoStaticExtended::FM3DMagnetoStaticExtended(), FMDummy::FMDummy(), Astra1D_fast::freeMap(), Astra1DDynamic::freeMap(), Astra1DElectroStatic::freeMap(), Astra1DMagnetoStatic::freeMap(), FM1DDynamic::freeMap(), FM1DDynamic_fast::freeMap(), FM1DElectroStatic::freeMap(), FM1DElectroStatic_fast::freeMap(), FM1DMagnetoStatic::freeMap(), FM1DMagnetoStatic_fast::freeMap(), FM1DProfile2::freeMap(), FM2DDynamic::freeMap(), FM2DElectroStatic::freeMap(), FM2DMagnetoStatic::freeMap(), FM3DDynamic::freeMap(), FM3DH5Block::freeMap(), FM3DH5Block_nonscale::freeMap(), FM3DMagnetoStatic::freeMap(), FM3DMagnetoStaticExtended::freeMap(), FM3DMagnetoStaticH5Block::freeMap(), FM3DH5BlockBase::getFieldInfo(), Astra1DDynamic::getInfo(), Astra1DDynamic_fast::getInfo(), Astra1DElectroStatic::getInfo(), Astra1DElectroStatic_fast::getInfo(), Astra1DMagnetoStatic::getInfo(), Astra1DMagnetoStatic_fast::getInfo(), FM1DDynamic::getInfo(), FM1DDynamic_fast::getInfo(), FM1DElectroStatic::getInfo(), FM1DElectroStatic_fast::getInfo(), FM1DMagnetoStatic::getInfo(), FM1DMagnetoStatic_fast::getInfo(), FM1DProfile1::getInfo(), FM1DProfile2::getInfo(), FM2DDynamic::getInfo(), FM2DElectroStatic::getInfo(), FM2DMagnetoStatic::getInfo(), FM3DDynamic::getInfo(), FM3DH5BlockBase::getInfo(), FM3DMagnetoStatic::getInfo(), FM3DMagnetoStaticExtended::getInfo(), FM3DH5BlockBase::getNumSteps(), Astra1DDynamic::getOnaxisEz(), Astra1DDynamic_fast::getOnaxisEz(), FM1DDynamic::getOnaxisEz(), FM1DDynamic_fast::getOnaxisEz(), FM3DDynamic::getOnaxisEz(), FM3DH5BlockBase::getResonanceFrequency(), interpretWarning(), lowResolutionWarning(), missingValuesWarning(), noFieldmapWarning(), FM3DH5BlockBase::readField(), Astra1DDynamic::readMap(), Astra1DDynamic_fast::readMap(), Astra1DElectroStatic::readMap(), Astra1DElectroStatic_fast::readMap(), Astra1DMagnetoStatic::readMap(), Astra1DMagnetoStatic_fast::readMap(), FM1DDynamic::readMap(), FM1DDynamic_fast::readMap(), FM1DElectroStatic::readMap(), FM1DElectroStatic_fast::readMap(), FM1DMagnetoStatic::readMap(), FM1DMagnetoStatic_fast::readMap(), FM1DProfile1::readMap(), FM1DProfile2::readMap(), FM2DDynamic::readMap(), FM2DElectroStatic::readMap(), FM2DMagnetoStatic::readMap(), FM3DDynamic::readMap(), FM3DH5Block::readMap(), FM3DH5Block_nonscale::readMap(), FM3DMagnetoStatic::readMap(), FM3DMagnetoStaticExtended::readMap(), FM3DMagnetoStaticH5Block::readMap(), FM3DH5BlockBase::setStep(), and write3DField().

◆ frequency_m

double FM1DDynamic_fast::frequency_m
private

◆ length_m

double FM1DDynamic_fast::length_m
private

Longitudinal end of field.

Definition at line 59 of file FM1DDynamic_fast.h.

Referenced by computeFieldDerivatives(), FM1DDynamic_fast(), and prepareForMapCheck().

◆ lines_read_m

◆ normalize_m

◆ numberOfGridPoints_m

◆ onAxisField_m

double* FM1DDynamic_fast::onAxisField_m
private

◆ onAxisFieldAccel_m

gsl_interp_accel* FM1DDynamic_fast::onAxisFieldAccel_m
private

On axis field third derivative interpolation structure.

Corresponding interpolation evaluation accelerators.

Definition at line 71 of file FM1DDynamic_fast.h.

Referenced by computeFieldOnAxis(), computeInterpolationVectors(), freeMap(), and prepareForMapCheck().

◆ onAxisFieldInterpolants_m

gsl_spline* FM1DDynamic_fast::onAxisFieldInterpolants_m
private

On axis field data.

Definition at line 65 of file FM1DDynamic_fast.h.

Referenced by computeFieldOnAxis(), computeInterpolationVectors(), freeMap(), and prepareForMapCheck().

◆ onAxisFieldPAccel_m

gsl_interp_accel* FM1DDynamic_fast::onAxisFieldPAccel_m
private

◆ onAxisFieldPInterpolants_m

gsl_spline* FM1DDynamic_fast::onAxisFieldPInterpolants_m
private

On axis field interpolation structure.

Definition at line 66 of file FM1DDynamic_fast.h.

Referenced by computeFieldOnAxis(), computeInterpolationVectors(), freeMap(), and getFieldDerivative().

◆ onAxisFieldPPAccel_m

gsl_interp_accel* FM1DDynamic_fast::onAxisFieldPPAccel_m
private

Definition at line 73 of file FM1DDynamic_fast.h.

Referenced by computeFieldOnAxis(), computeInterpolationVectors(), and freeMap().

◆ onAxisFieldPPInterpolants_m

gsl_spline* FM1DDynamic_fast::onAxisFieldPPInterpolants_m
private

On axis field first derivative interpolation structure.

Definition at line 67 of file FM1DDynamic_fast.h.

Referenced by computeFieldOnAxis(), computeInterpolationVectors(), and freeMap().

◆ onAxisFieldPPPAccel_m

gsl_interp_accel* FM1DDynamic_fast::onAxisFieldPPPAccel_m
private

Definition at line 74 of file FM1DDynamic_fast.h.

Referenced by computeFieldOnAxis(), computeInterpolationVectors(), and freeMap().

◆ onAxisFieldPPPInterpolants_m

gsl_spline* FM1DDynamic_fast::onAxisFieldPPPInterpolants_m
private

On axis field second derivative interpolation structure.

Definition at line 68 of file FM1DDynamic_fast.h.

Referenced by computeFieldOnAxis(), computeInterpolationVectors(), and freeMap().

◆ rBegin_m

double FM1DDynamic_fast::rBegin_m
private

2 Pi divided by the field RF wavelength squared.

Definition at line 55 of file FM1DDynamic_fast.h.

Referenced by convertHeaderData(), and readFileHeader().

◆ rEnd_m

double FM1DDynamic_fast::rEnd_m
private

Minimum radius of field.

Definition at line 56 of file FM1DDynamic_fast.h.

Referenced by convertHeaderData(), and readFileHeader().

◆ twoPiOverLambdaSq_m

double FM1DDynamic_fast::twoPiOverLambdaSq_m
private

Field angular frequency (Hz).

Definition at line 53 of file FM1DDynamic_fast.h.

Referenced by computeFieldOffAxis(), and convertHeaderData().

◆ Type

◆ zBegin_m

double FM1DDynamic_fast::zBegin_m
private

◆ zEnd_m

double FM1DDynamic_fast::zEnd_m
private

Longitudinal start of field.

Definition at line 58 of file FM1DDynamic_fast.h.

Referenced by convertHeaderData(), FM1DDynamic_fast(), getFieldDimensions(), getInfo(), isInside(), readFileData(), and readFileHeader().


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