OPALX (Object Oriented Parallel Accelerator Library for Exascal) master (dc2a29eed580)
OPALX
Loading...
Searching...
No Matches
Astra1DMagnetoStatic Class Reference

#include <Astra1DMagnetoStatic.h>

Inheritance diagram for Astra1DMagnetoStatic:
Inheritance graph
Collaboration diagram for Astra1DMagnetoStatic:
Collaboration graph

Public Member Functions

bool getFieldstrength (const Vector_t< double, 3 > &R, Vector_t< double, 3 > &E, Vector_t< double, 3 > &B) const override
 Get the fieldstrength at position R.
 
void getFieldDimensions (double &zBegin, double &zEnd) const override
 Get the longitudinal dimensions of the field.
 
void getFieldDimensions (double &xIni, double &xFinal, double &yIni, double &yFinal, double &zIni, double &zFinal) const override
 Get the full 3D bounding box of the field.
 
bool getFieldDerivative (const Vector_t< double, 3 > &R, Vector_t< double, 3 > &E, Vector_t< double, 3 > &B, const DiffDirection &dir) const override
 Get the derivative of the field at position R.
 
void swap () override
 Swap coordinates (implementation dependent).
 
void getInfo (Inform *msg) override
 Print info about the field map.
 
double getFrequency () const override
 Get the frequency.
 
void setFrequency (double freq) override
 Set the frequency.
 
bool isInside (const Vector_t< double, 3 > &r) const override
 Check if a point is inside the field map.
 
void applyField (std::shared_ptr< ParticleContainer_t > pc, double scale) override
 Apply the FM to all the particles.
 
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)
 Parses a single value of type T from a line in the stream.
 

Static Public Member Functions

template<class ViewType >
static KOKKOS_INLINE_FUNCTION void computeField (const Vector_t< double, 3 > &R, Vector_t< double, 3 > &, Vector_t< double, 3 > &B, const ViewType &FourCoefs, double zbegin, double length, int accuracy)
 
static FieldmapgetFieldmap (std::string Filename, bool fast=false)
 Get a field map instance. Use this factory method to obtain a field map. It checks the cache (FieldmapDictionary) first.
 
static std::vector< std::string > getListFieldmapNames ()
 Get a list of all loaded field map names.
 
static void deleteFieldmap (std::string Filename)
 Delete a specific field map from the cache and memory.
 
static void clearDictionary ()
 Clear the entire field map cache.
 
static MapType readHeader (std::string Filename)
 Read the header of a field map file to determine its type.
 
static void readMap (std::string Filename)
 Trigger the actual reading of the field map data.
 
static void freeMap (std::string Filename)
 Decrease reference count or delete field map if unused.
 
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)
 Parses two values (types S, T) from a line.
 
template<class S , class T , class U >
bool interpretLine (std::ifstream &in, S &value1, T &value2, U &value3, const bool &file_length_known=true)
 Parses three values (types S, T, U) from a line.
 
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)
 Parses four values (types S, T, U, V) from a line.
 
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)
 Parses six values of the same type S from a line.
 
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

 Astra1DMagnetoStatic (const std::string &filename)
 Constructor for 1D magnetostatic field map.
 
 ~Astra1DMagnetoStatic ()
 
void readMap () override
 Pure virtual method to read the map data. Called by the public static readMap().
 
void freeMap () override
 Pure virtual method to free the map data.
 

Private Attributes

Kokkos::DualView< 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 12 of file Astra1DMagnetoStatic.h.

Constructor & Destructor Documentation

◆ Astra1DMagnetoStatic()

Astra1DMagnetoStatic::Astra1DMagnetoStatic ( const std::string &  filename)
private

Constructor for 1D magnetostatic field map.

Parses the fieldmap header and scans the longitudinal on-axis Bz data. The constructor determines:

  • fieldmap type (TAstraMagnetoStatic)
  • Fourier interpolation accuracy (accuracy_m)
  • optional normalization flag (normalize_m)
  • longitudinal field boundaries (zbegin_m, zend_m)
  • number of valid strictly increasing z samples (num_gridpz_m)
  • effective mirrored-periodic interpolation length (length_m)

The actual Fourier coefficients are generated later in readMap().

Definition at line 28 of file Astra1DMagnetoStatic.cpp.

