OPAL (Object Oriented Parallel Accelerator Library)  2024.1
OPAL
Classes | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | Friends | List of all members
_FM3DH5BlockBase Class Referenceabstract

#include <FM3DH5BlockBase.h>

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

Classes

struct  IndexTriplet
 

Public Member Functions

virtual void readMap ()
 
virtual void freeMap ()
 
virtual bool getFieldstrength (const Vector_t &, Vector_t &, Vector_t &) const =0
 
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 &, Vector_t &, Vector_t &, const DiffDirection &) const
 
virtual void swap ()
 
virtual void getInfo (Inform *msg)
 
virtual double getFrequency () const
 
virtual void setFrequency (double freq)
 
virtual void getOnaxisEz (std::vector< std::pair< double, double > > &F)
 
- 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 Types

enum  : unsigned short {
  LX = 0, LY = 0, LZ = 0, HX = 4,
  HY = 2, HZ = 1
}
 

Protected Member Functions

 _FM3DH5BlockBase ()
 
virtual ~_FM3DH5BlockBase ()
 
void openFileMPIOCollective (const std::string &filename)
 
long long getNumSteps (void)
 
void setStep (const long long)
 
void getFieldInfo (const char *)
 
void getResonanceFrequency (void)
 
void readField (const char *name, double *x, double *y, double *z)
 
void closeFile (void)
 
virtual bool isInside (const Vector_t &r) const
 
unsigned long getIndex (unsigned int i, unsigned int j, unsigned int k) const
 
IndexTriplet getIndex (const Vector_t &X) const
 
double getWeightedData (const std::vector< double > &data, const IndexTriplet &idx, unsigned short corner) const
 
Vector_t interpolateTrilinearly (const std::vector< double > &, const std::vector< double > &, const std::vector< double > &, const Vector_t &X) const
 
- Protected Member Functions inherited from _Fieldmap
 _Fieldmap ()=delete
 
 _Fieldmap (const std::string &filename)
 
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

h5_file_t file_m
 
std::vector< double > FieldstrengthEz_m
 
std::vector< double > FieldstrengthEx_m
 
std::vector< double > FieldstrengthEy_m
 
double xbegin_m
 
double xend_m
 
double ybegin_m
 
double yend_m
 
double zbegin_m
 
double zend_m
 
double hx_m
 
double hy_m
 
double hz_m
 
unsigned int num_gridpx_m
 
unsigned int num_gridpy_m
 
unsigned int num_gridpz_m
 
double frequency_m
 
