INTEGRATION-PARAMETERS 

&DRIFT: INTEGRATION-PARAMETERS


accuracy

Sets the accuracy of Runge_Kutta_Fehlberg drift-line integration.

This parameter enters in the update of the step size used in drift line integration. The initial value of this parameter is suitable for chambers with a size of several cm's which have a reasonably complicated field structure. If the field is very simple, or if the chamber is very small, then a smaller value should be chosen.

This parameter has no effect on Monte_Carlo integration and microscopic tracking.

[This parameter is initially set to 10\<SUP\>-8\</SUP\>.]


maximum_step

The maximum step size that is allowed.

The Runge_Kutta_Fehlberg drift-line integration method automatically updates the step length at each step. When traversing a large area with a very smooth field, the step size becomes large. If this is not desired, for instance because there is a fine structure behind the smooth area, then one should limit the step size with this option.

Recommended value: a maximum step length of order 1/10th-1/20th of the distance to be traversed.

This parameter has no effect on Monte_Carlo integration and microscopic tracking..

[By default, there is no limit to the step size.]


maximum_time

Sets the maximum time over which an ion will be tracked.

&CELL
&CELL -> plane" y = 0 v = 0
&CELL -> plane" y = 1 v = 1000

&GAS co2 add ion-mobility 2e-6 parameters ... transverse-ion-diffusion thermal ... longitudinal-ion-diffusion thermal

&DRIFT int-par monte-carlo-time 0.01 ... monte-carlo-maximum-time 8 area -0.0100 0 0.0100 0.0200

Call plot_drift_area For i From 1 To 5 Do Call drift_ion_mc(0, 0.0190, 0, status, time) Say "{status} {time} microsec" Call plot_drift_line Enddo Call plot_end

Call plot_drift_area For i From 1 To 1000 Do Call drift_ion_mc(0, 0.0190, 0, status, time) Say "{status} {time} microsec" Call get_drift_line(xd, yd, zd, td) Call plot_marker(number(xd[size(xd)]), number(yd[size(yd)]), `function-1`) Enddo Call plot_end

The first plot shows trajectories of 5 ions while the second plot shows the point reached when the cut-off time was reached.

[By default: no maximum]


step_size

The meaning of these parameters depends on the integration technique that is being applied.

MC-TIME-INTERVAL
Only used for Monte_Carlo tracking.

Steps will have a constant duration in time. Since electrons move much faster than ions, and since the same duration will be used for both, this option is of little practical use in situations where both types of particles are drifting.

[Default: 20 psec]

MC-DISTANCE-INTERVAL
Only used for Monte_Carlo tracking.

An approximately constant spatial length will be used for each step. The steps will as a rule not have exactly the requested length as a result of the diffusion process and to a lesser extent also through non-linearities in the field.

This is the most commonly used method since the same settings can be used for both electrons and ions.

[Default: 10 \&mu;m]

MC-COLLISIONS
In Monte_Carlo tracking, this requests a step length distribution with a mean roughly equal to the specified number of times mean free paths at the local electric and magnetic field.

When using microscopic tracking, the parameter determines how many collisions occur between 2 collisions which are recorded in the drift path. The parameter does not in any way influence tracking.

[Default: 100 steps]

None of these parameters has an effect on Runge_Kutta_Fehlberg integration.


scale

When performing Monte_Carlo drift-line integration, the diffusion tensor is longitudinally stretched at each step to allow for accelerations and transversely stretched to account for convergence of neighbouring drift-lines.

Excessively small and large scaling factors are indicative of a locally too large step_size. This is commonly the case in the vicinity of small electrodes such as wires. Garfield therefore reduces the step size locally if the scaling is found to lie outside the range given.

The minimum of the scaling range has to be larger than or equal to 0. The maximum has to be larger than 1.

Using the default range, one effectively uses the expressions for diffusion spread in the limit of infinitely small steps. This is not appropriate in case the mean free path is substantially larger than a few \&mu;m.

[Default: 0.95 as minimum and 1.05 as maximum.]


TRAP-RADIUS

Sets the trap distance (in terms of wire radii). If an electron or ion can be attracted by a wire (this depends on the charge on the wire but also on the setting of the CHECK-ALL-WIRES option) and if the particle passes closer by the wire than a distance of
ntrap*radius
then the electron or ion is considered to be caught by the wire.

When using microscopic tracking, it is advisable to set the radius to 1, i.e. not to consider an electron caught until it tries to enter the wire.

From the moment a wire is considered caught by a wire, a dedicated integration algorithm takes over which is better at estimating the residual drift time than the default algorithm.

[This parameter is preset to a value of the order of 2-5 (depending on program version). This can be too large if the wires are very thick but it may as well be too small for very thin wires.]


order

