Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
T
TRACY3
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Iterations
Wiki
Requirements
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Locked files
Build
Pipelines
Jobs
Pipeline schedules
Test cases
Artifacts
Deploy
Releases
Package Registry
Container Registry
Model registry
Operate
Terraform modules
Analyze
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
PA
Optics
TRACY3
Commits
9946c6a6
Commit
9946c6a6
authored
13 years ago
by
nadolski
Browse files
Options
Downloads
Patches
Plain Diff
LNLS New format
parent
5cb9c194
No related branches found
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
tracy/tracy/src/tracy.cc
+73
-88
73 additions, 88 deletions
tracy/tracy/src/tracy.cc
with
73 additions
and
88 deletions
tracy/tracy/src/tracy.cc
+
73
−
88
View file @
9946c6a6
/* Tracy-2
/* Tracy-2
J. Bengtsson, CBP, LBL 1990 - 1994 Pascal version
J. Bengtsson, CBP, LBL 1990 - 1994 Pascal version
SLS, PSI 1995 - 1997
SLS, PSI 1995 - 1997
M. Boege SLS, PSI 1998 C translation
M. Boege SLS, PSI 1998 C translation
L. Nadolski SOLEIL 2002 Link to NAFF, Radia field maps
L. Nadolski SOLEIL 2002 Link to NAFF, Radia field maps
J. Bengtsson NSLS-II, BNL 2004 -
J. Bengtsson NSLS-II, BNL 2004 -
*/
*/
#include
"tracy_lib.h"
#include
"tracy_lib.h"
#include
"field.cc"
#include
"field.cc"
#if ORDER == 1
#if ORDER == 1
// linear TPSA
// linear TPSA
#include
"tpsa_lin.cc"
#include
"tpsa_lin.cc"
#include
"tpsa_lin_pm.cc"
#include
"tpsa_lin_pm.cc"
#else
#else
// interface to M. Berz' TPSA
// interface to M. Berz' TPSA
#include
"tpsa_for_pm.cc"
#include
"tpsa_for_pm.cc"
#endif
#endif
#include
"mathlib.cc"
#include
"mathlib.cc"
...
@@ -34,7 +34,6 @@
...
@@ -34,7 +34,6 @@
#include
"pascalio.cc"
#include
"pascalio.cc"
#include
"lsoc.cc"
//for COD correction
#include
"lsoc.cc"
//for COD correction
#include
"prtmfile.cc"
#include
"prtmfile.cc"
#include
"rdmfile.cc"
#include
"rdmfile.cc"
...
@@ -56,49 +55,46 @@
...
@@ -56,49 +55,46 @@
#include
"read_script.cc"
#include
"read_script.cc"
// Truncated Power Series Algebra (TPSA)
// Truncated Power Series Algebra (TPSA)
const
int
nv_tps
=
ss_dim
,
// no of variables
const
int
nv_tps
=
ss_dim
,
// no of variables
nd_tps
=
3
,
// no of degrees of freedom
nd_tps
=
3
,
// no of degrees of freedom
ndpt_tps
=
5
,
// index for delta, 0 for 6-D dynamics
ndpt_tps
=
5
,
// index for delta, 0 for 6-D dynamics
iref_tps
=
0
;
/* file with resonances to be excluded from
iref_tps
=
0
;
/* file with resonances to be excluded from
the map normal form: fort.7 */
the map normal form: fort.7 */
double
eps_tps
=
1e-25
;
// floating point truncation
double
eps_tps
=
1e-25
;
// floating point truncation
// instantiate templates
// instantiate templates
template
class
ss_vect
<
double
>;
template
class
ss_vect
<
double
>
;
template
class
ss_vect
<
tps
>;
template
class
ss_vect
<
tps
>
;
template
void
GtoL
(
ss_vect
<
double
>
&
,
Vector2
&
,
Vector2
&
,
template
void
GtoL
(
ss_vect
<
double
>
&
,
Vector2
&
,
Vector2
&
,
const
double
,
const
double
,
const
double
,
const
double
);
const
double
,
const
double
);
template
void
GtoL
(
ss_vect
<
tps
>
&
,
Vector2
&
,
Vector2
&
,
template
void
GtoL
(
ss_vect
<
tps
>
&
,
Vector2
&
,
Vector2
&
,
const
double
,
const
double
,
const
double
,
const
double
);
const
double
,
const
double
);
template
void
LtoG
(
ss_vect
<
tps
>
&
,
Vector2
&
,
Vector2
&
,
template
void
double
,
double
,
double
);
LtoG
(
ss_vect
<
tps
>
&
,
Vector2
&
,
Vector2
&
,
double
,
double
,
double
);
template
void
LtoG
(
ss_vect
<
double
>
&
,
Vector2
&
,
Vector2
&
,
template
void
LtoG
(
ss_vect
<
double
>
&
,
Vector2
&
,
Vector2
&
,
double
,
double
,
double
,
double
,
double
);
double
);
template
void
p_rot
(
double
,
ss_vect
<
double
>
&
);
template
void
p_rot
(
double
,
ss_vect
<
double
>
&
);
template
void
p_rot
(
double
,
ss_vect
<
tps
>
&
);
template
void
p_rot
(
double
,
ss_vect
<
tps
>
&
);
template
void
get_B2
(
const
double
,
const
double
[],
const
ss_vect
<
double
>
&
,
double
&
,
double
&
);
template
void
get_B2
(
const
double
,
const
double
[],
const
ss_vect
<
double
>
&
,
template
void
get_B2
(
const
double
,
const
tps
[],
const
ss_vect
<
tps
>
&
,
tps
&
,
double
&
,
double
&
);
tps
&
);
template
void
get_B2
(
const
double
,
const
tps
[],
const
ss_vect
<
tps
>
&
,
tps
&
,
tps
&
);
template
void
radiate
(
ss_vect
<
double
>
&
,
const
double
,
const
double
,
template
void
radiate
(
ss_vect
<
double
>
&
,
const
double
,
const
double
,
const
double
[]);
const
double
[]);
template
void
radiate
(
ss_vect
<
tps
>
&
,
const
double
,
const
double
,
template
void
radiate
(
ss_vect
<
tps
>
&
,
const
double
,
const
double
,
const
tps
[]);
const
tps
[]);
template
void
Drift
(
double
,
ss_vect
<
double
>
&
);
template
void
Drift
(
double
,
ss_vect
<
double
>
&
);
...
@@ -116,16 +112,14 @@ template void quad_fringe(double, ss_vect<double> &);
...
@@ -116,16 +112,14 @@ template void quad_fringe(double, ss_vect<double> &);
template
void
quad_fringe
(
double
,
ss_vect
<
tps
>
&
);
template
void
quad_fringe
(
double
,
ss_vect
<
tps
>
&
);
template
void
Drift_Pass
(
CellType
&
,
ss_vect
<
double
>
&
);
template
void
Drift_Pass
(
CellType
&
,
ss_vect
<
double
>
&
);
template
void
Drift_Pass
(
CellType
&
,
ss_vect
<
tps
>
&
);
template
void
Drift_Pass
(
CellType
&
,
ss_vect
<
tps
>
&
);
template
void
thin_kick
(
int
,
double
[],
double
,
double
,
double
,
template
void
thin_kick
(
int
,
double
[],
double
,
double
,
double
,
ss_vect
<
double
>
&
);
ss_vect
<
double
>
&
);
template
void
thin_kick
(
int
,
double
[],
double
,
double
,
double
,
template
void
thin_kick
(
int
,
double
[],
double
,
double
,
double
,
ss_vect
<
tps
>
&
);
ss_vect
<
tps
>
&
);
template
void
Mpole_Pass
(
CellType
&
,
ss_vect
<
double
>
&
);
template
void
Mpole_Pass
(
CellType
&
,
ss_vect
<
double
>
&
);
...
@@ -143,15 +137,11 @@ template void Wiggler_pass_EF(const elemtype &elem, ss_vect<double> &x);
...
@@ -143,15 +137,11 @@ template void Wiggler_pass_EF(const elemtype &elem, ss_vect<double> &x);
template
void
Wiggler_pass_EF
(
const
elemtype
&
elem
,
ss_vect
<
tps
>
&
x
);
template
void
Wiggler_pass_EF
(
const
elemtype
&
elem
,
ss_vect
<
tps
>
&
x
);
template
void
Wiggler_pass_EF2
(
int
nstep
,
double
L
,
template
void
Wiggler_pass_EF2
(
int
nstep
,
double
L
,
double
kxV
,
double
kxH
,
double
kxV
,
double
kxH
,
double
kz
,
double
kz
,
double
BoBrhoV
,
double
BoBrhoH
,
double
phi
,
ss_vect
<
double
>
&
x
);
double
BoBrhoV
,
double
BoBrhoH
,
double
phi
,
ss_vect
<
double
>
&
x
);
template
void
Wiggler_pass_EF2
(
int
nstep
,
double
L
,
template
void
Wiggler_pass_EF2
(
int
nstep
,
double
L
,
double
kxV
,
double
kxH
,
double
kxV
,
double
kxH
,
double
kz
,
double
kz
,
double
BoBrhoV
,
double
BoBrhoH
,
double
phi
,
ss_vect
<
tps
>
&
x
);
double
BoBrhoV
,
double
BoBrhoH
,
double
phi
,
ss_vect
<
tps
>
&
x
);
template
void
Wiggler_pass_EF3
(
const
elemtype
&
elem
,
ss_vect
<
double
>
&
x
);
template
void
Wiggler_pass_EF3
(
const
elemtype
&
elem
,
ss_vect
<
double
>
&
x
);
...
@@ -174,55 +164,50 @@ template void Solenoid_Pass(CellType &, ss_vect<double> &);
...
@@ -174,55 +164,50 @@ template void Solenoid_Pass(CellType &, ss_vect<double> &);
template
void
Solenoid_Pass
(
CellType
&
,
ss_vect
<
tps
>
&
);
template
void
Solenoid_Pass
(
CellType
&
,
ss_vect
<
tps
>
&
);
template
void
LinearInterpolation2
(
double
&
,
double
&
,
double
&
,
double
&
,
template
void
LinearInterpolation2
(
double
&
,
double
&
,
double
&
,
double
&
,
CellType
&
,
bool
&
,
int
);
CellType
&
,
bool
&
,
int
);
template
void
LinearInterpolation2
(
tps
&
,
tps
&
,
tps
&
,
tps
&
,
template
void
LinearInterpolation2
(
tps
&
,
tps
&
,
tps
&
,
tps
&
,
CellType
&
,
CellType
&
,
bool
&
,
int
);
bool
&
,
int
);
template
void
SplineInterpolation2
(
double
&
,
double
&
,
double
&
,
double
&
,
template
void
SplineInterpolation2
(
double
&
,
double
&
,
double
&
,
double
&
,
CellType
&
,
bool
&
,
int
);
CellType
&
,
bool
&
,
int
);
template
void
SplineInterpolation2
(
tps
&
,
tps
&
,
tps
&
,
tps
&
,
template
void
SplineInterpolation2
(
tps
&
,
tps
&
,
tps
&
,
tps
&
,
CellType
&
,
CellType
&
,
bool
&
,
int
);
bool
&
,
int
);
template
void
spline
(
const
double
[],
const
double
[],
int
const
,
template
void
spline
(
const
double
[],
const
double
[],
int
const
,
double
const
,
double
const
,
const
double
,
double
[]);
const
double
,
double
[]);
template
void
spline
(
const
double
[],
const
tps
[],
int
const
,
template
void
spline
(
const
double
[],
const
tps
[],
int
const
,
double
const
,
double
const
,
const
double
,
tps
[]);
const
double
,
tps
[]);
template
void
splint
(
const
double
[],
const
double
[],
const
double
[],
template
void
splint
(
const
double
[],
const
double
[],
const
double
[],
const
int
,
const
int
,
const
double
&
,
double
&
);
const
double
&
,
double
&
);
template
void
splint
(
const
double
[],
const
double
[],
const
double
[],
template
void
splint
(
const
double
[],
const
double
[],
const
double
[],
const
int
,
const
int
,
const
tps
&
,
tps
&
);
const
tps
&
,
tps
&
);
template
void
splint
(
const
double
[],
const
tps
[],
const
tps
[],
template
void
splint
(
const
double
[],
const
tps
[],
const
tps
[],
const
int
,
const
int
,
const
tps
&
,
tps
&
);
const
tps
&
,
tps
&
);
template
void
splin2
(
const
double
[],
const
double
[],
template
void
splin2
(
const
double
[],
const
double
[],
double
**
,
double
**
,
double
**
,
double
**
,
const
int
,
const
int
,
const
int
,
const
int
,
const
double
&
,
const
double
&
,
double
&
);
const
double
&
,
const
double
&
,
double
&
);
template
void
splin2
(
const
double
[],
const
double
[],
template
void
splin2
(
const
double
[],
const
double
[],
double
**
,
double
**
,
double
**
,
double
**
,
const
int
,
const
int
,
const
int
,
const
int
,
const
tps
&
,
const
tps
&
,
tps
&
);
const
tps
&
,
const
tps
&
,
tps
&
);
template
void
Insertion_Pass
(
CellType
&
,
ss_vect
<
double
>
&
);
template
void
Insertion_Pass
(
CellType
&
,
ss_vect
<
double
>
&
);
template
void
Insertion_Pass
(
CellType
&
,
ss_vect
<
tps
>
&
);
template
void
Insertion_Pass
(
CellType
&
,
ss_vect
<
tps
>
&
);
template
void
Elem_Pass
(
const
long
,
ss_vect
<
double
>
&
);
template
void
Elem_Pass
(
const
long
,
ss_vect
<
double
>
&
);
template
void
Elem_Pass
(
const
long
,
ss_vect
<
tps
>
&
);
template
void
Elem_Pass
(
const
long
,
ss_vect
<
tps
>
&
);
template
void
Cell_Pass
(
const
long
,
const
long
,
ss_vect
<
double
>
&
,
long
&
);
template
void
Cell_Pass
(
const
long
,
const
long
,
ss_vect
<
double
>
&
,
long
&
);
template
void
Cell_Pass
(
const
long
,
const
long
,
ss_vect
<
tps
>
&
,
long
&
);
template
void
Cell_Pass
(
const
long
,
const
long
,
ss_vect
<
tps
>
&
,
long
&
);
/* Global variable used through the code */
/* Global variable used through the code */
globvalrec
globval
;
globvalrec
globval
;
...
@@ -234,36 +219,36 @@ bool cellconcat;
...
@@ -234,36 +219,36 @@ bool cellconcat;
long
rseed0
,
rseed
;
long
rseed0
,
rseed
;
double
normcut_
;
double
normcut_
;
double
d_sign
(
double
a
,
double
b
)
double
d_sign
(
double
a
,
double
b
)
{
{
double
x
;
double
x
;
x
=
(
a
>=
0
?
a
:
-
a
);
x
=
(
a
>=
0
?
a
:
-
a
);
return
(
b
>=
0
?
x
:
-
x
);
return
(
b
>=
0
?
x
:
-
x
);
}
}
int
P_eof
(
FILE
*
f
)
int
P_eof
(
FILE
*
f
)
{
{
register
int
ch
;
register
int
ch
;
if
(
feof
(
f
))
return
1
;
if
(
feof
(
f
))
if
(
f
==
stdin
)
return
0
;
/* not safe to look-ahead on the keyboard! */
return
1
;
if
(
f
==
stdin
)
return
0
;
/* not safe to look-ahead on the keyboard! */
ch
=
getc
(
f
);
ch
=
getc
(
f
);
if
(
ch
==
EOF
)
return
1
;
if
(
ch
==
EOF
)
return
1
;
ungetc
(
ch
,
f
);
ungetc
(
ch
,
f
);
return
0
;
return
0
;
}
}
/* Check if at end of line (or end of entire file). */
/* Check if at end of line (or end of entire file). */
int
P_eoln
(
FILE
*
f
)
int
P_eoln
(
FILE
*
f
)
{
{
register
int
ch
;
register
int
ch
;
ch
=
getc
(
f
);
ch
=
getc
(
f
);
if
(
ch
==
EOF
)
return
1
;
if
(
ch
==
EOF
)
return
1
;
ungetc
(
ch
,
f
);
ungetc
(
ch
,
f
);
return
(
ch
==
'\n'
);
return
(
ch
==
'\n'
);
}
}
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment