|
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_UNIFORMRND_GAUSS RND_EXP RND_POISSONRND_LANDAU TGCOFTYPE 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.