The GARFIELD program simulates the behavior of drift-chambers. It can be
used to calculate and plot the electrostatic field, the potential and the
drift-lines of both electrons and ions in drift chambers.
The program is primarily meant for use with chambers consisting only of
thin wires, infinite equipotential planes and infinite slabs of
dielectric
material, and it cannot handle three-dimensional structures.
A vectorized version of the program is available and can be activated
via the command GARFIELD input file (VECTOR
.
This version can be used
only from accounts enabled to use the Vector Facility. Please refer to
the Vectorization News section for more information on the performance
of the vectorized version.
GARFIELD will be available on the IBM, VAX, Cray and Apollo computers. Documentation for the program is available from the Program Library Office.
F.Carminati, M.A.Marquina
Performance of the vector version of GARFIELD (CNL 197)
The performance improvement obtained using the vector version of
the GARFIELD program is very dependent on the problem handled.
In general is between 1 and 10, but for some problems a much more
substantial performance gain can be achieved. The gain is basically
achieved replacing the CERN Program Library matrix handling routines
with the equivalent routines from the highly optimized Engineering and
Scientific Subroutine Library from IBM (ESSL).
The work of vectorization
of the code is still in progress, and some further enhancement in
the performance of the vector version can still be expected.
In the following we report a favorable but not artificial test run where a 1000 wires cell has been handled. The input file to GARFIELD is the following:
R.Veenhof, M.A.Marquina
PLOT
command,
allows plotting of graphs, histograms etc
of drift-line related quantities. A wide variety of variables can be
plotted - see HELP
for further information.
MIX
command, allows mixing of gases in arbitrary
proportions, based on the work of G. Schulz and Anna Peisert.
RND_UNIFORM
RND_GAUSS
RND_EXP
RND_POISSON
RND_LANDAU
T
G
C
O
F
TYPE
and GKS_IDENTIFIER
are mutually exclusive.
NOTERMINAL
and NOMETAFILE
suppress the corresponding graphics output.
For VM/CMS only, there is now the possibility to specify the name of the file to which Garfield writes its output during batch runs:
GARFRUN.FOR
is supplied along with the main program. When
installing the program, you should check that GARFRUN
looks for the
correct directory when starting GARFIELD
.
GARFRUN
has to be linked with
the object image of GARFMSG.MSG
.
EDGES=3
,
one can type TRIANGLE
and similarly for SQUARE
,
PENTAGON
, ... and OCTOGON
. To specify a cylinder
one may omit the EDGES
part by setting n to 0 or by
typing CIRCLE
.
Note: only circular tubes are currently available.
TUBE
statement doesn't precede the ROWS
,
one must specify the coordinate system on ROWS
.
The wires should be listed in cartesian coordinates.
Planes can not be used in conjunction with TUBE
,
but a periodicity in phi is allowed.
MIX
instruction has been corrected.
The fault only affected the MIX
instruction, not ARGON-80-CO2-20
and the like.
Work is in progress to interface Garfield to Magboltz (written by Steve Biagi).
Attachment coefficients can now be entered in the gas section and can be used to compute the electron losses along drift lines.
INTEGRATION-PARAMETERS
instruction were not transmitted to the integration routines.
This has been corrected.
A stack depth and accuracy have been added for attachment coefficients.
TABLE
and can hence
depend on the field strength, the keyword on the TABLE
command
is ION-MOBILITY
. If the ion
mobility is a constant, then use the format:
The default interpolation method for all gas properties, has been changed to Newton interpolation of order 1.
XT-PLOT
: PRINT-XT-RELATION
and PLOT-XT-RELATION
. Both
are on by default and can be used to suppress the printed table and the
graph of the x(t) relation.
The x-axis in the x(t) correlation plots has been changed to match the
X-RANGE
, not the x part of the AREA
.
Two options have been added for PLOT GRAPH
: ON
and N
. The keyword ON
should be followed by a curve parametrisation in terms of the variable
T
which runs from 0 to 1.
N
specifies the number of points in the graph, for
instance
The initialisation of the PATH
variable in SINGLE
has been corrected.
Also the PRINT
keyword is now properly identified.
The following variables have been added to the selection function and the
function to be minimised, used by the MINIMISE
instruction:
E
B
VELOCITY
ARRIVAL-TIME-DISTRIBUTION
has two new options:
SINGLE-CLUSTER
allows generating a single cluster at a random
position. This option can be useful when simulating photons. This
option is off by default.
KEEP-HISTOGRAMS
requests that the arrival time distribution
histograms be kept.
They are assigned to global variables and can therefore be
accessed after the command has completed.
DRIFT
command
are now based on 2nd order
Newton rather than spline interpolations of the drift line.
Frame for polar coordinates plotted in a similar way as for Cartesian
coordinates. The GRID
option is now honoured.
The order of the arguments to the colour setting routines has been corrected (blue and green were interchanged).
A new kind of global variable has been added: histogram. In principle, all arithmetic allowed on numbers can be applied to histograms. Mixed mode arithmetic between numbers and histograms is permitted. Various procedures are available to create, display and delete histograms.
Several procedure calls for retrieving information about the cell and for plotting have been added:
*LINUX
.
This flag has the same effect as for instance
*IBMRT
or *SUN
(UNIX).
Correction in the potential for chambers with precisely one plane in x, one in y, no periodicities treated in vector mode. Summing of the single wire contributions for this potential is now done in double precision so as to enhance the accuracy.
Triangular, square up to octogonal tubes are now available. Tubes with more edges can be added on request. Phi-periodicity in polygonal tubes is not yet available.
New option CHARGE-CHECK
to verify the quality of the capacitance
matrix inversion. Not meaningful for IBM vector compilations
because the capacitance matrix is solved without inversion in
this case.
Compact format cell datasets written with earlier versions of the program can not be read with the present version.
TABLE
. The extrapolation and interpolation
methods can be specified as for other entries.
Both the transverse and the longitudinal components of the
diffusion coefficients can be entered via the TABLE
statement.
The extrapolation and interpolation methods can be specified
as for other entries.
Compact format gas datasets written with earlier versions of the program can not be read with the present version.
An accuracy problem has been detected in the ARRIVAL
instruction.
The mean arrival time of all electrons was wrong by a few percent
as a result of this - the mean arrival time of the selected electron
should be correct with the default parameter settings.
The plots and tables produced by the ARRIVAL
instructions now also
show the spread in the arrival time of all electrons and of the
elected electrons. The format of the output dataset has been changed
accordingly.
Two function, GLOBAL
and TYPE
, have been added.
GLOBAL
returns the
value of the global variable whose name is given as argument (of
type string). TYPE
returns the type of its argument in the form of
a string.
Several new procedure have been added: DRIFT_ELECTRON
,
INQUIRE_TYPE
, INQUIRE_HISTOGRAM
.
Their parameter lists are described in the manual
and in the help file.
At the request of users, several array dimensions have been increased. As a result, Garfield now needs approximately 10 Mb to run on VM.
The front-end program for Vax now selects an executable depending on the machine on which the program is to be run.
FORCE
, has been added to compute the force acting
on a wire and its deflection.
In the presence of a magnetic field, all these quantities are computed for a series of angles between E and B but for a fixed magnetic field strength. When the quantities are required, they are interpolated in a 2-dimensional table in E/p and E-B angle.
The diffusion coefficients should now be entered multiplied by the square root of the pressure in view of the scaling properties for this quantity. This brings the diffusion in line with the Townsend and attachment coefficients which were already entered in a scaling manner. This modification should be invisble if you use built-in gas mixture and if you use MIX or MAGBOLTZ.
An ion mobility can manually be added to the tables prepared by
the MIX
and MAGBOLTZ
commands.
The kind of axes, linear or logarithmic, for the various gas plots
has been brought under user control (AXES
statement).
ARRIVAL
instruction now accepts several selected electrons
in a single instruction - without noticeable increase in CPU time
consumption. Moreover, the selected electrons can now also be
set to LAST
, ONE-BUT-LAST
etc.
An instruction similar to ARRIVAL
has been added,
TIMING
, which
has the functionality of ARRIVAL
but for 2 dimensional areas.
The default angular coverage for the initial search in XT-PLOT
has been changed to [-90,+90] degrees.
WAIT-BEFORE-PLOT
and
WAIT-AFTER-PLOT
which can be used to suppress the prompt before and after the plots.
Zhengyong Feng has written an interface from GKS to HIGZ to simplify the life of Garfield users who have a workstation. The article below provides details about this interface. The longer term plan is to replace GKS by PHIGS, not by HIGZ.
HIGZ
, has been introduced as an alternative to
the various GKS flags. A loader message will be issued for routines
GTX and ITX: the interface contains a routine called GTX that calls
the HIGZ routine
ITX which in turn has an entry point called GTX.
See below for more general information about the interface.
Garfield now runs also on csf, both in interactive mode and in batch. All Unix-like machine flags can be used for compilation. Garfield jobs for csf can be submitted from CERNVM via NQS.
The goal of this work is just to use
HIGZ
for replacing GKS in GARFIELD.
This work has been done by introducing a minimized GKS-HIGZ interface
(+PATCH, GKSHIGZ) and modifying some graphics subroutines in GARFIELD
(+PATCH, GRAPHICS) with a flag of HIGZ
.
Some GKS functions (inquiry,
PICK, segments) are missing, but they are not vital for the functioning
of Garfield.
Text positions of a picture on screen and on paper (by printing ps-file)
are different. The positions on paper are mostly expected. However, problems
concerning TEXT and PICK should be tasks of the next steps of this work.
GARFIELD with HIGZ has been tested with SGI and HP machines. I don't think there will be any difficulties with other machines. Bugs, questions, critiques and suggestions are highly welcome.
MIX
and MAGBOLTZ
commands.
The Magboltz parametrisations for methane, ethane, propane,
isobutane and
Major improvement in the integration of the transverse + longitudinal diffusion in the presence of a magnetic field. In the presence of a strong B field, a cloud that approaches a wire becomes very narrow, but is not aligned with the wire. Rather, the cloud spirals towards the wire. This misalignment was not taken into account correctly and resulted in an underestimate of the diffusion, sometimes by a large factor.
Various parameters related to drift line integration,
such as EPSILON
, TRAP
and parameters
used for integrating diffusion, have been moved
into the INTEGRATION-PARAMETERS
command.
Track interpolation for tracks that cross a tube wall has been improved, in particular the timing histograms for the last electron should be more accurate.
It has correctly been pointed out the the component of the drift velocity parallel to B (the E.B term) is missing if the Lorentz angle is tabulated. This will be addressed in a future release.
HIGZ produced PS files are now properly closed. By adding routines that simulate GKS inquiry, various graphics functions (such as setting colour and other attributes) now also work with HIGZ.
CALL
statement seems to be
popular, the documentation for this feature has been extended.
A make file for Unix systems has been provided by Michel Roethlisberger/IBM. The program runs on SP2, taking advantage of the ESSL subroutine library.
Ian McLaren has prepared a compilation procedure for a wide variety of Unix workstations.
The CERN program library is no longer updated on VM.
Since the Q-disk front-end EXEC is no longer suitable
for running the program, Garfield users are asked to
include the following statement in their PROFILE EXEC
:
For more information, please contact Michel Roethlisberger/IBM Tel: 7080 or 0/7915561, or mro@chvm1.vnet.ibm.com.
In parallel, work is in progress to interface the HEED program of Igor Smirnov (Gatchina) with Garfield. The HEED program computes amongst others the cluster spacing and cluster size distribution in gas mixtures.
To handle the probability of very large cluster sizes more accurately, the random cluster size generator has been replaced by one that works with higher accuracy and better random number generators.
It has been found that the transverse diffusion inside Magboltz is defined in a frame with the electric field as one of the axes, whereas the transverse component in Garfield is orthogonal to the direction of motion. This inconsistency was discovered shortly before the release, and is therefore present in the currently distributed version.
The sign of the angle in XT-PLOT
has been changed to bring it
in line with the angle used by ARRIVAL
and TIMING
.
The random number generators used, for instance, for arrival time calculations are gradually being replaced by more modern ones.
Werner Riegler has found that the first part of the leading edge of
the ion tails was missing. The missing part corresponds to the signal
induced by the ions in the first, approximately,
&DRIFT
and
in &FIELD
and the contour plot in &DRIFT TABLE
have been made to work
with HIGZ.
The latter two require the colour definitions from the
garfinit
file described below.
There is a known problem with text plotted at an angle by HIGZ. This problem is being investigated.
An instruction has been added to inspect the set of colours
currently defined (!MAP
).
A file containing colour definitions and colour representations for many items is available. Users with a colour terminal are advised to read this file in at the beginning of a session. If the file is given the proper name, this will be done automatically at startup. The representation definitions can be modified and further colours can be added but the colours that are present should not be deleted. This file can also contain instructions to define further workstations.
GLOBAL
and CALL
statements
are now respected.
Also, algebra translation of these statements is postponed
to execution time in case the statements contain a { }
pair.
To simplify entering character constants, a new delimiter, the reverse quote (`) has been introduced. This delimiter is similar to the single and double quote in that it keeps words containing separators together, and similar to the double quote in that there is no case conversion between a pair of reverse quotes. But it differs from the other kinds of quotes in that the quotes form part of the word. To illustrate its use, the two following (equivalent commands):
PARSE
) has been added which permits obtaining
user input while reading an input file.
GARFINIT INPUT *
(VM/CMS),
GARFIELD.DAT
or SYS$LOGIN:GARFIELD.DAT
(Vax/VMS) or garfinit
, ~/garfinit
,
~/Garfield/Files/garfinit
(Unix)
will be read at startup, if the file exists. This
permits a certain amount of tailoring of the graphics,
see the graphics section for more details.
The errors on the fit parameters are now returned in the CALL
statements, consult the manual for the new argument lists.
PROGRESS-PRINT
) has been added to enable the user to
follow the progress of some, particularly lengthy, calculations.
This option can be set, like the other global options, from the
command line and is then called PROGRESS_PRINT
or
progress_print
depending on the system.
A potential for a 3-dimensional point charge inside a round tube with a wire at its center is being introduced. The potential is zero both on the tube wall and on the wire.
MAGBOLTZ
command have been modified:
HIGH-PRECISION
SECOND-ORDER-TERMS
LOW-PRECISION
FIRST-ORDER-TERMS
ITERATE-ALPHA
SWITCH
The gas identifier generated automatically by the MAGBOLTZ
command rounded the fractions to the nearest integer percentage.
This has been changed.
The graph of the Townsend and attachment coefficients made in
response to the GAS-PLOT
option, have been combined into a single
plot.
PROGRESS-PRINT
now has an effect on MIX
and MAGBOLTZ
.
New are the following features:
REPEAT
option has disappeared since DO loops offer more
functionality.
SIGNAL-PLOT
option has disappeared, and been replaced by
a command PLOT-SIGNAL
that immediately plots the signals
SIGNAL-PLOT
accepts a series of arguments by which one
can selectively plot parts of the signals
WRITE-SIGNAL
now writes the signals that are available at
the moment the command is issued, rather than during the
computation of the signal. Arguments have been added to
write out pieces of the signals.
ARRIVAL
based on signals. Since the needs of the users vary
substantially, it does not seem meaningful to provide a complete
instruction.
WAIT-AFTER-PLOT
is now respected when linking with
HIGZ.
A new data type, the matrix, has been added. With it comes a series of procedures.
Users are reminded that curly brackets should only be used
to substitute expressions in terms of global variables into
normal instructions. They should not be used after IF
,
DO
, GLOBAL
, CALL
or
PARSE
(the control statements).
RNDM_initialisation
option used to result in calls to RNDM
only. Since this random number generator is being replaced by
calls to RANLUX, also RANLUX is called a number of times now if
the option has been selected.
INPUT_LISTING
option has been added as command line argument.
The Linux version has been updated by Alfred Zentek, zentek@dslep01.gsi.de.
Executables, make files, help files etc. for various Unix systems
can be found in /afs/cern.ch/user/r/rjd/Garfield/Files
.
http://consult.cern.ch/writeup/garfield
.
&OPTIMISATION
section, a new command, GRAVITY
, and further arguments
in the ROWS
listing, have been added.
As a result, compact format cell datasets written by earlier
versions, should be re-created.
FORCES
instruction has been further improved.
It now computes the profile of a wire, taking the dependence of
the forces on the wire displacement, and also the gravitational
force, into account.
In addition, the instruction can now deal with certain types of
collective wire movement.
The format of this statement has changed, consult the help file
for information.
MULTIPOLE
command has been
corrected.
The command now also prints the 0th order term.
Plotting of the distortion of the magnetic field due to the difference in susceptibility of the wire material and the gas used to be disabled by mistake, this has been corrected now.
An option, KEEP-RESULTS
, has been added to the
CHECK
command to save the surface field in a
matrix.
The warning on non-convergence issued by the routines that compute the transverse and longitudinal diffusion in Magboltz is now only printed if debugging has been requested. The non-convergence is genuine, but the back-up method to calculate these quantities seems to function satisfactorily.
Correction in the gas table plotting routine to handle cases correctly where both the Townsend and the attachment coefficient are uniformly zero.
SINGLE
command didn't return the attachment
coefficients correctly.
The command has been fixed.
The ARRIVAL
instruction now accepts an option
KEEP-RESULTS
to save the x(t) relation as a
set of matrices.
RESOLUTION
keyword.
PLOT_TEXT
and PLOT_AREA
procedures now respect logarithmic scaling.
INQUIRE_MEMBER
to test the existence of a member within a library;
INTERPOLATE_i
;
PLOT_LINE
now accepts an option SMOOTH
to plot a smooth line through
a set of points.
garfield.packlib
soft link.
On Unix systems, the shell used for executing Unix commands
is now by default set to the shell from which Garfield was started.
A shell can also be selected explicitely by the user using the
SHELL
command.
The best place to put this command is probably .garfinit
.
The forces acting in chambers with a tube were sofar not available. They have now been added.
HEED
.
An option has been added to the MAGBOLTZ
command to
request plots of the energy distribution functions
F0, F1, F2, F3
.
The transverse diffusion as returned by Magboltz is, in some cases, 20 % lower then in previous releases. This is the result of a modification in the interface, recommended by the author of Magboltz.
The Lorentz angle as computed in the absence of Magboltz generated
data had a wrong sign for the
Various instructions in this section have a modified format with a
view to the Heed interface and to Monte Carlo drift line integration.
In particular, the behaviour of the DRIFT TRACK
command
has changed.
In a couple of commands, the conversion of internal to polar coordinates has been cleaned up - although the absence of some conversions was inconvenient, results such as drift times, diffusion etc are not believed to have been incorrect.
The buffer for intermediate results now uses an algorithm to re-use entries that were little used or used long ago. This buffer is not directly accessible to the user, error messages related to buffer overflow appeared. It might be appropriate to recall that, at compile time, 2 versions of this buffer are offered: one optimised for hardware that has a lot of memory, and one for hardware with a large cache.
The assignment of electron induced signals to the classes "direct" and "cross induced" has been slightly modified in view of the optional Monte Carlo integration.
PLOT_CELL
, PLOT_DRIFT_LINE
.
Also the Monte Carlo drift line calculation routines
as well as the Heed cluster generation routines
can be accessed via calls.
Plotting of histograms with a total weight equal to zero gave a divide by zero, this has been corrected. Filling of auto-range histograms with weighted entries has been improved.
When iterating and leaving a loop from within a conditional block, the IF context was sometimes incorrectly restored, giving rise to an addressing error, this has been corrected.
The interpretation of A-B-C
(and similar for
divisions and exponentiations) has been brought in line with
what is usual in Fortran, namely A-(B+C)
rather
than A-(B-C)
.
However, the program does not simulate the drift of conduction electrons to cathodes. The program can be run as a stand-alone batch program, and it is connected to Garfield, a drift-chamber simulation program.
The program is written on Fortran-77.
MAGBOLTZ
has been changed from those derived by
Phelps and Bulos to those calculated by Nakamura,
slightly modified in the low energy region.
The Phelps and Bulos cross sections are still available as
CO2-OLD
while the unmodified Nakamura cross sections
are known as CO2-NAKAMURA
.
The agreement
with the Zhao et al. data [NIM A340 (1994) 485] has
significantly improved with this modification.
TIMING
instruction has been revised in the light of
Heed generated tracks and Monte Carlo drift line integration.
TRACK
statement prior to a signal calculation.
The default clustering model (a fixed number of clusters at regular
intervals) is not suitable for signal calculations.
!CONTOUR-PARAMETERS
.
This is useful when plotting unusually twisted contours and when
plotting contours in a very small area.
The labels on the contours used to be placed in too small gaps when HIGZ was used as graphics systems. This has been fixed.
-noprofile
(Unix) or
/NOPROFILE
(Vax/VMS) has been added to disable
reading a .garfinit
or GARFINIT.DAT
file.
BACKGROUND-FIELD
command.
PLOT SURFACE
in HIGZ compilations
has been corrected (the x and y axis labels were interchanged).
A command, VIEWING-PLANE
, has been added for making
plots of 2D cuts through 3D field maps,
An instruction, called ADD
, has been added which enables
one to add/replace elements to/of the gas tables.
Comparison of Magboltz calculations and measurements has shown that the diffusions estimates returned sofar by the interface, are less accurate than other estimates available in Magboltz. After consultation with the Steve Biagi, the default set of diffusion coefficients has been modified - the old set can still be obtained via options described in the help file. The transverse diffusion is particularly affected by this modification.
We have also observed that the Townsend coefficients computed with the ITERATE-ALPHA and SWITCH options, although in principle more accurate, agree substantially less well with the data for several gasses than those computed with the NOITERATE-ALPHA option.
The AXES
command has been extended and has been
renamed PLOT-OPTIONS
.
CLUSTERING-HISTOGRAMS
command
to enable user control of the histogram binning.
A numerical inaccuracy has been corrected in cells with 4 equipotential planes. Signals were accurate close to the wires, but inaccurate close to the planes.
Signals can now be computed on conductors for which a weighting
field has been entered via the FIELD-MAP
command in the
cell section.
The units of signals written out to a dataset are now under user control.
ARROW-TOP-ANGLE
graphics command.
graphics command.
Tickmarks were absent in the first decade of log scaled axes. This has been corrected now.
Two new models of markers have been added: TRIANGLE
and
HEXAGON
, the triangles can have 4 orientations.
IGNORE-UNDERFLOW
has been added to the
algebra subsection to set exponential underflows equal to zero,
without further warnings.
The argument list of procedure GET_CLUSTER
has been
modified to include the energy deposited in the cluster.
A mistake in the return arguments of FIT_FUNCTION
has
been corrected - the correct results were displayed, but they were
not stored in the proper global variables.
Procedures have been added for the conversion between matrices
and histograms, MATRIX_TO_HISTOGRAM
and
HISTOGRAM_TO_MATRIX
.
A new procedure AVALANCHE
has been added.
This procedure is an extension of the Monte Carlo drift line integration
procedures in that it traces secondary electrons and ions.
Transverse and longitudinal diffusion, as well as attachment are taken
into account.
Inclusion of space charge effects is envisaged.
WRITE
instructions now check whether the dataset
to be written to, already contains a member of the same type and
with the same name.
A set of global options has been added to control the action to be
taken if such a member exists.
SOLIDS
has been added which can be
used to define the 3-dimensional objects present in the chamber
in case the field is derived from a field map.
Entering these objects is not mandatory, but is helpful when
studying collection efficiencies, computing calibration curves
and signals.
Some commands like RESET
have been modified
in line with the addition of the SOLIDS
command.
It is hoped that this information can in the future be derived
from files produced by the finite element programs.
AREA
which now accepts
a considerably extended argument list.
PARAMETERS
statement and are taken into account
when performing Monte Carlo drift line integration for ions.
The diffusion coefficients are for the time being assumed not to
depend on the field, this limitation can be lifted if needed.
The TEMPERATURE
and PRESSURE
statements
now accept a unit following the temperature and pressure.
The latter, for instance, can therefore be entered in more common
units like the atm or the hPa rather than in Torr.
Steve Biagi has released a Monte Carlo version of Magboltz which should have a substantially higher accuracy. An interface with this program is being written - meanwhile, interested users should contact Steve Biagi directly.
AREA
command as in the field section
has been introduced here.
PLOT_TRACK
and PLOT_DRIFT_LINE
has been modified to match the new projection scheme.
Procedures for drifting negatively charged ions have been added.
A procedure that integrates the charge contained in a cylindrical or spherical area has been added. There is now also a procedure that computes the flux of the electric field through a parallelgram.
Intrinsic functions called MINIMUM
and MAXIMUM
have been added.
They operate on histograms and matrices and return the minimum and the
maximum number of entries or value of the argument histogram or matrix.
/afs/cern.ch/project/parc/bin/garfield
.
For further information, please contact
parcsp@cern.ch or
Juan Manuel Guijarro.
Commands have been added that perform a save and retrieve of
binary field maps.
These commands are called SAVE-FIELD-MAP
and
READ-FIELD-MAP
.
Binary field maps are about 10 times smaller than Maxwell field maps,
and reading them is more than 10 times faster, but binary field maps
are not portable between computer systems.
An interface has been added for version 4.0 of the Ansoft program "Maxwell 3D Field Simulator". This is at CERN the successor to version 1.1 of another Ansoft program, "Maxwell 3D Parameter Extractor".
PLOT GRAPH
that give control
over the vertical scale of the graph, over the number of points and
over the curve to be used for making the graph.
Contours close to conductors and dielectric media were sofar not always drawn. The contour routines have been modified to considerably reduce the region over which this occurs.
GET
automatically initialises Heed.
The procedure TRANSVERSE_DIFFUSION
sofar returned the
longitudinal diffusion while LONGITUDINAL_DIFFUSION
returned the transverse diffusion (Hervé Borel).
This has been corrected.
CHECK-KINKS
has
been added which can be used to suppress the check for sharp bends.
Termination of drift lines for fields derived from a map has been improved.
Facilities are being added for drifting particles in vacuum.
é
becomes é
.
With a view to the increased use of procedures, most procedures now verify that they are called in an appropriate environment. In general this means that e.g. drift procedures should not be called before both a cell and a gas section have been completed.
The ELECTRIC_FIELD
, ELECTRIC_FIELD_3
and
SIGNAL_FIELD
procedures now accept Matrix type arguments.
The z-components of the weighting field has been added to the
argument list of SIGNAL_FIELD
.
PLANE
, TUBE
and FIELD-MAP
commands has been extended in line with the
modifications in signal computations.
PLOT VECTOR
command now plots 3-vectors rather than
2-vectors.
For backward compatibility, 2-vectors are still accepted (a value of
0 is assumed for the z-component).
The field plotting area is no longer reset when entering the field and optimisation sections.
PLOT-OPTIONS
statement now gives control over the
range of the vertical axis of the various graphs.
Drift lines that end in a solid are now attributed a status code
of the type Hit X solid n
where X
stands for
the label of the solid that has been hit and n
for its
sequence number as shown in the OPTION CELL-PRINT
listing.
Isochrone plotting with drift in field maps, and in 3 dimensions,
has been enabled.
Only isochrones for drift lines that end on a wire or on a solid
are shown.
The set of options that control the appearance of isochrones has been
enlarged and has been moved to the INTEGRATION-PARAMETERS
command.
The representation of isochrones has been renamed from
DRIFT-CONTOUR
to ISOCHRONES
-
the same change in name should be applied to your .garfinit
file.
The CHECK-KINKS
option has been renamed REJECT-KINKS
and has been moved to the INTEGRATION-PARAMETERS
command.
Also the CHECK-ALL-WIRES
and CHECK-ATTRACTING-WIRES
options have been moved to INTEGRATION-PARAMETERS
.
In order to avoid confusion, the drift velocity is now written
VDX, VDY, VDZ, VD
in the PLOT-FIELD
command instead of VX, VY, VZ, V
.
The same naming convention has been adopted in the signal section.
Until now, by default a fixed number of equally spaced clusters
were generated on a track.
Some users have accidentally computed signals with such tracks.
To prevent this, there is no default clustering model anymore.
Before issuing a DRIFT TRACK
command, one therefore
has to specify both a track location and a clustering model.
The former default can be obtained with TRACK FIXED
.
SELECT
statements.
All signal related commands that used to work in the past should
continue to work.
Routines have been added that perform an accurate integration of the
induced charge within time windows.
These routines can accessed with the PLOT-FIELD
command
and via a set of procedures.
The signal section now accepts the same AREA
statements
as the drift and field sections.
The PLOT-FIELD
has been replaced by a command in line
with the commands by the same name in the field and drift sections.
The new command can plot 3-dimensional weighting fields, and in
addition show the total charge induced by particles released from a
given point and moving to an electrode.
Note however that the syntax is not backward compatible.
Several more SGML entities have been added with conversions to their PostScript equivalents for easier typing of formulae and French text.
GET_SIGNAL
,
now have a read-out group number as first argument,
and no longer a wire number.
The drift line computation procedures return several new
status codes: all planes and the tube have each been given their
own status, and particles that hit a solid receive the status
Hit an X solid
where X
stands for the label of the solid that has been hit.
Another significant change is that the various drift procedures
return the same status codes as the commands.
This will unfortunately make input files fail that search
for a wire label in a given position in the string.
Character 13, which some mailer programs attach at the end of lines in attachments, has been added to the list of characters that are by default translated to a blank.
garfield.tcl
.
Jeff Templon and Florin Cotorobai have revived the compilation of Garfield on Linux, which sofar has been taken care of by Alfred Zentek.
Field maps with both an axial periodicity around an axis and a translation periodicity along the same axis, can now be processed.
Elimination of the excluded parts of the background in Maxwell Field Simulator 3D field maps has been improved.
The WIRE-MARKERS
option has been made available in the
field, drift and signal sections.
Occasionally, plotting the materials present in field map resulted in the screen being coloured uniformly. A new attempt has been made to avoid this.
FIELD-MAP
statement in the cell section.
TRACK
statement.
They generate points along the track that are spaced according to
the flux of the electric field.
The ARRIVAL-TIME-DISTRIBUTION
command has been extended
to deal with other electrodes than wires.
The command now also operates in the y-z and z-y planes.
Existing input files which use this command need to be modified.
Track interpolation has been improved, options have been added to
INTEGRATION-PARAMETERS
which give better control over
the interpolation order and the way delta electrons are dealt with.
Drifting from the intersection between the viewing plane and selected solids has been added.
COMPONENTS
statement has been extended
to allow for non-constant, parametrised or tabulated magnetic fields.
FORCES
command plots, on request, a diagram which shows
whether a wire is in stable or labile equilibrium.
The CHANGE-VOLTAGES
command now also works for planes
and for the tube.
Garfield tries to take maximum advantage of Magboltz 2 by copying the full diffusion matrix, with correlation coefficients, and in a magnetic field, all 3 components of the drift velocity.
As a consequence of the increased amount of gas data extracted from Magboltz, compact format gas datasets generated with Garfield version 6 can not be read with version 7.
PROJECTED-PATH
integration parameter, which to a large extent eliminates the
dependence of the avalanche size on the Monte Carlo step size.
On the other hand, a new procedure RND_MULTIPLICATION
has been written which simulates the avalanche fluctuation over
a fixed path, taking attachment and multiplication into account.
LAYOUT
graphics command.
Environment variables are now expanded in metafile names.
RND_MULTIPLICATION
mentioned before, and random number generators according to functions
and histograms (RND_FUNCTION
and RND_HISTOGRAM
).
The function random number generator is based on the
FUNLUX
routine from the CERN program library.
Garbage collect for matrix assignments in loops has been improved.
The Monte Carlo technique allows the solution of the transport equations
to be independent of the series expansions in Legendre Polynomials or
Spherical Harmonics required by analytic solutions of the Boltzmann
equations.
The technique lends itself easily to use by non-experts since the only
inputs now required are the electric and magnetic fields,
the angle between the fields, the temperature and pressure and the
fractional composition of the gasses.
The program now has the option of
calculating its own electron energy integration range, this option is
enabled if the energy integration range is set to 0.0
.
Intermediate output at six equally spaced integration intervals allows
the accuracy of the solution to be monitored.
An accuracy of better than 1 % for the drift velocity and 2 %
on the diffusion coefficients can usually be guaranteed for a number of
collisions given by the setting the input parameter
NMAX = 10
.
It is possible however in very weakly quenched noble gass mixtures with
less than 5 % molecular quencher that the solution will require a
higher value of NMAX
.
In pure noble gasses at low electric fields below the ionisation region where only elastic collisions occur it is recommended that the Magboltz 1 is used. The analytic solution, Magboltz 1, in the elastic limit is an exact solution and the computation time is reduced in this case.
Experience with the new program shows that the accuracy with magnetic fields is much improved this is primarily because the solution is more accurate than the Legendre expansion technique and is equivalent to the Spherical Harmonics expansion solution of Ness and Robson, see e.g. Phys. Rev. 47 E (1993) 327. A typical accuracy equal to measurement accuracy of about 1° can now be obtained for very large Lorentz angles (see first reference).
The program is available as a Fortran listing and includes some comments
and instructions in the listing. The external requirements are only an
efficient real*8
random number generator.
The RNDM2
generator fom the CERN library is used in the program.
The typical execution time on an DEC Alpha is about 10 seconds for a
better than 1 % calculation accuracy.
There is an extensive list of about 30 gasses covered by the program and
mixtures of up to any four of them can be simulated.
The author can be contacted at stephen.biagi@hotmail.co.uk for further information.
DELTA-ELECTRONS
option was
switched off (the option is by default switched on).
INPUT
and
OUTPUT
have been added which contain the names
of the current input and output files.