OPAL (Object Oriented Parallel Accelerator Library)
2022.1
OPAL
src
src
Elements
OpalCyclotron.h
Go to the documentation of this file.
1
//
2
// Class OpalCyclotron
3
// The OpalCyclotron 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_OpalCyclotron_HH
19
#define OPAL_OpalCyclotron_HH
20
21
#include "
Elements/OpalElement.h
"
22
23
class
BoundaryGeometry
;
24
25
class
OpalCyclotron
:
public
OpalElement
{
26
27
public
:
28
30
enum
{
31
GEOMETRY
=
COMMON
,
// geometry of boundary
32
CYHARMON
,
// The harmonic number of the cyclotron
33
SYMMETRY
,
// The symetry of the field
34
RINIT
,
// The initial radius [mm]
35
PRINIT
,
// The initial radial momentum [pr/p0] []
36
PHIINIT
,
// The initial phase [deg]
37
ZINIT
,
// The initial z coordinate [mm]
38
PZINIT
,
// The initial vertical momentum [pz/p0] []
39
RFFREQ
,
// First hamonic of the RF system [MHz]
40
FMAPFN
,
// The filename of the mid-plane fieldmap
41
RFMAPFN
,
// The filename(s) of the RF fieldmap
42
RFFCFN
,
// The filename(s) of coefficients for RF frequency function f(t)
43
RFVCFN
,
// The filename(s) of coefficients for RF voltage function v(t)
44
BSCALE
,
// A scalar to scale the B-field
45
ESCALE
,
// A scalar to scale the RF field
46
RFPHI
,
// the initial phase of RF field
47
SUPERPOSE
,
// whether the electric field map are superposed or not
48
MINZ
,
// minimal vertical extend of the machine
49
MAXZ
,
// maximal vertical extend of the machine
50
MINR
,
// minimal radial extend of the machine
51
MAXR
,
// maximal radial extend of the machine
52
FMLOWE
,
// minimal energy of the field map
53
FMHIGHE
,
// maximal energy of the field map
54
SPIRAL
,
// flag whether or not this is a spiral inflector simulation
55
TRIMCOILTHRESHOLD
,
// minimum B-field for which trim coils are applied
56
TRIMCOIL
,
// list of trim coils
57
SIZE
58
};
59
60
OpalCyclotron
();
61
62
virtual
~OpalCyclotron
();
63
65
virtual
OpalCyclotron
*
clone
(
const
std::string&
name
);
66
68
virtual
void
update
();
69
70
private
:
71
72
// Not implemented.
73
OpalCyclotron
(
const
OpalCyclotron
&);
74
void
operator=
(
const
OpalCyclotron
&);
75
76
// Clone constructor.
77
OpalCyclotron
(
const
std::string&
name
,
OpalCyclotron
* parent);
78
79
BoundaryGeometry
*
obgeo_m
;
80
81
};
82
83
#endif
// OPAL_OpalCyclotron_HH
OpalElement.h
name
const std::string name
Definition:
MaxNormRadialPeak.cpp:32
OpalCyclotron
Definition:
OpalCyclotron.h:25
OpalCyclotron::operator=
void operator=(const OpalCyclotron &)
OpalCyclotron::OpalCyclotron
OpalCyclotron()
Definition:
OpalCyclotron.cpp:32
OpalCyclotron::update
virtual void update()
Update the embedded CLASSIC cavity.
Definition:
OpalCyclotron.cpp:135
OpalCyclotron::~OpalCyclotron
virtual ~OpalCyclotron()
Definition:
OpalCyclotron.cpp:126
OpalCyclotron::obgeo_m
BoundaryGeometry * obgeo_m
Definition:
OpalCyclotron.h:79
OpalCyclotron::ESCALE
@ ESCALE
Definition:
OpalCyclotron.h:45
OpalCyclotron::RFVCFN
@ RFVCFN
Definition:
OpalCyclotron.h:43
OpalCyclotron::RFFREQ
@ RFFREQ
Definition:
OpalCyclotron.h:39
OpalCyclotron::MAXR
@ MAXR
Definition:
OpalCyclotron.h:51
OpalCyclotron::CYHARMON
@ CYHARMON
Definition:
OpalCyclotron.h:32
OpalCyclotron::PZINIT
@ PZINIT
Definition:
OpalCyclotron.h:38
OpalCyclotron::RFPHI
@ RFPHI
Definition:
OpalCyclotron.h:46
OpalCyclotron::MINZ
@ MINZ
Definition:
OpalCyclotron.h:48
OpalCyclotron::MAXZ
@ MAXZ
Definition:
OpalCyclotron.h:49
OpalCyclotron::PHIINIT
@ PHIINIT
Definition:
OpalCyclotron.h:36
OpalCyclotron::RFFCFN
@ RFFCFN
Definition:
OpalCyclotron.h:42
OpalCyclotron::SUPERPOSE
@ SUPERPOSE
Definition:
OpalCyclotron.h:47
OpalCyclotron::RFMAPFN
@ RFMAPFN
Definition:
OpalCyclotron.h:41
OpalCyclotron::RINIT
@ RINIT
Definition:
OpalCyclotron.h:34
OpalCyclotron::MINR
@ MINR
Definition:
OpalCyclotron.h:50
OpalCyclotron::SPIRAL
@ SPIRAL
Definition:
OpalCyclotron.h:54
OpalCyclotron::TRIMCOIL
@ TRIMCOIL
Definition:
OpalCyclotron.h:56
OpalCyclotron::SIZE
@ SIZE
Definition:
OpalCyclotron.h:57
OpalCyclotron::TRIMCOILTHRESHOLD
@ TRIMCOILTHRESHOLD
Definition:
OpalCyclotron.h:55
OpalCyclotron::FMHIGHE
@ FMHIGHE
Definition:
OpalCyclotron.h:53
OpalCyclotron::FMAPFN
@ FMAPFN
Definition:
OpalCyclotron.h:40
OpalCyclotron::SYMMETRY
@ SYMMETRY
Definition:
OpalCyclotron.h:33
OpalCyclotron::GEOMETRY
@ GEOMETRY
Definition:
OpalCyclotron.h:31
OpalCyclotron::PRINIT
@ PRINIT
Definition:
OpalCyclotron.h:35
OpalCyclotron::FMLOWE
@ FMLOWE
Definition:
OpalCyclotron.h:52
OpalCyclotron::ZINIT
@ ZINIT
Definition:
OpalCyclotron.h:37
OpalCyclotron::BSCALE
@ BSCALE
Definition:
OpalCyclotron.h:44
OpalCyclotron::OpalCyclotron
OpalCyclotron(const OpalCyclotron &)
OpalCyclotron::clone
virtual OpalCyclotron * clone(const std::string &name)
Make clone.
Definition:
OpalCyclotron.cpp:130
OpalElement
Definition:
OpalElement.h:28
OpalElement::COMMON
@ COMMON
Definition:
OpalElement.h:56
BoundaryGeometry
Definition:
BoundaryGeometry.h:58
Generated on Thu Oct 20 2022 17:40:11 for OPAL (Object Oriented Parallel Accelerator Library) by
1.9.3