OPAL (Object Oriented Parallel Accelerator Library) 2022.1
OPAL
OpalUndulator.h
Go to the documentation of this file.
1//
2// Class OpalUndulator
3// Defines the Undulator/Wiggler element and its attributes.
4//
5// Copyright (c) 2020, Arnau AlbĂ , Paul Scherrer Institut, Villigen PSI, Switzerland
6// All rights reserved.
7//
8// Implemented as part of the MSc thesis
9// "Start-to-End Modelling of the AWA Micro-Bunched Electron Cooling POP-Experiment"
10//
11// This file is part of OPAL.
12//
13// OPAL is free software: you can redistribute it and/or modify
14// it under the terms of the GNU General Public License as published by
15// the Free Software Foundation, either version 3 of the License, or
16// (at your option) any later version.
17//
18// You should have received a copy of the GNU General Public License
19// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
20//
21#ifndef OPAL_OpalUndulator_HH
22#define OPAL_OpalUndulator_HH
23
25
26class OpalUndulator : public OpalElement {
27public:
28 enum {
29 K = COMMON, // The undulator parameter
30 LAMBDA, // The undulator period
31 NUMPERIODS, // Number of undulator periods
32 ANGLE, // Polarisation angle of the undulator
33 FNAME, // File specifying the wanted output from the full wave simulation
34 MESHLENGTH, // Size of the computational domain
35 MESHRESOLUTION, // Size of the grid-cells
36 TRUNORDER, // Order of the Absorbing Boundary Conditions, 1st or 2nd
37 TOTALTIME, // Total time of the full wave simulation
38 DTBUNCH, // Time-step for particle update can be smaller than field update step
39 SIZE
40 };
41
44
45 virtual ~OpalUndulator();
46
48 virtual OpalUndulator* clone(const std::string& name);
49
51 virtual void update();
52
53private:
54 // Not implemented.
57
58 // Clone constructor.
59 OpalUndulator(const std::string& name, OpalUndulator* parent);
60};
61
62#endif // OPAL_OpalUndulator_HH
const std::string name
virtual void update()
Update the embedded CLASSIC drift.
virtual ~OpalUndulator()
OpalUndulator(const OpalUndulator &)
virtual OpalUndulator * clone(const std::string &name)
Make clone.
OpalUndulator()
Exemplar constructor.
void operator=(const OpalUndulator &)