Sets the order with which the drift time, the diffusion, the multiplication and the attachment losses are interpolated when using prepared tracks.

For the lower orders, you may also specify the keywords LINEAR, QUADRATIC or PARABOLIC and CUBIC.

Although values between 1 and 10 are accepted, orders larger than 2 are not recommended since they tend to lead to oscillation.

[Default: 2, parabolic interpolation.]


COMPUTE-IF-INTERPOLATION-FAILS

In case a prepared track can not be interpolated at a certain point, this option requests that the drift-line be computed.

Reasons why a track can't be interpolated for a point are:

Computation time can increase dramatically if many points need to be computed.

If you specify ABANDON-IF-INTERPOLATION-FAILS, then such points are assigned a status of "Abandoned", a drift time, diffusion, multiplication, loss and incidence angle of 0.

[By default, drift-lines are computed when needed.]


CHECK-ALL-WIRES

Depending on their charge, wire can either attract a particle, repel it or have no effect. Wires can also have a multipole moment which makes them attractive from one side and not from another.

If the CHECK-ALL-WIRES option is in effect, then all wires, no matter their charge, are considered able to catch a particle. As soon as a particle comes closer to any wire than the TRAP-RADIUS, an attempt will be made to drift it to the wire.

This is meaningful if you have e.g. dipole (q=0) type wires, but this is harmful if you particles pass near repelling wires, such as gating grids. This option also interferes with calculation of signals due to ions drifting from the neighbourhood of the sense wires.

When not needed, this option also wastes a lot of CPU time.

[By default, only attracting wires are checked.]


CHECK-ATTRACTING-WIRES

When the CHECK-ATTRACTING-WIRES option is in effect, a particle will not be considered caught when it comes closer than the trap radius to a wire that is charged such that it can not attract the particle that is drifting.

This is usually the recommended mode but there are cases, such as the presence of wires with almost no net charge, but with a multipole moment, where the alternative is better suited.

[This option is on by default.]


REJECT-KINKS

This option requests drift-line calculation to be aborted if the drift-line makes a bend sharper than 90\&deg;. Such bends rarely occur in smooth fields, the most common case is a drift line that tries to cross a saddle point. The REJECT-KINKS option will ensure that the drift-line doesn't repeatedly go back and forth across the saddle point.

Drift-lines that are terminated because of this condition, are given the status "Bend sharper than pi/2".

Since fields obtained with finite element methods occasionally have areas with very uneven fields, it may be advisable in such cases to switch the option off.

This option has effect when drift-line integration is performed using the Runge_Kutta_Fehlberg method, but not when the Monte_Carlo or microscopic method is used.

[The option is on by default.]


ncloud

Sets the distance from the wire (in multiples of the wire radii) at which the integration routine for combined longitudinal and transverse diffusion changes from accumulating the diffusion covariance matrix to projecting the accumulated probability distribution onto the target wire.

[This parameter is preset to a value of the order of 2-5.]


method

When both transverse and longitudinal diffusion have been entered in the gas section, the diffusion is calculated by propagating a cloud along the drift-line.

When the drift-line approaches the wire, the cloud as a whole is projected onto the wire. For this phase, various algorithms are put at your disposal:

Additional information on:

 

\&epsilon;

A step is subdivided if the difference between the first and second order estimates differ more than a fraction \&epsilon; of the total first order estimate without subdivisions.

[The default is 10\<SUP\>-3\</SUP\>.]


stack

The stack depth is the maximum number of subdivisions allowed during the integration, in order to achieve the requested accuracy.

This parameter should be set to a small value (1 or 2) if the field is interpolated in a finite element map because the electric field, and hence the quantity to be integrated, is usually discontinuous across element boundaries.

If the field is computed from analytic formulae, then the maximum stack depth has usually little impact on the integration of the diffusion coefficients, since the latter are normally fairly smoothly varying quantities.

For the integration of the Townsend coefficient however, which suddenly grows from 0 to an appreciable value, the stack depth is a critical parameter in the accuracy of the computation. Although CPU time can go up rapidly with stack depth, it is a good idea to keep a large value: when not needed, no use of the stack is made.

[Default is 2, the maximum is given by MXSTCK, usually set to 5. The smallest permitted value is 1 and this setting will usually already give a reasonable accuracy. The default stack depth is large and may result in excessively lengthy computations.]


PROJECTED-PATH-INTEGRATION

Monte_Carlo drift paths are longer than the mean drift paths computed with the Runge_Kutta_Fehlberg method. Moreover, the path length computed with the Monte Carlo method increases with decreasing step length.

As a result, integrating the Townsend and the attachment coefficient over Monte Carlo paths leads to larger multiplications and larger losses than are obtained integrating over Runge Kutta Fehlberg paths. In addition, the integral over Monte Carlo paths is ill-defined since it depends on the step size.

