OPAL (Object Oriented Parallel Accelerator Library)  2024.1
OPAL
FM1DProfile2.h
Go to the documentation of this file.
1 #ifndef CLASSIC_FIELDMAP1DPROFILE2_HH
2 #define CLASSIC_FIELDMAP1DPROFILE2_HH
3 
4 #include "Fields/Fieldmap.h"
5 
6 class _FM1DProfile2: public _Fieldmap {
7 
8 public:
9  virtual ~_FM1DProfile2();
10 
11  virtual bool getFieldstrength(const Vector_t &X, Vector_t &strength, Vector_t &info) const;
12  virtual bool getFieldDerivative(const Vector_t &X, Vector_t &E, Vector_t &B, const DiffDirection &dir) const;
13  virtual void getFieldDimensions(double &zBegin, double &zEnd) const;
14  virtual void getFieldDimensions(double &xIni, double &xFinal, double &yIni, double &yFinal, double &zIni, double &zFinal) const;
15  virtual void swap();
16  virtual void getInfo(Inform *);
17  virtual double getFrequency() const;
18  virtual void setFrequency(double freq);
19  virtual void setExitFaceSlope(const double &);
20  virtual void setEdgeConstants(const double &bendAngle, const double &entranceAngle, const double &exitAngle);
21 
22 private:
23  _FM1DProfile2(const std::string& filename);
24 
25  static FM1DProfile2 create(const std::string& filename);
26 
27  virtual void readMap();
28  virtual void freeMap();
29 
32 
34  double zend_entry_m;
37 
38  double exit_slope_m;
39  double zbegin_exit_m;
40  double zend_exit_m;
43 
45 
46  double length_m;
47  double gapHeight_m;
48 
51  double xExit_m;
52 
55  double zExit_m;
56 
60 
61  friend class _Fieldmap;
62 };
63 
64 namespace QRDecomposition {
65  void solve(double *Matrix, double *Solution, double *rightHandSide, const int &M, const int &N);
66 }
67 
68 using FM1DProfile2 = std::shared_ptr<_FM1DProfile2>;
69 
70 #endif
double * EngeCoefs_entry_m
Definition: FM1DProfile2.h:30
virtual void setFrequency(double freq)
void solve(double *Matrix, double *Solution, double *rightHandSide, const int &M, const int &N)
virtual double getFrequency() const
DiffDirection
Definition: Fieldmap.h:55
virtual void getInfo(Inform *)
double cosExitRotation_m
Cos and sin of the exit edge rotation with respect to the local coordinates.
Definition: FM1DProfile2.h:58
double gapHeight_m
Definition: FM1DProfile2.h:47
virtual void setExitFaceSlope(const double &)
Matrix.
Definition: Matrix.h:39
double * EngeCoefs_exit_m
Definition: FM1DProfile2.h:31
double polynomialOrigin_entry_m
Definition: FM1DProfile2.h:35
bool rectangular_m
Definition: FM1DProfile2.h:44
double xExit_m
Definition: FM1DProfile2.h:51
double zend_entry_m
Definition: FM1DProfile2.h:34
bool info
Info flag.
Definition: Options.cpp:28
virtual void readMap()
double sinExitRotation_m
Definition: FM1DProfile2.h:59
double zend_exit_m
Definition: FM1DProfile2.h:40
static FM1DProfile2 create(const std::string &filename)
virtual void swap()
int polynomialOrder_exit_m
Definition: FM1DProfile2.h:42
Definition: Inform.h:42
int polynomialOrder_entry_m
Definition: FM1DProfile2.h:36
std::shared_ptr< _FM1DProfile2 > FM1DProfile2
Definition: Definitions.h:48
#define X(arg)
Definition: fftpack.cpp:112
double zbegin_entry_m
Definition: FM1DProfile2.h:33
double polynomialOrigin_exit_m
Definition: FM1DProfile2.h:41
virtual void freeMap()
double exit_slope_m
Definition: FM1DProfile2.h:38
_FM1DProfile2(const std::string &filename)
virtual ~_FM1DProfile2()
virtual bool getFieldDerivative(const Vector_t &X, Vector_t &E, Vector_t &B, const DiffDirection &dir) const
virtual void setEdgeConstants(const double &bendAngle, const double &entranceAngle, const double &exitAngle)
double zExit_m
Definition: FM1DProfile2.h:55
virtual void getFieldDimensions(double &zBegin, double &zEnd) const
virtual bool getFieldstrength(const Vector_t &X, Vector_t &strength, Vector_t &info) const
double length_m
Definition: FM1DProfile2.h:46
double zbegin_exit_m
Definition: FM1DProfile2.h:39