References accuracy_m, Astra1DMagnetoStatic(), Fieldmap::disableFieldmapWarning(), Fieldmap::Filename_m, length_m, Fieldmap::lines_read_m, Fieldmap::noFieldmapWarning(), Fieldmap::normalize_m, num_gridpz_m, TAstraMagnetoStatic, Util::toUpper(), Fieldmap::Type, zbegin_m, and zend_m.

Referenced by Astra1DMagnetoStatic().

Here is the call graph for this function:

◆ ~Astra1DMagnetoStatic()

Astra1DMagnetoStatic::~Astra1DMagnetoStatic ( )
private

Definition at line 105 of file Astra1DMagnetoStatic.cpp.

References freeMap(), and ~Astra1DMagnetoStatic().

Referenced by ~Astra1DMagnetoStatic().

Here is the call graph for this function:

Member Function Documentation

◆ applyField()

void Astra1DMagnetoStatic::applyField ( std::shared_ptr< ParticleContainer_t pc,
double  scale 
)
overridevirtual

Apply the FM to all the particles.

Parameters
pcParticle container

Implements Fieldmap.

Definition at line 267 of file Astra1DMagnetoStatic.cpp.

References accuracy_m, applyField(), computeField(), FourCoefs_m, length_m, zbegin_m, and zend_m.

Referenced by applyField().

Here is the call 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

◆ 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 330 of file Fieldmap.cpp.

References Fieldmap::checkMap().

Referenced by Fieldmap::checkMap(), and Fieldmap::checkMap().

Here is the call graph for this function:

◆ clearDictionary()

void Fieldmap::clearDictionary ( )
staticinherited

Clear the entire field map cache.

Definition at line 160 of file Fieldmap.cpp.

References Fieldmap::clearDictionary(), and Fieldmap::FieldmapDictionary.

Referenced by Fieldmap::clearDictionary().

Here is the call graph for this function:

◆ computeField()

template<class ViewType >
static KOKKOS_INLINE_FUNCTION void Astra1DMagnetoStatic::computeField ( const Vector_t< double, 3 > &  R,
Vector_t< double, 3 > &  ,
Vector_t< double, 3 > &  B,
const ViewType &  FourCoefs,
double  zbegin,
double  length,
int  accuracy 
)
inlinestatic

Definition at line 41 of file Astra1DMagnetoStatic.h.

References Physics::pi, and Physics::two_pi.

Referenced by applyField(), and getFieldstrength().

◆ deleteFieldmap()

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

Delete a specific field map from the cache and memory.

Parameters
FilenameThe filename of the map to delete.

Definition at line 158 of file Fieldmap.cpp.

References Fieldmap::deleteFieldmap(), and Fieldmap::freeMap().

Referenced by Fieldmap::deleteFieldmap().

Here is the call graph for this function:

◆ disableFieldmapWarning()

void Fieldmap::disableFieldmapWarning ( )
protectedinherited

◆ exceedingValuesWarning()

void Fieldmap::exceedingValuesWarning ( )
protectedinherited

Definition at line 479 of file Fieldmap.cpp.

References Fieldmap::exceedingValuesWarning(), Fieldmap::Filename_m, and Fieldmap::lines_read_m.

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

Here is the call graph for this function:

◆ freeMap() [1/2]

void Astra1DMagnetoStatic::freeMap ( )
overrideprivatevirtual

Pure virtual method to free the map data.

Implements Fieldmap.

Definition at line 253 of file Astra1DMagnetoStatic.cpp.

References Fieldmap::Filename_m, FourCoefs_m, and freeMap().

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

Here is the call graph for this function:

◆ freeMap() [2/2]

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

Decrease reference count or delete field map if unused.

Parameters
FilenameThe file to free.

Definition at line 311 of file Fieldmap.cpp.

References Fieldmap::FieldmapDictionary, and Fieldmap::freeMap().

Referenced by Fieldmap::freeMap(), TEST_F(), TEST_F(), TEST_F(), and TEST_F().

Here is the call graph for this function:

◆ get1DProfile1EngeCoeffs()

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

Definition at line 590 of file Fieldmap.cpp.

References Fieldmap::get1DProfile1EngeCoeffs().

Referenced by Fieldmap::get1DProfile1EngeCoeffs().

Here is the call graph for this function:

◆ get1DProfile1EntranceParam()

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

