Skip to content
Snippets Groups Projects
Commit f08b124d authored by zhang's avatar zhang
Browse files

20/10/2010

1)  Use the general function GetnKid( ) to get the numbers of ch, cv, qt, bpm in soleil lattice.

2)  Functions: get_bpm_number( ),
                    get_hcorr_number( ),
                    get_vcorr_number( ),
                    get_qt_number( )
         are obsolete.
parent 33889202
No related branches found
No related tags found
No related merge requests found
...@@ -81,6 +81,7 @@ void Read_Lattice(char *fic) ...@@ -81,6 +81,7 @@ void Read_Lattice(char *fic)
bool chroma = true; bool chroma = true;
double dP = 0.0; double dP = 0.0;
const double RFacceptance = 1.0; // maximum exusrtion during tracking const double RFacceptance = 1.0; // maximum exusrtion during tracking
Vector2 beta, alpha, eta, etap; Vector2 beta, alpha, eta, etap;
Vector codvect; Vector codvect;
// double beta[2], alpha[2], eta[2], etap[2], codvect[6]; // double beta[2], alpha[2], eta[2], etap[2], codvect[6];
...@@ -136,9 +137,9 @@ void Read_Lattice(char *fic) ...@@ -136,9 +137,9 @@ void Read_Lattice(char *fic)
/* Creator of all the matrices for each element */ /* Creator of all the matrices for each element */
Cell_Init(); Cell_Init();
// for a ring
if (globval.RingType == 1) if (globval.RingType == 1)
{ // for a ring {
/* Defines global variables for Tracy code */ /* Defines global variables for Tracy code */
...@@ -155,11 +156,11 @@ void Read_Lattice(char *fic) ...@@ -155,11 +156,11 @@ void Read_Lattice(char *fic)
globval.CODimax = 40L; /* maximum number of iterations for COD algo */ globval.CODimax = 40L; /* maximum number of iterations for COD algo */
globval.dPcommon = 1e-10; /* Common energy step for energy differentiation */ globval.dPcommon = 1e-10; /* Common energy step for energy differentiation */
globval.delta_RF = RFacceptance;/* energy acceptance for SOLEIL */ globval.delta_RF = RFacceptance;/* energy acceptance for SOLEIL */
globval.bpm = get_bpm_number(); /* number of bpm into the latice */ globval.qt = ElemIndex("qt"); /* get family index of skew quadrupole */
globval.hcorr = get_hcorr_number(); /* number of horizontal corrector into the lattice */ globval.hcorr = ElemIndex("ch"); /* get family index of horizontal corrector */
globval.vcorr = get_vcorr_number(); /* number of vertical corrector into the lattice */ globval.vcorr = ElemIndex("cv"); /* get family index of vertical corrector */
globval.qt = get_qt_number(); /* number of skew quad into the lattice */ globval.bpm = ElemIndex("bpm"); /* get family index of bpm*/
// globval.g = ElemIndex("g"); /* get family index of girder*/
/* define x/y physical aperture */ /* define x/y physical aperture */
//ChamberOff(); //ChamberOff();
...@@ -171,9 +172,9 @@ void Read_Lattice(char *fic) ...@@ -171,9 +172,9 @@ void Read_Lattice(char *fic)
Cell_SetdP(dP); /* added for correcting BUG if non convergence: compute on momentum linear matrices */ Cell_SetdP(dP); /* added for correcting BUG if non convergence: compute on momentum linear matrices */
} }
else else
{ { // for transfer lines
// for transfer lines
/* Initial settings : */ /* Initial settings : */
beta[0] = 8.1; beta[0] = 8.1;
alpha[0] = 0.0; alpha[0] = 0.0;
...@@ -201,12 +202,12 @@ void Read_Lattice(char *fic) ...@@ -201,12 +202,12 @@ void Read_Lattice(char *fic)
globval.CODimax = 10L; /* maximum number of iterations for COD algo */ globval.CODimax = 10L; /* maximum number of iterations for COD algo */
globval.dPcommon = 1e-10; /* Common energy step for energy differentiation */ globval.dPcommon = 1e-10; /* Common energy step for energy differentiation */
globval.delta_RF = 0.10; /* 6% + epsilon energy acceptance for SOLEIL */ globval.delta_RF = 0.10; /* 6% + epsilon energy acceptance for SOLEIL */
globval.dPparticle = dP; globval.dPparticle = dP;
globval.bpm = get_bpm_number(); /* number of bpm into the latice */ globval.qt = ElemIndex("qt"); /* get family index of skew quadrupole */
globval.hcorr = get_hcorr_number(); /* number of horizontal corrector into the lattice */ globval.hcorr = ElemIndex("ch"); /* get family index of horizontal corrector */
globval.vcorr = get_vcorr_number(); /* number of vertical corrector into the lattice */ globval.vcorr = ElemIndex("vh"); /* get family index of vertical corrector */
globval.qt = get_qt_number(); /* number of skew quad into the lattice */ globval.bpm = ElemIndex("bpm"); /* get family index of bpm*/
// globval.g = ElemIndex("g"); /* get family index of girder*/
ChamberOff(); ChamberOff();
TransTwiss(alpha, beta, eta, etap, codvect); TransTwiss(alpha, beta, eta, etap, codvect);
...@@ -216,294 +217,6 @@ void Read_Lattice(char *fic) ...@@ -216,294 +217,6 @@ void Read_Lattice(char *fic)
} }
/****************************************************************************/
/* void ChamberOn(void)
Purpose:
Switch on the vacuum chamber
Input:
none
Output:
none
Return:
none
Global variables:
none
specific functions:
DefineCh
Comments:
none
****************************************************************************/
// void ChamberOn(void)
// {
// DefineCh();
// status.chambre = true;
// }
/****************************************************************************/
/* void ChamberOff(void)
Purpose:
Switch off the vacuum chamber
Still a check at 1 meter for avoiding numerical divergences
Input:
none
Output:
none
Return:
none
Global variables:
globval
specific functions:
none
Comments:
16/06/03 Introduction of an asymmetrical vaccuum vessel
// ****************************************************************************/
// void ChamberOff(void)
// {
// int i;
// for (i = 0; i <= globval.Cell_nLoc; i++)
// {
// globval.maxamplH[i][0] = -1.0;
// globval.maxamplH[i][1] = 1.0;
// globval.maxamplV[i][0] = -1.0;
// globval.maxamplV[i][1] = 1.0;
// }
// status.chambre = false;
// }
/****************************************************************************/
/* void PrintCh(void)
Purpose:
Print the vacuum chamber in the file chambre.out
Input:
none
Output:
none
Return:
none
Global variables:
globval
specific functions:
getglobv_, getelem
Comments:
16/06/03 Introduction of an asymmetrical vaccuum vessel
****************************************************************************/
// void PrintCh(void)
// {
// FILE *f;
// long i = 0, j = 0;
// const char *fic = "chambre.out";
// const long Taille = 5;
// CellType Cell;
// struct tm *newtime;
// /* Get time and date */
// newtime = GetTime();
// /* open the lattice Input file */
// if ((f = fopen(fic, "w")) == NULL)
// {
// fprintf(stderr, "PrintCh: Error while opening file %s \n",
// fic);
// exit(1);
// }
// fprintf(f, "# TRACY II v. SYNCHROTRON SOLEIL -- %s -- %s \n", fic,
// asctime2(&newtime));
// fprintf(f, "# i name s -xch(mm) +xch(mm) zch (mm)\n#\n");
// for (i = 1; i <= globval.Cell_nLoc; i++)
// {
// getelem(i, &Cell);
// fprintf(f, "%4ld ", i);
// for (j = 0; j < Taille; j++)
// {
// if (Cell.Elem.PName[j] != ' ')
// putc(Cell.Elem.PName[j], f);
// else
// putc(' ', f);
// }
// fprintf(f, " %6.2f %7.3f %7.3f %7.3f\n", Cell.S,
// globval.maxamplH[i][0] * 1E3,
// globval.maxamplH[i][1] * 1E3,
// globval.maxamplV[i][1] * 1E3);
// }
// fclose(f);
// }
/****************************************************************************/
/* void GetChromTrac(long Nb, long Nbtour, double emax, double *xix, double *xiz)
Purpose:
Computes chromaticities by tracking
Input:
Nb point number
Nbtour turn number
emax energy step
Output:
xix horizontal chromaticity
xiz vertical chromaticity
Return:
none
Global variables:
trace
Specific functions:
Trac_Simple, Get_NAFF
Comments:
27/04/03 chromaticities are now output arguments
****************************************************************************/
// #define nterm 2
// void GetChromTrac(long Nb, long Nbtour, double emax, double *xix, double *xiz)
// {
// double Tab[6][NTURN], fx[nterm], fz[nterm];
// int nb_freq[2] = { 0, 0 }; /* frequency number to look for */
// int i = 0;
// boolean status = true;
// double x = 1e-6, xp = 0.0, z = 1e-6, zp = 0.0;
// double x0 = 1e-6, xp0 = 0.0, z0 = 1e-6, zp0 = 0.0;
// double nux1, nux2, nuz1, nuz2;
// /* initializations */
// for (i = 0; i < nterm; i++)
// {
// fx[i] = 0.0;
// fz[i] = 0.0;
// }
// /* end init */
// /* Tracking for delta = emax and computing tunes */
// x = x0;
// xp = xp0;
// z = z0;
// zp = zp0;
// Trac_Simple(x, xp, z, zp, emax, 0.0, Nbtour, Tab, &status);
// Get_NAFF(nterm, Nbtour, Tab, fx, fz, nb_freq);
// nux1 = (fabs (fx[0]) > 1e-8 ? fx[0] : fx[1]);
// nuz1 = fz[0];
// if (trace)
// fprintf(stdout,
// "\n Entering routine for chroma using tracking\n");
// if (trace)
// fprintf(stdout, "emax= % 10.6e nux1=% 10.6e nuz1= % 10.6e\n",
// emax, nux1, nuz1);
// /* Tracking for delta = -emax and computing tunes */
// x = x0;
// xp = xp0;
// z = z0;
// zp = zp0;
// Trac_Simple(x, xp, z, zp, -emax, 0.0, Nbtour, Tab, &status);
// Get_NAFF(nterm, Nbtour, Tab, fx, fz, nb_freq);
// if (trace)
// fprintf(stdout,
// "nturn=%6ld x=% 10.5g xp=% 10.5g z=% 10.5g zp=% 10.5g delta=% 10.5g ctau=% 10.5g \n",
// Nbtour, Tab[0][Nbtour - 1], Tab[1][Nbtour - 1],
// Tab[2][Nbtour - 1], Tab[3][Nbtour - 1],
// Tab[4][Nbtour - 1], Tab[5][Nbtour - 1]);
// nux2 = (fabs(fx[0]) > 1e-8 ? fx[0] : fx[1]);
// nuz2 = fz[0];
// if (trace)
// fprintf(stdout,
// "emax= % 10.6e nux2= % 10.6e nuz2= % 10.6e\n", -emax,
// nux2, nuz2);
// /* Computing chromaticities */
// *xix = (nux2 - nux1) * 0.5 / emax;
// *xiz = (nuz2 - nuz1) * 0.5 / emax;
// if (trace)
// fprintf (stdout,
// " Exiting routine for chroma using tracking\n\n");
// }
// #undef nterm
// /****************************************************************************/
// /* void GetTuneTrac(long Nbtour, double emax, double *nux, double *nuz)
// Purpose:
// Computes chromaticities by tracking
// Input:
// Nb point number
// Nbtour turn number
// emax energy step
// Output:
// none
// Return:
// none
// Global variables:
// trace
// Specific functions:
// Trac_Simple, Get_NAFF
// Comments:
// none
// ****************************************************************************/
// #define nterm 2
// void GetTuneTrac(long Nbtour, double emax, double *nux, double *nuz)
// {
// double Tab[6][NTURN], fx[nterm], fz[nterm];
// int nb_freq[2];
// boolean status;
// double x = 1e-6, xp = 0.0, z = 1e-6, zp = 0.0;
// Trac_Simple(x, xp, z, zp, emax, 0.0, Nbtour, Tab, &status);
// Get_NAFF(nterm, Nbtour, Tab, fx, fz, nb_freq);
// *nux = (fabs (fx[0]) > 1e-8 ? fx[0] : fx[1]);
// *nuz = fz[0];
// }
// #undef nterm
/****************************************************************************/ /****************************************************************************/
/* long get_bpm_number(void) /* long get_bpm_number(void)
...@@ -549,7 +262,7 @@ long get_bpm_number(void) ...@@ -549,7 +262,7 @@ long get_bpm_number(void)
} }
/****************************************************************************/ /****************************************************************************/
/* long get_bpm_number(void) /* long get_hcorr_number(void)
Purpose: called by Read_Lattice Purpose: called by Read_Lattice
Compute number of corrector into the lattice Compute number of corrector into the lattice
...@@ -683,28 +396,3 @@ long get_qt_number(void) ...@@ -683,28 +396,3 @@ long get_qt_number(void)
/****************************************************************************
*
Purpose:
Input:
none
Output:
Return:
none
Global variables:
none
specific functions:
none
Comments:
none
****************************************************************************/
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment