OPAL (Object Oriented Parallel Accelerator Library)  2021.1.99
OPAL
OpalCavity.h
Go to the documentation of this file.
1 //
2 // Class OpalCavity
3 // The RFCAVITY element.
4 //
5 // Copyright (c) 200x - 2020, Paul Scherrer Institut, Villigen PSI, Switzerland
6 // All rights reserved
7 //
8 // This file is part of OPAL.
9 //
10 // OPAL is free software: you can redistribute it and/or modify
11 // it under the terms of the GNU General Public License as published by
12 // the Free Software Foundation, either version 3 of the License, or
13 // (at your option) any later version.
14 //
15 // You should have received a copy of the GNU General Public License
16 // along with OPAL. If not, see <https://www.gnu.org/licenses/>.
17 //
18 #ifndef OPAL_OpalCavity_HH
19 #define OPAL_OpalCavity_HH
20 
21 #include "Elements/OpalElement.h"
22 
23 class OpalWake;
24 class BoundaryGeometry;
25 
26 class OpalCavity: public OpalElement {
27 
28 public:
29 
31  enum {
32  VOLT = COMMON, // The peak voltage.
33  DVOLT, // The peak voltage error.
34  GEOMETRY, // geometry of boundary
35  FREQ, // The RF frequency.
36  LAG, // The phase lag.
37  DLAG, // The phase lag error.
38  FMAPFN, // The filename of the fieldmap
39  FAST, // Faster but less accurate
40  APVETO, // Do not use this cavity in the Autophase procedure
41  RMIN, // Minimal Radius
42  RMAX, // Maximal Radius
43  ANGLE, // the azimuth position of the cavity
44  PDIS, // perpendicular distance from symmetric line of cavity gap to machine center
45  GAPWIDTH, // constant gap width of cavity
46  PHI0, // initial phase of cavity
47  DESIGNENERGY, // The mean kinetic energy at exit
48  PHASE_MODEL, // time dependent phase
49  AMPLITUDE_MODEL,// time dependent amplitude
50  FREQUENCY_MODEL,// time dependent frequency
51  SIZE
52  };
53 
55  OpalCavity();
56 
57  virtual ~OpalCavity();
58 
60  virtual OpalCavity *clone(const std::string &name);
61 
63  virtual void update();
64 
65 private:
66 
67  // Not implemented.
69  void operator=(const OpalCavity &);
70 
71  // Clone constructor.
72  OpalCavity(const std::string &name, OpalCavity *parent);
73 
75 
77 
78 
79 };
80 
81 #endif // OPAL_OpalCavity_HH
const std::string name
OpalCavity(const OpalCavity &)
void operator=(const OpalCavity &)
virtual ~OpalCavity()
Definition: OpalCavity.cpp:87
virtual OpalCavity * clone(const std::string &name)
Make clone.
Definition: OpalCavity.cpp:92
virtual void update()
Update the embedded CLASSIC cavity.
Definition: OpalCavity.cpp:97
BoundaryGeometry * obgeo_m
Definition: OpalCavity.h:76
@ AMPLITUDE_MODEL
Definition: OpalCavity.h:49
@ FREQUENCY_MODEL
Definition: OpalCavity.h:50
@ DESIGNENERGY
Definition: OpalCavity.h:47
OpalCavity()
Exemplar constructor.
Definition: OpalCavity.cpp:28
OpalWake * owk_m
Definition: OpalCavity.h:74