OPALX (Object Oriented Parallel Accelerator Library for Exascale) MINIorX
OPALX
Astra1DElectroStatic Class Reference

#include <Astra1DElectroStatic.h>

Inheritance diagram for Astra1DElectroStatic:
Inheritance graph
Collaboration diagram for Astra1DElectroStatic:
Collaboration graph

Public Member Functions

virtual bool getFieldstrength (const Vector_t< double, 3 > &R, Vector_t< double, 3 > &E, Vector_t< double, 3 > &B) 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 bool getFieldDerivative (const Vector_t< double, 3 > &R, Vector_t< double, 3 > &E, Vector_t< double, 3 > &B, const DiffDirection &dir) const
 
virtual void swap ()
 
virtual void getInfo (Inform *)
 
virtual double getFrequency () const
 
virtual void setFrequency (double freq)
 
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 ()
 
virtual void getOnaxisEz (std::vector< std::pair< double, double > > &onaxis)
 
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

 Astra1DElectroStatic (std::string aFilename)
 
 ~Astra1DElectroStatic ()
 
virtual void readMap ()
 
virtual void freeMap ()
 

Private Attributes

double * FourCoefs_m
 
double zbegin_m
 
double zend_m
 
double length_m
 
int accuracy_m
 
int num_gridpz_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 Astra1DElectroStatic.h.

Constructor & Destructor Documentation

◆ Astra1DElectroStatic()

Astra1DElectroStatic::Astra1DElectroStatic ( std::string  aFilename)
private

◆ ~Astra1DElectroStatic()

Astra1DElectroStatic::~Astra1DElectroStatic ( )
private

Definition at line 75 of file Astra1DElectroStatic.cpp.

References freeMap().

Here is the call graph for this function:

Member Function Documentation

◆ 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 Util::combineFilePath(), ippl::Comm, Physics::e, end(), endl(), Fieldmap::Filename_m, OpalData::getInstance(), Fieldmap::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

◆ clearDictionary()

void Fieldmap::clearDictionary ( )
staticinherited

Definition at line 237 of file Fieldmap.cpp.

References Fieldmap::FieldmapDictionary.

Referenced by main().

◆ deleteFieldmap()

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

Definition at line 233 of file Fieldmap.cpp.

References Fieldmap::freeMap().

Here is the call graph for this function:

◆ disableFieldmapWarning()

◆ exceedingValuesWarning()

void Fieldmap::exceedingValuesWarning ( )
protectedinherited

Definition at line 559 of file Fieldmap.cpp.

References Fieldmap::Filename_m, and Fieldmap::lines_read_m.

Referenced by Fieldmap::interpreteEOF().

◆ freeMap() [1/2]

void Astra1DElectroStatic::freeMap ( )
privatevirtual

Implements Fieldmap.

Definition at line 165 of file Astra1DElectroStatic.cpp.

References endl(), Fieldmap::Filename_m, FourCoefs_m, ippl::Info, level3(), and Fieldmap::typeset_msg().

Referenced by ~Astra1DElectroStatic().

Here is the call graph for this function:

◆ freeMap() [2/2]

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

Definition at line 394 of file Fieldmap.cpp.

References Fieldmap::FieldmapDictionary.

◆ get1DProfile1EngeCoeffs()

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

Reimplemented in FM1DProfile1.

Definition at line 671 of file Fieldmap.cpp.

◆ get1DProfile1EntranceParam()

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

Reimplemented in FM1DProfile1.

Definition at line 675 of file Fieldmap.cpp.

◆ get1DProfile1ExitParam()

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

Reimplemented in FM1DProfile1.

Definition at line 680 of file Fieldmap.cpp.

◆ getFieldDerivative()

bool Astra1DElectroStatic::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 210 of file Astra1DElectroStatic.cpp.

◆ getFieldDimensions() [1/2]

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

Implements Fieldmap.

Definition at line 221 of file Astra1DElectroStatic.cpp.

◆ getFieldDimensions() [2/2]

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

Implements Fieldmap.

Definition at line 216 of file Astra1DElectroStatic.cpp.

References zbegin_m, and zend_m.

◆ getFieldGap()

double Fieldmap::getFieldGap ( )
virtualinherited

Reimplemented in FM1DProfile1.

Definition at line 684 of file Fieldmap.cpp.

◆ getFieldmap()

◆ getFieldstrength()

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

Implements Fieldmap.

Definition at line 174 of file Astra1DElectroStatic.cpp.

References accuracy_m, FourCoefs_m, length_m, Physics::pi, Physics::two_pi, and zbegin_m.

◆ getFrequency()

double Astra1DElectroStatic::getFrequency ( ) const
virtual

Implements Fieldmap.

Definition at line 234 of file Astra1DElectroStatic.cpp.

◆ getInfo()

void Astra1DElectroStatic::getInfo ( Inform msg)
virtual

Implements Fieldmap.

Definition at line 229 of file Astra1DElectroStatic.cpp.

References endl(), Fieldmap::Filename_m, zbegin_m, and zend_m.

Here is the call 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 Fieldmap::alpha_numeric, Fieldmap::buffer_m, and READ_BUFFER_LENGTH.

◆ getLine() [2/2]

◆ getListFieldmapNames()

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

Definition at line 224 of file Fieldmap.cpp.

References Fieldmap::FieldmapDictionary.

◆ getOnaxisEz()

void Fieldmap::getOnaxisEz ( std::vector< std::pair< double, double > > &  onaxis)
virtualinherited

◆ getType()

MapType Fieldmap::getType ( )
inlineinherited

Definition at line 96 of file Fieldmap.h.

References Fieldmap::Type.

◆ interpreteEOF()

◆ interpretLine() [1/6]

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

