OPAL (Object Oriented Parallel Accelerator Library)  2021.1.99
OPAL
Public Member Functions | Protected Member Functions | Protected Attributes | Friends | List of all members
Astra1D_fast Class Referenceabstract

#include <Astra1D_fast.h>

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

Public Member Functions

virtual bool getFieldstrength (const Vector_t &R, Vector_t &E, Vector_t &B) const =0
 
virtual bool getFieldDerivative (const Vector_t &R, Vector_t &E, Vector_t &B, const DiffDirection &dir) const =0
 
virtual void getFieldDimensions (double &zBegin, double &zEnd) const =0
 
virtual void getFieldDimensions (double &xIni, double &xFinal, double &yIni, double &yFinal, double &zIni, double &zFinal) const =0
 
virtual void swap ()=0
 
virtual void getInfo (Inform *)=0
 
virtual double getFrequency () const =0
 
virtual void setFrequency (double freq)=0
 
virtual void getOnaxisEz (std::vector< std::pair< double, double > > &F)
 
virtual bool isInside (const Vector_t &r) const
 
- Public Member Functions inherited from Fieldmap
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)
 

Protected Member Functions

 Astra1D_fast (std::string aFilename)
 
virtual ~Astra1D_fast ()
 
virtual void readMap ()
 
virtual void freeMap ()
 
bool determineNumSamplingPoints (std::ifstream &file)
 
double readFieldData (std::ifstream &file)
 
void normalizeFieldData (double maxEz)
 
std::vector< double > getEvenlyDistributedSamplingPoints ()
 
std::vector< double > interpolateFieldData (std::vector< double > &samplingPoints)
 
void computeFieldDerivatives (std::vector< double > &fourierComponents, int accuracy)
 
std::vector< double > computeFourierCoefficients (int accuracy, std::vector< double > &evenSampling)
 
- Protected Member Functions inherited from Fieldmap
 Fieldmap ()=delete
 
 Fieldmap (const std::string &aFilename)
 
virtual ~Fieldmap ()
 
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 > &ef, const std::vector< Vector_t > &bf)
 

Protected Attributes

double * onAxisField_m
 
double * zvals_m
 
gsl_spline * onAxisInterpolants_m [4]
 
gsl_interp_accel * onAxisAccel_m [4]
 
double hz_m
 
double zbegin_m
 
double zend_m
 
double length_m
 
int num_gridpz_m
 
int numHeaderLines_m
 
- Protected Attributes inherited from Fieldmap
MapType Type
 
std::string Filename_m
 
int lines_read_m
 
bool normalize_m
 

Friends

class Fieldmap
 

Additional Inherited Members

- Static Public Member Functions inherited from Fieldmap
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)
 
- Static Protected Member Functions inherited from Fieldmap
static void getLine (std::ifstream &in, int &lines_read, std::string &buffer)
 

Detailed Description

Definition at line 6 of file Astra1D_fast.h.

Constructor & Destructor Documentation

◆ Astra1D_fast()

Astra1D_fast::Astra1D_fast ( std::string  aFilename)
protected

Definition at line 9 of file Astra1D_fast.cpp.

References Fieldmap::normalize_m.

◆ ~Astra1D_fast()

Astra1D_fast::~Astra1D_fast ( )
protectedvirtual

Definition at line 14 of file Astra1D_fast.cpp.

References freeMap().

Here is the call graph for this function:

Member Function Documentation

◆ computeFieldDerivatives()

void Astra1D_fast::computeFieldDerivatives ( std::vector< double > &  fourierComponents,
int  accuracy 
)
protected

◆ computeFourierCoefficients()

std::vector< double > Astra1D_fast::computeFourierCoefficients ( int  accuracy,
std::vector< double > &  evenSampling 
)
protected

Definition at line 120 of file Astra1D_fast.cpp.

References num_gridpz_m, and real().

Referenced by Astra1DDynamic_fast::readMap(), Astra1DElectroStatic_fast::readMap(), and Astra1DMagnetoStatic_fast::readMap().

Here is the call graph for this function:

◆ determineNumSamplingPoints()

bool Astra1D_fast::determineNumSamplingPoints ( std::ifstream &  file)
protected

◆ freeMap()

void Astra1D_fast::freeMap ( )
protectedvirtual

◆ getEvenlyDistributedSamplingPoints()

std::vector< double > Astra1D_fast::getEvenlyDistributedSamplingPoints ( )
protected

◆ getFieldDerivative()

virtual bool Astra1D_fast::getFieldDerivative ( const Vector_t R,
Vector_t E,
Vector_t B,
const DiffDirection dir 
) const
pure virtual

◆ getFieldDimensions() [1/2]

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

◆ getFieldDimensions() [2/2]

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

◆ getFieldstrength()

virtual bool Astra1D_fast::getFieldstrength ( const Vector_t R,
Vector_t E,
Vector_t B 
) const
pure virtual

◆ getFrequency()

virtual double Astra1D_fast::getFrequency ( ) const
pure virtual

◆ getInfo()

virtual void Astra1D_fast::getInfo ( Inform )
pure virtual

◆ getOnaxisEz()

void Astra1D_fast::getOnaxisEz ( std::vector< std::pair< double, double > > &  F)
virtual

Reimplemented from Fieldmap.

Reimplemented in Astra1DDynamic_fast.

Definition at line 37 of file Astra1D_fast.cpp.

◆ interpolateFieldData()

std::vector< double > Astra1D_fast::interpolateFieldData ( std::vector< double > &  samplingPoints)
protected

◆ isInside()

bool Astra1D_fast::isInside ( const Vector_t r) const
inlinevirtual

Reimplemented from Fieldmap.

Definition at line 53 of file Astra1D_fast.h.

References zbegin_m, and zend_m.

◆ normalizeFieldData()

void Astra1D_fast::normalizeFieldData ( double  maxEz)
protected

◆ readFieldData()

double Astra1D_fast::readFieldData ( std::ifstream &  file)
protected

◆ readMap()

void Astra1D_fast::readMap ( )
protectedvirtual

Implements Fieldmap.

Reimplemented in Astra1DMagnetoStatic_fast, Astra1DElectroStatic_fast, and Astra1DDynamic_fast.

Definition at line 18 of file Astra1D_fast.cpp.

◆ setFrequency()

virtual void Astra1D_fast::setFrequency ( double  freq)
pure virtual

◆ swap()

virtual void Astra1D_fast::swap ( )
pure virtual

Friends And Related Function Documentation

◆ Fieldmap

friend class Fieldmap
friend

Definition at line 50 of file Astra1D_fast.h.

Member Data Documentation

◆ hz_m

double Astra1D_fast::hz_m
protected

◆ length_m

double Astra1D_fast::length_m
protected

◆ num_gridpz_m

int Astra1D_fast::num_gridpz_m
protected

◆ numHeaderLines_m

int Astra1D_fast::numHeaderLines_m
protected

◆ onAxisAccel_m

gsl_interp_accel* Astra1D_fast::onAxisAccel_m[4]
protected

◆ onAxisField_m

double* Astra1D_fast::onAxisField_m
protected

◆ onAxisInterpolants_m

gsl_spline* Astra1D_fast::onAxisInterpolants_m[4]
protected

◆ zbegin_m

double Astra1D_fast::zbegin_m
protected

◆ zend_m

double Astra1D_fast::zend_m
protected

◆ zvals_m

double* Astra1D_fast::zvals_m
protected

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