Definition at line 593 of file Fieldmap.cpp.

References Fieldmap::get1DProfile1EntranceParam().

Referenced by Fieldmap::get1DProfile1EntranceParam().

Here is the call graph for this function:

◆ get1DProfile1ExitParam()

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

Definition at line 597 of file Fieldmap.cpp.

References Fieldmap::get1DProfile1ExitParam().

Referenced by Fieldmap::get1DProfile1ExitParam().

Here is the call graph for this function:

◆ getFieldDerivative()

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

Get the derivative of the field at position R.

Parameters
RPosition
EElectric Field
BMagnetic field
Note
Not implemented yet

Implements Fieldmap.

Definition at line 326 of file Astra1DMagnetoStatic.cpp.

References getFieldDerivative().

Referenced by getFieldDerivative().

Here is the call graph for this function:

◆ getFieldDimensions() [1/2]

void Astra1DMagnetoStatic::getFieldDimensions ( double &  xIni,
double &  xFinal,
double &  yIni,
double &  yFinal,
double &  zIni,
double &  zFinal 
) const
overridevirtual

Get the full 3D bounding box of the field.

Parameters
xIniOutput minimum x [m].
xFinalOutput maximum x [m].
yIniOutput minimum y [m].
yFinalOutput maximum y [m].
zIniOutput minimum z [m].
zFinalOutput maximum z [m].

Implements Fieldmap.

Definition at line 337 of file Astra1DMagnetoStatic.cpp.

References getFieldDimensions().

Here is the call graph for this function:

◆ getFieldDimensions() [2/2]

void Astra1DMagnetoStatic::getFieldDimensions ( double &  zBegin,
double &  zEnd 
) const
overridevirtual

Get the longitudinal dimensions of the field.

Parameters
zBeginOutput start of field [m].
zEndOutput end of field [m].

Implements Fieldmap.

Definition at line 332 of file Astra1DMagnetoStatic.cpp.

References getFieldDimensions(), zbegin_m, and zend_m.

Referenced by getFieldDimensions(), and getFieldDimensions().

Here is the call graph for this function:

◆ getFieldGap()

double Fieldmap::getFieldGap ( )
virtualinherited

Definition at line 600 of file Fieldmap.cpp.

References Fieldmap::getFieldGap().

Referenced by Fieldmap::getFieldGap().

Here is the call graph for this function:

◆ getFieldmap()

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

Get a field map instance. Use this factory method to obtain a field map. It checks the cache (FieldmapDictionary) first.

Factory method to obtain a Fieldmap instance.

Parameters
FilenameThe path to the field map file.
fastIf true, load a "fast" version if available (implementation dependent).
Returns
Pointer to the Fieldmap instance.

Checks the FieldmapDictionary cache to see if the file is already loaded. If not, it calls readHeader() to determine the map type, instantiates the corresponding subclass, and adds it to the dictionary.

Parameters
FilenameAbsolute path to the fieldmap file.
fastNot implemented. Previously attempted to load a "fast" version.
Returns
Fieldmap* Pointer to the managed fieldmap instance.

Found matching entry?

Return fieldmap pointer

Determine fieldmap type

Based on type:

  • Create new fieldmap object by parsing the fieldmap file
  • Create new FieldmapDescription object for this fieldmap
  • Insert FieldmapDescription into FieldmapDictionary
  • Return pointer to the fieldmap

Definition at line 72 of file Fieldmap.cpp.

References Fieldmap::FieldmapDictionary, Fieldmap::getFieldmap(), Fieldmap::readHeader(), T2DDynamic, T2DMagnetoStatic, TAstraDynamic, and TAstraMagnetoStatic.

Referenced by Fieldmap::getFieldmap().

Here is the call graph for this function:

◆ getFieldstrength()

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

Get the fieldstrength at position R.

Parameters
RPosition
EElectric Field (unused)
BMagnetic Field
Returns
true if R is outside of the field map, false otherwise.

Implements Fieldmap.

Definition at line 305 of file Astra1DMagnetoStatic.cpp.

References accuracy_m, computeField(), FourCoefs_m, getFieldstrength(), isInside(), length_m, and zbegin_m.

Referenced by getFieldstrength().

Here is the call graph for this function:

◆ getFrequency()

double Astra1DMagnetoStatic::getFrequency ( ) const
overridevirtual

