OPALX (Object Oriented Parallel Accelerator Library for Exascal) master (dc2a29eed580)
OPALX
Loading...
Searching...
No Matches
OpalTravelingWave.h
Go to the documentation of this file.
1//
2// Class OpalTravelingWave
3// The TRAVELINGWAVE 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_OpalTravelingWave_HH
19#define OPAL_OpalTravelingWave_HH
20
22
24public:
26 enum {
27 VOLT = COMMON, // The peak voltage.
28 DVOLT, // The peak voltage error
29 FREQ, // The RF frequency.
30 LAG, // The phase lag.
31 DLAG, // The phase lag error
32 FMAPFN, // The filename of the fieldmap
33 APVETO, // Do not use this cavity in the Autophase procedure
34 FAST, // Faster but less accurate
35 NUMCELLS, // Number of cells in a TW structure
36 DESIGNENERGY, // The mean kinetic energy at exit
37 MODE, // The phase shift between cells
38 SIZE
39 };
40
43
44 virtual ~OpalTravelingWave();
45
47 virtual OpalTravelingWave* clone(const std::string& name);
48
50 virtual void update();
51
52private:
53 // Not implemented.
56
57 // Clone constructor.
58 OpalTravelingWave(const std::string& name, OpalTravelingWave* parent);
59};
60
61#endif // OPAL_OpalTravelingWave_HH
virtual void update()
Update the embedded OPALX cavity.
void operator=(const OpalTravelingWave &)
OpalTravelingWave()
Exemplar constructor.
virtual OpalTravelingWave * clone(const std::string &name)
Make clone.
OpalTravelingWave(const OpalTravelingWave &)