OPAL (Object Oriented Parallel Accelerator Library)  2.2.0
OPAL
Source.h
Go to the documentation of this file.
1 #ifndef CLASSIC_SOURCE_HH
2 #define CLASSIC_SOURCE_HH
3 
6 
7 class OpalBeamline;
8 
9 template <class T, unsigned Dim>
10 class PartBunchBase;
11 
12 class Source: public Component {
13 
14 public:
15 
17  explicit Source(const std::string &name);
18 
19  Source();
20  Source(const Source &);
21  virtual ~Source();
22 
24  virtual void accept(BeamlineVisitor &) const override;
25 
26  virtual void addKR(int i, double t, Vector_t &K) override;
27 
28  virtual void addKT(int i, double t, Vector_t &K) override;
29 
30  virtual bool apply(const size_t &i, const double &t, Vector_t &E, Vector_t &B) override;
31 
32  virtual void initialise(PartBunchBase<double, 3> *bunch, double &startField, double &endField) override;
33 
34  virtual void finalise() override;
35 
36  virtual bool bends() const override;
37 
38  virtual void goOnline(const double &kineticEnergy) override;
39 
40  virtual void goOffline() override;
41 
42  virtual ElementBase::ElementType getType() const override;
43 
44  virtual void getDimensions(double &zBegin, double &zEnd) const override;
45 
46 private:
47 
48  double ElementEdge_m;
49  double startField_m;
50  double endField_m;
51 
52  std::unique_ptr<LossDataSink> lossDs_m;
53 
54  // Not implemented.
55  void operator=(const Source &);
56 };
57 #endif // CLASSIC_SOURCE_HH
double ElementEdge_m
Definition: Source.h:48
Definition: Source.h:12
virtual void getDimensions(double &zBegin, double &zEnd) const override
Definition: Source.cpp:116
virtual void goOnline(const double &kineticEnergy) override
Definition: Source.cpp:107
virtual ~Source()
Definition: Source.cpp:41
virtual bool apply(const size_t &i, const double &t, Vector_t &E, Vector_t &B) override
Definition: Source.cpp:66
Class: DataSink.
Definition: OpalData.h:29
Source()
Definition: Source.cpp:17
virtual bool bends() const override
Definition: Source.cpp:102
virtual void initialise(PartBunchBase< double, 3 > *bunch, double &startField, double &endField) override
Definition: Source.cpp:87
void operator=(const Source &)
virtual void addKR(int i, double t, Vector_t &K) override
ENVELOPE COMPONENT for radial focussing of the beam Calculates the transverse envelope component for ...
Definition: Source.cpp:55
virtual ElementBase::ElementType getType() const override
Get element type std::string.
Definition: Source.cpp:122
virtual void addKT(int i, double t, Vector_t &K) override
Definition: Source.cpp:63
double startField_m
Definition: Source.h:49
std::unique_ptr< LossDataSink > lossDs_m
Definition: Source.h:52
const std::string name
virtual void finalise() override
Definition: Source.cpp:99
Interface for a single beam element.
Definition: Component.h:51
#define K
Definition: integrate.cpp:118
Abstract algorithm.
virtual void accept(BeamlineVisitor &) const override
Apply visitor to Source.
Definition: Source.cpp:46
double endField_m
Definition: Source.h:50
virtual void goOffline() override
Definition: Source.cpp:111