Get the frequency.

Returns
Frequency [MHz].

Implements Fieldmap.

Definition at line 350 of file Astra1DMagnetoStatic.cpp.

References getFrequency().

Referenced by getFrequency().

Here is the call graph for this function:

◆ getInfo()

void Astra1DMagnetoStatic::getInfo ( Inform *  msg)
overridevirtual

Print info about the field map.

Implements Fieldmap.

Definition at line 345 of file Astra1DMagnetoStatic.cpp.

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

Referenced by getInfo().

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 414 of file Fieldmap.cpp.

References Fieldmap::alpha_numeric, Fieldmap::buffer_m, Fieldmap::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

Get a list of all loaded field map names.

Returns
Vector of filenames.

Definition at line 149 of file Fieldmap.cpp.

References Fieldmap::FieldmapDictionary, and Fieldmap::getListFieldmapNames().

Referenced by Fieldmap::getListFieldmapNames().

Here is the call graph for this function:

◆ getOnaxisEz()

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

Reimplemented in Astra1DDynamic, FM2DDynamic, and FakeTWFieldmap.

Definition at line 588 of file Fieldmap.cpp.

References Fieldmap::getOnaxisEz().

Referenced by RFCavity::getAutoPhaseEstimate(), TravelingWave::getAutoPhaseEstimate(), and Fieldmap::getOnaxisEz().

Here is the call graph for this function:

◆ getType()

MapType Fieldmap::getType ( )
inlineinherited

Definition at line 206 of file Fieldmap.h.

References Fieldmap::Type.

Referenced by TEST_F(), TEST_F(), TEST_F(), and TEST_F().

◆ 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

◆ 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

Parses six values of the same type S from a line.

See also
interpretLine<T>

Definition at line 176 of file Fieldmap.hpp.

References Fieldmap::getLine(), Fieldmap::interpretLine(), 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

Parses two values (types S, T) from a line.

See also
interpretLine<T>

Definition at line 55 of file Fieldmap.hpp.

References Fieldmap::getLine(), Fieldmap::interpretLine(), 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

Parses three values (types S, T, U) from a line.

See also
interpretLine<T>

Definition at line 92 of file Fieldmap.hpp.

References Fieldmap::getLine(), Fieldmap::interpretLine(), 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

Parses four values (types S, T, U, V) from a line.

See also
interpretLine<T>

Definition at line 132 of file Fieldmap.hpp.

References Fieldmap::getLine(), Fieldmap::interpretLine(), 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

Parses a single value of type T from a line in the stream.

Reads a line using getLine(), then attempts to extract one value. Validates that the extraction matches the type and that no unexpected data remains on the line.

Parameters
inInput file stream.
valueOutput variable reference.
file_length_knownIf false, EOF is acceptable.
Returns
true if successful, false if EOF (and permitted).

Definition at line 23 of file Fieldmap.hpp.

References Fieldmap::getLine(), Fieldmap::interpretLine(), 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

◆ isInside()

bool Astra1DMagnetoStatic::isInside ( const Vector_t< double, 3 > &  ) const
inlineoverridevirtual

Check if a point is inside the field map.

Implements Fieldmap.

Definition at line 36 of file Astra1DMagnetoStatic.h.

References zbegin_m, and zend_m.

Referenced by getFieldstrength().

◆ lowResolutionWarning()

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

◆ missingValuesWarning()

void Fieldmap::missingValuesWarning ( )
protectedinherited

◆ noFieldmapWarning()

void Fieldmap::noFieldmapWarning ( )
protectedinherited

◆ readHeader()

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

Read the header of a field map file to determine its type.

Determines the fieldmap type.

Parameters
FilenameThe file to check.
Returns
The MapType determined from the file header.
MapType

Definition at line 174 of file Fieldmap.cpp.

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

Referenced by Fieldmap::getFieldmap(), and Fieldmap::readHeader().

Here is the call graph for this function:

◆ readMap() [1/2]

void Astra1DMagnetoStatic::readMap ( )
overrideprivatevirtual

Pure virtual method to read the map data. Called by the public static readMap().

Implements Fieldmap.

Definition at line 107 of file Astra1DMagnetoStatic.cpp.

