OPAL (Object Oriented Parallel Accelerator Library) 2024.2
OPAL
Astra1DMagnetoStatic.h
Go to the documentation of this file.
1#ifndef CLASSIC_AstraFIELDMAP1DMAGNETOSTATIC_HH
2#define CLASSIC_AstraFIELDMAP1DMAGNETOSTATIC_HH
3
4#include "Fields/Fieldmap.h"
5
7
8public:
10
11 virtual bool getFieldstrength(const Vector_t &R, Vector_t &E, Vector_t &B) const;
12 virtual void getFieldDimensions(double &zBegin, double &zEnd) const;
13 virtual void getFieldDimensions(double &xIni, double &xFinal, double &yIni, double &yFinal, double &zIni, double &zFinal) const;
14 virtual bool getFieldDerivative(const Vector_t &R, Vector_t &E, Vector_t &B, const DiffDirection &dir) const;
15 virtual void swap();
16 virtual void getInfo(Inform *);
17 virtual double getFrequency() const;
18 virtual void setFrequency(double freq);
19
20 virtual bool isInside(const Vector_t &r) const;
21private:
22 _Astra1DMagnetoStatic(const std::string& filename);
23
24 static Astra1DMagnetoStatic create(const std::string& filename);
25
26 virtual void readMap();
27 virtual void freeMap();
28
29 double *FourCoefs_m;
30
31 double zbegin_m;
32 double zend_m;
33 double length_m;
34
37
38 friend class _Fieldmap;
39};
40
41inline bool _Astra1DMagnetoStatic::isInside(const Vector_t &r) const
42{
43 return r(2) >= zbegin_m && r(2) < zend_m;
44}
45
46using Astra1DMagnetoStatic = std::shared_ptr<_Astra1DMagnetoStatic>;
47
48#endif
std::shared_ptr< _Astra1DMagnetoStatic > Astra1DMagnetoStatic
DiffDirection
Definition Fieldmap.h:55
virtual void getInfo(Inform *)
virtual void setFrequency(double freq)
static Astra1DMagnetoStatic create(const std::string &filename)
_Astra1DMagnetoStatic(const std::string &filename)
virtual void getFieldDimensions(double &zBegin, double &zEnd) const
virtual bool getFieldstrength(const Vector_t &R, Vector_t &E, Vector_t &B) const
virtual double getFrequency() const
virtual bool getFieldDerivative(const Vector_t &R, Vector_t &E, Vector_t &B, const DiffDirection &dir) const
virtual bool isInside(const Vector_t &r) const
Vektor< double, 3 > Vector_t