OPAL (Object Oriented Parallel Accelerator Library) 2024.2
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
6class _FM1DProfile2: public _Fieldmap {
7
8public:
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
22private:
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
37
43
45
46 double length_m;
48
51 double xExit_m;
52
55 double zExit_m;
56
60
61 friend class _Fieldmap;
62};
63
64namespace QRDecomposition {
65 void solve(double *Matrix, double *Solution, double *rightHandSide, const int &M, const int &N);
66}
67
68using FM1DProfile2 = std::shared_ptr<_FM1DProfile2>;
69
70#endif
std::shared_ptr< _FM1DProfile2 > FM1DProfile2
std::shared_ptr< _FM1DProfile2 > FM1DProfile2
Definition Definitions.h:48
DiffDirection
Definition Fieldmap.h:55
#define X(arg)
Definition fftpack.cpp:106
void solve(double *Matrix, double *Solution, double *rightHandSide, const int &M, const int &N)
Matrix.
Definition Matrix.h:39
virtual double getFrequency() const
double exit_slope_m
friend class _Fieldmap
_FM1DProfile2(const std::string &filename)
virtual void swap()
double zbegin_exit_m
double * EngeCoefs_entry_m
int polynomialOrder_exit_m
double zend_exit_m
double sinExitRotation_m
double * EngeCoefs_exit_m
virtual bool getFieldstrength(const Vector_t &X, Vector_t &strength, Vector_t &info) const
static FM1DProfile2 create(const std::string &filename)
int polynomialOrder_entry_m
double gapHeight_m
virtual void setExitFaceSlope(const double &)
double polynomialOrigin_entry_m
virtual void readMap()
double cosExitRotation_m
Cos and sin of the exit edge rotation with respect to the local coordinates.
virtual void freeMap()
virtual void getInfo(Inform *)
virtual void setFrequency(double freq)
double polynomialOrigin_exit_m
double zbegin_entry_m
virtual void setEdgeConstants(const double &bendAngle, const double &entranceAngle, const double &exitAngle)
virtual bool getFieldDerivative(const Vector_t &X, Vector_t &E, Vector_t &B, const DiffDirection &dir) const
double zend_entry_m
virtual void getFieldDimensions(double &zBegin, double &zEnd) const
virtual ~_FM1DProfile2()
Vektor< double, 3 > Vector_t