References accuracy_m, Fieldmap::Filename_m, FourCoefs_m, Fieldmap::getLine(), gsl_interp_accel_alloc(), gsl_interp_accel_free(), gsl_interp_cspline, gsl_spline_alloc(), gsl_spline_eval(), gsl_spline_free(), gsl_spline_init(), Fieldmap::normalize_m, num_gridpz_m, readMap(), Physics::two_pi, zbegin_m, and zend_m.

Referenced by readMap().

Here is the call graph for this function:

◆ readMap() [2/2]

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

Trigger the actual reading of the field map data.

Parameters
FilenameThe file to read.

Definition at line 301 of file Fieldmap.cpp.

References Fieldmap::FieldmapDictionary, and Fieldmap::readMap().

Referenced by Fieldmap::readMap(), TEST_F(), TEST_F(), TEST_F(), and TEST_F().

Here is the call graph for this function:

◆ setEdgeConstants()

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

Definition at line 408 of file Fieldmap.cpp.

References Fieldmap::setEdgeConstants().

Referenced by Fieldmap::setEdgeConstants().

Here is the call graph for this function:

◆ setFieldGap()

void Fieldmap::setFieldGap ( double  gap)
virtualinherited

Definition at line 602 of file Fieldmap.cpp.

References Fieldmap::setFieldGap().

Referenced by Fieldmap::setFieldGap().

Here is the call graph for this function:

◆ setFieldLength()

void Fieldmap::setFieldLength ( const double &  )
virtualinherited

Definition at line 412 of file Fieldmap.cpp.

References Fieldmap::setFieldLength().

Referenced by Fieldmap::setFieldLength().

Here is the call graph for this function:

◆ setFrequency()

void Astra1DMagnetoStatic::setFrequency ( double  freq)
overridevirtual

Set the frequency.

Parameters
freqFrequency [MHz].

Implements Fieldmap.

Definition at line 354 of file Astra1DMagnetoStatic.cpp.

References setFrequency().

Referenced by setFrequency().

Here is the call graph for this function:

◆ swap()

void Astra1DMagnetoStatic::swap ( )
overridevirtual

Swap coordinates (implementation dependent).

Implements Fieldmap.

Definition at line 343 of file Astra1DMagnetoStatic.cpp.

References swap().

Referenced by swap().

Here is the call graph for this function:

◆ typeset_msg()

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

Definition at line 527 of file Fieldmap.cpp.

References Fieldmap::typeset_msg().

Referenced by FM2DMagnetoStatic::freeMap(), Fieldmap::lowResolutionWarning(), FM2DMagnetoStatic::readMap(), and Fieldmap::typeset_msg().

Here is the call 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 604 of file Fieldmap.cpp.

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

Referenced by Fieldmap::write3DField().

Here is the call graph for this function:

Friends And Related Symbol Documentation

◆ Fieldmap

friend class Fieldmap
friend

Definition at line 94 of file Astra1DMagnetoStatic.h.

Member Data Documentation

◆ accuracy_m

int Astra1DMagnetoStatic::accuracy_m
private

Definition at line 91 of file Astra1DMagnetoStatic.h.

Referenced by applyField(), Astra1DMagnetoStatic(), getFieldstrength(), and readMap().

◆ alpha_numeric

std::string Fieldmap::alpha_numeric
staticprivateinherited

Definition at line 302 of file Fieldmap.h.

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

◆ buffer_m

char Fieldmap::buffer_m
staticprivateinherited

Definition at line 301 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 313 of file Fieldmap.h.

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

◆ Filename_m

◆ FourCoefs_m

Kokkos::DualView<double*> Astra1DMagnetoStatic::FourCoefs_m
private

Definition at line 85 of file Astra1DMagnetoStatic.h.

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

◆ length_m

double Astra1DMagnetoStatic::length_m
private

Definition at line 89 of file Astra1DMagnetoStatic.h.

Referenced by applyField(), Astra1DMagnetoStatic(), and getFieldstrength().

◆ lines_read_m

◆ normalize_m

◆ num_gridpz_m

int Astra1DMagnetoStatic::num_gridpz_m
private

Definition at line 92 of file Astra1DMagnetoStatic.h.

Referenced by Astra1DMagnetoStatic(), and readMap().

◆ Type

◆ zbegin_m

double Astra1DMagnetoStatic::zbegin_m
private

◆ zend_m

double Astra1DMagnetoStatic::zend_m
private

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