OPAL (Object Oriented Parallel Accelerator Library)
2024.1
OPAL
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
src
Elements
OpalMultipoleT.h
Go to the documentation of this file.
1
//
2
// Class OpalMultipoleT
3
// The Opal MultipoleT element.
4
//
5
// Copyright (c) 2017 - 2023, Titus Dascalu
6
// Chris Rogers, STFC Rutherford Appleton Laboratory, Didcot, UK
7
// All rights reserved
8
//
9
// This file is part of OPAL.
10
//
11
// OPAL is free software: you can redistribute it and/or modify
12
// it under the terms of the GNU General Public License as published by
13
// the Free Software Foundation, either version 3 of the License, or
14
// (at your option) any later version.
15
//
16
// You should have received a copy of the GNU General Public License
17
// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
18
//
19
#ifndef OPAL_OPALMULTIPOLET_HH
20
#define OPAL_OPALMULTIPOLET_HH
21
22
#include "
Elements/OpalElement.h
"
23
24
class
OpalMultipoleT
:
public
OpalElement
{
25
26
public
:
27
// The attributes of class OpalMultipoleT
28
enum
{
29
TP
=
COMMON
,
// Transverse field components
30
RFRINGE
,
// Length of right fringe field
31
LFRINGE
,
// Length of left fringe field
32
HAPERT
,
// Aperture horizontal dimension
33
VAPERT
,
// Aperture vertical dimension
34
MAXFORDER
,
// Maximum order in the field expansion
35
MAXXORDER
,
// Maximum order in x in polynomial expansions
36
ANGLE
,
// Bending angle of a sector magnet
37
ROTATION
,
// Rotation angle about central axis for skew elements
38
EANGLE
,
// Entrance angle
39
VARRADIUS
,
// Variable radius flag
40
BBLENGTH
,
// Distance between centre of magnet and entrance
41
SIZE
// size of the enum
42
};
43
45
OpalMultipoleT
();
46
48
virtual
~OpalMultipoleT
();
49
51
virtual
OpalMultipoleT
*
clone
(
const
std::string&
name
);
52
54
virtual
void
update
();
55
56
void
print
(std::ostream& os)
const
;
57
58
private
:
59
// Not implemented.
60
OpalMultipoleT
(
const
OpalMultipoleT
&);
61
void
operator=
(
const
OpalMultipoleT
&);
62
63
// Clone constructor.
64
OpalMultipoleT
(
const
std::string&
name
,
OpalMultipoleT
* parent);
65
};
66
67
#endif // OPAL_OpalMultipoleT_HH
OpalElement.h
OpalMultipoleT::clone
virtual OpalMultipoleT * clone(const std::string &name)
Definition:
OpalMultipoleT.cpp:89
OpalMultipoleT::TP
Definition:
OpalMultipoleT.h:29
OpalMultipoleT::EANGLE
Definition:
OpalMultipoleT.h:38
OpalMultipoleT::MAXXORDER
Definition:
OpalMultipoleT.h:35
OpalMultipoleT
Definition:
OpalMultipoleT.h:24
OpalElement
Definition:
OpalElement.h:28
OpalMultipoleT::HAPERT
Definition:
OpalMultipoleT.h:32
OpalMultipoleT::OpalMultipoleT
OpalMultipoleT()
Definition:
OpalMultipoleT.cpp:34
OpalMultipoleT::VARRADIUS
Definition:
OpalMultipoleT.h:39
OpalMultipoleT::operator=
void operator=(const OpalMultipoleT &)
OpalMultipoleT::LFRINGE
Definition:
OpalMultipoleT.h:31
OpalMultipoleT::print
void print(std::ostream &os) const
Print the object.
Definition:
OpalMultipoleT.cpp:94
OpalMultipoleT::~OpalMultipoleT
virtual ~OpalMultipoleT()
Definition:
OpalMultipoleT.cpp:85
OpalMultipoleT::BBLENGTH
Definition:
OpalMultipoleT.h:40
OpalMultipoleT::update
virtual void update()
Definition:
OpalMultipoleT.cpp:99
name
const std::string name
Definition:
MaxNormRadialPeak.cpp:32
OpalMultipoleT::VAPERT
Definition:
OpalMultipoleT.h:33
OpalMultipoleT::SIZE
Definition:
OpalMultipoleT.h:41
OpalElement::COMMON
Definition:
OpalElement.h:56
OpalMultipoleT::RFRINGE
Definition:
OpalMultipoleT.h:30
OpalMultipoleT::MAXFORDER
Definition:
OpalMultipoleT.h:34
OpalMultipoleT::ANGLE
Definition:
OpalMultipoleT.h:36
OpalMultipoleT::ROTATION
Definition:
OpalMultipoleT.h:37
Generated on Tue Jul 2 2024 15:05:24 for OPAL (Object Oriented Parallel Accelerator Library) by
1.8.5