bool swap_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 Fieldmap getFieldmap (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 31 of file FM3DH5BlockBase.h.

Member Enumeration Documentation

anonymous enum : unsigned short
protected
Enumerator
LX 
LY 
LZ 
HX 
HY 
HZ 

Definition at line 235 of file FM3DH5BlockBase.h.

Constructor & Destructor Documentation

_FM3DH5BlockBase::_FM3DH5BlockBase ( )
inlineprotected

Definition at line 88 of file FM3DH5BlockBase.h.

virtual _FM3DH5BlockBase::~_FM3DH5BlockBase ( )
inlineprotectedvirtual

Definition at line 91 of file FM3DH5BlockBase.h.

Member Function Documentation

void _FM3DH5BlockBase::closeFile ( void  )
protected
virtual void _FM3DH5BlockBase::freeMap ( )
inlinevirtual

Implements _Fieldmap.

Reimplemented in _FM3DH5Block, _FM3DH5Block_nonscale, and _FM3DMagnetoStaticH5Block.

Definition at line 37 of file FM3DH5BlockBase.h.

virtual bool _FM3DH5BlockBase::getFieldDerivative ( const Vector_t ,
Vector_t ,
Vector_t ,
const DiffDirection  
) const
inlinevirtual

Implements _Fieldmap.

Definition at line 63 of file FM3DH5BlockBase.h.

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

Implements _Fieldmap.

Definition at line 43 of file FM3DH5BlockBase.h.

References zbegin_m, and zend_m.

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

Implements _Fieldmap.

Definition at line 50 of file FM3DH5BlockBase.h.

References xbegin_m, xend_m, ybegin_m, yend_m, zbegin_m, and zend_m.

void _FM3DH5BlockBase::getFieldInfo ( const char *  name)
protected
virtual bool _FM3DH5BlockBase::getFieldstrength ( const Vector_t ,
Vector_t ,
Vector_t  
) const
pure virtual
double _FM3DH5BlockBase::getFrequency ( ) const
virtual

Implements _Fieldmap.

Reimplemented in _FM3DMagnetoStaticH5Block.

Definition at line 225 of file FM3DH5BlockBase.cpp.

References frequency_m.

unsigned long _FM3DH5BlockBase::getIndex ( unsigned int  i,
unsigned int  j,
unsigned int  k 
) const
inlineprotected

Definition at line 147 of file FM3DH5BlockBase.h.

References num_gridpx_m, num_gridpy_m, and test::result.

Referenced by getWeightedData(), and interpolateTrilinearly().

IndexTriplet _FM3DH5BlockBase::getIndex ( const Vector_t X) const
inlineprotected
void _FM3DH5BlockBase::getInfo ( Inform msg)
virtual

Implements _Fieldmap.

Definition at line 217 of file FM3DH5BlockBase.cpp.

References endl(), _Fieldmap::Filename_m, hx_m, hy_m, hz_m, xbegin_m, xend_m, ybegin_m, yend_m, zbegin_m, and zend_m.

Here is the call graph for this function:

long long _FM3DH5BlockBase::getNumSteps ( void  )
protected
void _FM3DH5BlockBase::getOnaxisEz ( std::vector< std::pair< double, double > > &  F)
virtual

Reimplemented from _Fieldmap.

Definition at line 233 of file FM3DH5BlockBase.cpp.

References abs(), FieldstrengthEz_m, floor(), hx_m, hy_m, num_gridpx_m, num_gridpy_m, num_gridpz_m, xbegin_m, ybegin_m, zbegin_m, and zend_m.

Here is the call graph for this function:

void _FM3DH5BlockBase::getResonanceFrequency ( void  )
protected
double _FM3DH5BlockBase::getWeightedData ( const std::vector< double > &  data,
const IndexTriplet idx,
unsigned short  corner 
) const
protected
Vector_t _FM3DH5BlockBase::interpolateTrilinearly ( const std::vector< double > &  field_strength_x,
const std::vector< double > &  field_strength_y,
const std::vector< double > &  field_strength_z,
const Vector_t X 
) const
protected

Definition at line 178 of file FM3DH5BlockBase.cpp.

References getIndex(), getWeightedData(), HX, HY, HZ, LX, LY, LZ, and test::result.

Referenced by _FM3DH5Block::getFieldstrength(), _FM3DMagnetoStaticH5Block::getFieldstrength(), and _FM3DH5Block_nonscale::getFieldstrength().

Here is the call graph for this function:

virtual bool _FM3DH5BlockBase::isInside ( const Vector_t r) const
inlineprotectedvirtual
void _FM3DH5BlockBase::openFileMPIOCollective ( const std::string &  filename)
protected
void _FM3DH5BlockBase::readField ( const char *  name,
double *  x,
double *  y,
double *  z 
)
protected
virtual void _FM3DH5BlockBase::readMap ( )
inlinevirtual

Implements _Fieldmap.

Reimplemented in _FM3DH5Block, _FM3DH5Block_nonscale, and _FM3DMagnetoStaticH5Block.

Definition at line 34 of file FM3DH5BlockBase.h.

void _FM3DH5BlockBase::setFrequency ( double  freq)
virtual

Implements _Fieldmap.

Definition at line 229 of file FM3DH5BlockBase.cpp.

References frequency_m.

void _FM3DH5BlockBase::setStep ( const long long  step)
protected
virtual void _FM3DH5BlockBase::swap ( )
inlinevirtual

Implements _Fieldmap.

Definition at line 72 of file FM3DH5BlockBase.h.

Friends And Related Function Documentation

friend class _Fieldmap
friend

Definition at line 268 of file FM3DH5BlockBase.h.

Member Data Documentation

std::vector<double> _FM3DH5BlockBase::FieldstrengthEx_m
protected
std::vector<double> _FM3DH5BlockBase::FieldstrengthEy_m
protected
std::vector<double> _FM3DH5BlockBase::FieldstrengthEz_m
protected
h5_file_t _FM3DH5BlockBase::file_m
protected
double _FM3DH5BlockBase::frequency_m
protected

Definition at line 265 of file FM3DH5BlockBase.h.

Referenced by getFrequency(), getResonanceFrequency(), and setFrequency().

double _FM3DH5BlockBase::hx_m
protected

length between points in grid, x-direction

Definition at line 257 of file FM3DH5BlockBase.h.

Referenced by getFieldInfo(), getIndex(), getInfo(), and getOnaxisEz().

double _FM3DH5BlockBase::hy_m
protected

length between points in grid, y-direction

Definition at line 258 of file FM3DH5BlockBase.h.

Referenced by getFieldInfo(), getIndex(), getInfo(), and getOnaxisEz().

double _FM3DH5BlockBase::hz_m
protected

length between points in grid, z-direction

Definition at line 259 of file FM3DH5BlockBase.h.

Referenced by getFieldInfo(), getIndex(), and getInfo().

unsigned int _FM3DH5BlockBase::num_gridpx_m
protected

number of points after 0(not counted here) in grid, x-direction

Definition at line 261 of file FM3DH5BlockBase.h.

Referenced by getFieldInfo(), getIndex(), getOnaxisEz(), readField(), _FM3DH5Block_nonscale::readMap(), _FM3DMagnetoStaticH5Block::readMap(), and _FM3DH5Block::readMap().

unsigned int _FM3DH5BlockBase::num_gridpy_m
protected

number of points after 0(not counted here) in grid, y-direction

Definition at line 262 of file FM3DH5BlockBase.h.

Referenced by getFieldInfo(), getIndex(), getOnaxisEz(), readField(), _FM3DH5Block_nonscale::readMap(), _FM3DMagnetoStaticH5Block::readMap(), and _FM3DH5Block::readMap().

unsigned int _FM3DH5BlockBase::num_gridpz_m
protected

number of points after 0(not counted here) in grid, z-direction

Definition at line 263 of file FM3DH5BlockBase.h.

Referenced by getFieldInfo(), getIndex(), getOnaxisEz(), readField(), _FM3DH5Block_nonscale::readMap(), _FM3DMagnetoStaticH5Block::readMap(), and _FM3DH5Block::readMap().

bool _FM3DH5BlockBase::swap_m
protected

Definition at line 267 of file FM3DH5BlockBase.h.

double _FM3DH5BlockBase::xbegin_m
protected
double _FM3DH5BlockBase::xend_m
protected

Definition at line 249 of file FM3DH5BlockBase.h.

Referenced by getFieldDimensions(), getFieldInfo(), getInfo(), and isInside().

double _FM3DH5BlockBase::ybegin_m
protected
double _FM3DH5BlockBase::yend_m
protected

Definition at line 252 of file FM3DH5BlockBase.h.

Referenced by getFieldDimensions(), getFieldInfo(), getInfo(), and isInside().

double _FM3DH5BlockBase::zbegin_m
protected
double _FM3DH5BlockBase::zend_m
protected

Definition at line 255 of file FM3DH5BlockBase.h.

Referenced by getFieldDimensions(), getFieldInfo(), getInfo(), getOnaxisEz(), and isInside().


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