New Features in MAD-9
Introduction
This page describes the new features of MAD-9 which are not available in
MAD-8:
Physical Actions
In order to make matching much more flexible,
the USE command has been removed.
In MAD-8 the example
USE,PERIOD=LINE1
BEAM,...
SURVEY
TWISS
TRACK
...
ENDTRACK
allows only the use of one beam line at a time.
In MAD-9, the equivalent commands are:
BEAM1:BEAM,...
SU1:SURVEY,LINE=LINE1;
TW1:TWISS,LINE=LINE1,BEAM=BEAM1;
TR1:TRACK,LINE=LINE1,BEAM=BEAM1;
...
ENDTRACK
The labels on the SURVEY, TWISS, and TRACK
commands are optional, but they may be referred to in matching.
The following should be noted:
-
If the BEAM command is not labelled, its name defaults to
UNNAMED_BEAM.
If it is labelled, different subsequent commands can refer to
different BEAM commands.
-
If no BEAM command is given on TWISS or
TRACK, the command UNNAMED_BEAM is used.
Its default definition is:
UNNAMED_BEAM:BEAM,PARTICLE=PROTON,PC=1,EX=1,EY=1,ET=1;
-
The TWISS and SURVEY commands create a table
object.
All values contained in a table object can be referred to in
matching with the syntax
table-name@place->column-name
To avoid re-computation of a table which does not change during
matching, declare it as STATIC.
Tabulation of Results
As opposed to MAD-8, MAD-9 creates a table object for each SURVEY
or TWISS command. The table contains a pointer to the element,
the accumulated length, and the accumulated transfer matrix. Once created,
the user may tabulate with the help of "canned" commands one of the following
sets:
- Eigenvectors.
- Courant-Snyder functions.
- Edwards-Teng functions.
- Mais-Ripken functions.
- Beam envelopes.
The user can also freely choose in a LIST command which
function(s) shall be tabulated.
Matching
Generated tables and the values which can be extracted for listing
may also be used in matching. It is possible to use more than one tables
in the same matching run. Tables which do not change as a function of
the matching parameters can be declared as "static". Such tables will
not be recomputed at each iteration.
Nesting of Lines and Sequences
A SEQUENCE can now also contain nested beam lines and sequences.
Some of its components can be declared as "shared".
Such components will exist only once in the program's memory,
and will have one set of errors, regardless of how many times they
are referred to.
Sequence Editor
The sequence editor now also deals with nested sequences.
It can replace any nested object.
The restrictions are:
- A LINE can never be modified, except by redefinition.
- A "shared" SEQUENCE can only be edited directly as the
topmost object. This means that it cannot be modified by editing
a sequence which contains it, but only by editing the shared sequence
itself.
Error Definitions
Multipole error definitions now make use of "vectors".
They may then be entered with much simpler expressions than in MAD-8:
VECTOR BS={...,...,...,...,...,...}; // Systematic components
VECTOR AS={...,...,...,...,...,...};
VECTOR BR={...,...,...,...,...,...}; // Random components
VECTOR AR={...,...,...,...,...,...};
ERROR,LINE=LHC;
SELECT,LINE=LHC,CLASS=QUADRUPOLE;
EFCOMP,KNR=BS+TABLE(1:6,TGAUSS(2.0))*BR,
KNS=AS+TABLE(1:6,TGAUSS(2.0))*AR;
fci, September 21, 1999