Skip to content
Snippets Groups Projects
Commit 9946c6a6 authored by nadolski's avatar nadolski
Browse files

LNLS New format

parent 5cb9c194
No related branches found
No related tags found
No related merge requests found
/* 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');
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment