OPAL (Object Oriented Parallel Accelerator Library)
2021.1.99
OPAL
src
src
Elements
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
24
#include "
Elements/OpalElement.h
"
25
26
class
OpalUndulator
:
public
OpalElement
{
27
public
:
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
43
OpalUndulator
();
44
45
virtual
~OpalUndulator
();
46
48
virtual
OpalUndulator
*
clone
(
const
std::string&
name
);
49
51
virtual
void
update
();
52
53
private
:
54
// Not implemented.
55
OpalUndulator
(
const
OpalUndulator
&);
56
void
operator=
(
const
OpalUndulator
&);
57
58
// Clone constructor.
59
OpalUndulator
(
const
std::string&
name
,
OpalUndulator
* parent);
60
};
61
62
#endif
// OPAL_OpalUndulator_HH
OpalElement.h
name
const std::string name
Definition:
MaxNormRadialPeak.cpp:32
OpalElement
Definition:
OpalElement.h:28
OpalElement::COMMON
@ COMMON
Definition:
OpalElement.h:55
OpalUndulator
Definition:
OpalUndulator.h:26
OpalUndulator::update
virtual void update()
Update the embedded CLASSIC drift.
Definition:
OpalUndulator.cpp:73
OpalUndulator::~OpalUndulator
virtual ~OpalUndulator()
Definition:
OpalUndulator.cpp:66
OpalUndulator::OpalUndulator
OpalUndulator(const OpalUndulator &)
OpalUndulator::TRUNORDER
@ TRUNORDER
Definition:
OpalUndulator.h:36
OpalUndulator::FNAME
@ FNAME
Definition:
OpalUndulator.h:33
OpalUndulator::SIZE
@ SIZE
Definition:
OpalUndulator.h:39
OpalUndulator::K
@ K
Definition:
OpalUndulator.h:29
OpalUndulator::NUMPERIODS
@ NUMPERIODS
Definition:
OpalUndulator.h:31
OpalUndulator::MESHLENGTH
@ MESHLENGTH
Definition:
OpalUndulator.h:34
OpalUndulator::ANGLE
@ ANGLE
Definition:
OpalUndulator.h:32
OpalUndulator::MESHRESOLUTION
@ MESHRESOLUTION
Definition:
OpalUndulator.h:35
OpalUndulator::DTBUNCH
@ DTBUNCH
Definition:
OpalUndulator.h:38
OpalUndulator::TOTALTIME
@ TOTALTIME
Definition:
OpalUndulator.h:37
OpalUndulator::LAMBDA
@ LAMBDA
Definition:
OpalUndulator.h:30
OpalUndulator::clone
virtual OpalUndulator * clone(const std::string &name)
Make clone.
Definition:
OpalUndulator.cpp:69
OpalUndulator::OpalUndulator
OpalUndulator()
Exemplar constructor.
Definition:
OpalUndulator.cpp:26
OpalUndulator::operator=
void operator=(const OpalUndulator &)
Generated on Wed Aug 25 2021 16:41:04 for OPAL (Object Oriented Parallel Accelerator Library) by
1.9.1