◆ 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 Fieldmap::getLine(), Fieldmap::interpretWarning(), and Fieldmap::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 Fieldmap::getLine(), Fieldmap::interpretWarning(), and Fieldmap::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 Fieldmap::getLine(), Fieldmap::interpretWarning(), and Fieldmap::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 Fieldmap::getLine(), Fieldmap::interpretWarning(), and Fieldmap::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 Fieldmap::getLine(), Fieldmap::interpretWarning(), and Fieldmap::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 endl(), Fieldmap::Filename_m, and Fieldmap::lines_read_m.

Referenced by Fieldmap::interpretLine().

Here is the call graph for this function:

◆ isInside()

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

Reimplemented from Fieldmap.

Definition at line 38 of file Astra1DElectroStatic.h.

References zbegin_m, and zend_m.

◆ lowResolutionWarning()

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

Definition at line 583 of file Fieldmap.cpp.

References ippl::Comm, endl(), ippl::Error, Fieldmap::Filename_m, OpalData::getAuxiliaryOutputDirectory(), OpalData::getInstance(), and Fieldmap::typeset_msg().

Referenced by Fieldmap::checkMap().

Here is the call graph for this function:

◆ missingValuesWarning()

void Fieldmap::missingValuesWarning ( )
protectedinherited

Definition at line 550 of file Fieldmap.cpp.

References Fieldmap::Filename_m, and Fieldmap::lines_read_m.

Referenced by Fieldmap::interpretLine().

◆ noFieldmapWarning()

◆ readHeader()

◆ readMap() [1/2]

void Astra1DElectroStatic::readMap ( )
privatevirtual

◆ readMap() [2/2]

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

Definition at line 384 of file Fieldmap.cpp.

References Fieldmap::FieldmapDictionary.

◆ 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.

◆ setFieldGap()

void Fieldmap::setFieldGap ( double  gap)
virtualinherited

Reimplemented in FM1DProfile1.

Definition at line 688 of file Fieldmap.cpp.

◆ setFieldLength()

void Fieldmap::setFieldLength ( const double &  )
virtualinherited

Definition at line 492 of file Fieldmap.cpp.

◆ setFrequency()

void Astra1DElectroStatic::setFrequency ( double  freq)
virtual

Implements Fieldmap.

Definition at line 238 of file Astra1DElectroStatic.cpp.

◆ swap()

void Astra1DElectroStatic::swap ( )
virtual

Implements Fieldmap.

Definition at line 226 of file Astra1DElectroStatic.cpp.

◆ typeset_msg()

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

◆ 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(), ippl::Comm, endl(), Fieldmap::Filename_m, OpalData::getAuxiliaryOutputDirectory(), OpalData::getInstance(), and PAssert.

Referenced by FM3DDynamic::readMap().

Here is the call graph for this function:

Friends And Related Function Documentation

◆ Fieldmap

friend class Fieldmap
friend

Definition at line 35 of file Astra1DElectroStatic.h.

Member Data Documentation

◆ accuracy_m

int Astra1DElectroStatic::accuracy_m
private

Definition at line 32 of file Astra1DElectroStatic.h.

Referenced by Astra1DElectroStatic(), getFieldstrength(), and readMap().

◆ alpha_numeric

std::string Fieldmap::alpha_numeric
staticprivateinherited

Definition at line 182 of file Fieldmap.h.

Referenced by Fieldmap::getLine(), and Fieldmap::interpreteEOF().

◆ buffer_m

char Fieldmap::buffer_m
staticprivateinherited

Definition at line 181 of file Fieldmap.h.

Referenced by Fieldmap::getLine(), and Fieldmap::interpreteEOF().

◆ 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 Fieldmap::clearDictionary(), Fieldmap::freeMap(), Fieldmap::getFieldmap(), Fieldmap::getListFieldmapNames(), and Fieldmap::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_fast::Astra1DElectroStatic_fast(), Astra1DMagnetoStatic::Astra1DMagnetoStatic(), Astra1DMagnetoStatic_fast::Astra1DMagnetoStatic_fast(), Fieldmap::checkMap(), FM3DH5BlockBase::closeFile(), Fieldmap::disableFieldmapWarning(), Fieldmap::exceedingValuesWarning(), 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(), 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(), 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(), FM1DDynamic::getOnaxisEz(), FM1DDynamic_fast::getOnaxisEz(), Astra1DDynamic::getOnaxisEz(), Astra1DDynamic_fast::getOnaxisEz(), FM3DDynamic::getOnaxisEz(), FM3DH5BlockBase::getResonanceFrequency(), Fieldmap::interpretWarning(), Fieldmap::lowResolutionWarning(), Fieldmap::missingValuesWarning(), Fieldmap::noFieldmapWarning(), FM3DH5BlockBase::readField(), Astra1DDynamic::readMap(), Astra1DDynamic_fast::readMap(), 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 Fieldmap::write3DField().

◆ FourCoefs_m

double* Astra1DElectroStatic::FourCoefs_m
private

Definition at line 26 of file Astra1DElectroStatic.h.

Referenced by freeMap(), getFieldstrength(), and readMap().

◆ length_m

double Astra1DElectroStatic::length_m
private

Definition at line 30 of file Astra1DElectroStatic.h.

Referenced by Astra1DElectroStatic(), and getFieldstrength().

◆ lines_read_m

◆ normalize_m

◆ num_gridpz_m

int Astra1DElectroStatic::num_gridpz_m
private

Definition at line 33 of file Astra1DElectroStatic.h.

Referenced by Astra1DElectroStatic(), and readMap().

◆ Type

◆ zbegin_m

double Astra1DElectroStatic::zbegin_m
private

◆ zend_m

double Astra1DElectroStatic::zend_m
private

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