To bypass this problem, programs such as Magboltz compute the Townsend coefficient by counting the number of electrons produced in a unit of projected path length measured along the average direction of motion, not in a unit of distance effectively covered by an electron during its random walk motion.

When the PROJECTED-PATH-INTEGRATION integration parameter is active, Garfield replicates this approach by integrating the Townsend and attachment coefficients over path segments projected on the local drift velocity vector. This ensures that the path length integral doesn't depend on the step size used in Monte Carlo integration.

Since electrons occasionally move backwards with respect to the average motion, without this leading to electron losses, the procedure tries to cancel backwards steps against nearby forward steps. A warning message is printed in case of net backwards motion (backscatter).

This option has effect on

[Default is TRUE-PATH-INTEGRATION.]


DRAW-ISOCHRONS

Requests isochrons to be drawn as lines, rather than marked.

When this option is selected, you may also wish to inspect the settings of the other isochron related options.

This action of this option can reversed with the MARK-ISOCHRONS option.

Isochrons are drawn using the ISOCHRON polyline representation.

[By default, isochrons are drawn as lines.]


MARK-ISOCHRONS

Requests marking the points on the isochrons.

If this option is active, no sorting needs to be done. Hence, the other isochron options are ignored. Plotting isochrons is fast with this option switched on.

This action of this option can reversed with the DRAW-ISOCHRONS option.

Isochrons are marked using the ISOCHRON polymarker representation.

[By default, isochrons are drawn as lines.]


SORT-ISOCHRONS

Depending on the source of the points that serve to draw the isochrons, they can be in some definite order or not.

By setting SORT-ISOCHRONS, an attempt is made to order the points in such a manner that the isochrons appear as reasonably smooth lines. Any attempt to do so is likely to fail for certain cases. Moreover, sorting can take a large amount of computing time - the problem is related to the notorious "travelling salesperson problem (TSP)".

Garfield, for these reasons uses a simple algorithm to sort the points on a contour: each contour is classified as being either linear or arcs. Linear contours are sorted along the main axis, points on arcs by angle with respect to the centre of gravity. Arcs that appear to be nearly full loops are drawn as closed contours, otherwise as an open arc. Whether an isochron is sorted as a line or as an arc depends on the setting of ISOCHRON-ASPECT-RATIO-SWITCH. Whether 2 points on an isochron are connected or not depends on the setting of ISOCHRON-CONNECTION-THRESHOLD.

The sorting algorithm by itself is fast - the check on intersects between isochrons and drift-lines in contrast is fairly time consuming.

Sorting is not useful (hence potentially harmful) when the drift-lines come from a track on which the points are ordered - which is usually the case. The sort is useful on the other hand for drift-lines starting from wires or other electrodes.

The SORT-ISOCHRONS option is ignored when MARK-ISOCHRONS is in effect.

[By default: sort done]


ISOCHRON-CONNECTION-THRESHOLD

Points on an isochron are only joined if they are less than a fraction iso_thr away from each other on the screen. Points that can not be connected are shown by a marker.

The fraction iso_thr can be set to any value between 0 (only markers) and 1 (isochrons are only interrupted by drift-line crossings).

Selecting NOISOCHRON-CONNECTION-THRESHOLD is tantamount to setting iso_thr to 1.

[Initial setting: 0.2]


ISOCHRON-ASPECT-RATIO-SWITCH

When an isochron appears to be more or less circular, its points are ordered by increasing angle with respect to the centre of gravity. If the isochron, on the other hand, seems to be more or less linear, the points are ordered along the longest principal axis of the distribution.

Whether the set is circular or linear is decided by computing the RMS in the two principal axes of the point distribution. If the ratio of these two RMS's exceeds iso_aspect, then the isochron is assumed to be linear, otherwise circular.

This switch has effect only when SORT-ISOCHRONS has been switched on.

[Initial setting: 3]


ISOCHRON-LOOP-THRESHOLD

Isochrons that appears to be circular (rather than linear, see ISOCHRON-ASPECT-RATIO-SWITCH for the conditions under which this happens) are closed if the largest distance between 2 points doesn't exceed a fraction iso_loop of the total length of the isochron.

[Initial setting: 0.2]


CHECK-ISOCHRON-CROSSINGS

Requests ensuring that drift-lines do not cross isochrons.

Such crossings can for instance occur if the drift-lines from a track flow left or right of an intermediate object, which itself also attracts some electrons, to a wire located behind the object.

This check is fairly time consuming.

[By default: check done]


Go to the top level, to &DRIFT, to INTEGRATION-PARAMETERS, to the topic index, to the table of contents, or to the full text.

Formatted on 21/01/18 at 16:55.