Note: switching on any of the MARK options presumes that you have already opened a graphics window suitable for plotting the drift-line. Example:
Call plot_drift_area Call new_track Do Call get_cluster(x,y,z,n,e,done) If done Then Leave Call drift_microscopic(x, y, z, status, time, ... `mark-ion mark-att`, ... 5.0, 0.1, 0,0,0, histe) Say "Status = {status}, Drift time = {time} microsec" Call plot_drift_line Enddo Call plot_track Call plot_end
In this example, all electrons generated along a track are traced and plotted, marking locations where ionisation and attachment occurs.
The calculation of the electron trajectory is aborted with status "Energy exceeds E_maximum" if at any point the electron energy exceeds this value.
The trajectory will be inaccurate if the maximum energy is chosen too large.
The simplest way to find suitable values for this parameter is running MAGBOLTZ with the PLOT-DISTRIBUTION-FUNCTIONS option switched on. Beware that e_maximum must be suitable over the entire drift path of the electron, which may include a high field region in the vicinity of an anode.
[Default: 5 eV]
This energy must be strictly positive (non-zero) and less than e_maximum.
[Default: 2\ % of e_maximum.]
The norm of the initial velocity is taken from e_start, not from the direction vector. The normalisation is arbitrary.
All three components must be specified. If all 3\ components of the direction vector are zero, then an isotropic random vector will be generated.
[A random direction is assumed if no direction is specified.]
If this argument is on entry an existing histogram, then new entries will be added to it. This can be used to force a scale and also to accumulate statistics across multiple calls.
If this argument is of another type on entry, then the current value will be deleted and a new histogram will be booked with 100\ bins and ranging from 0 to e_maximum.
The cross sections present in the vector vary with e_maximum since Magboltz eliminates, for reasons of efficiency, negligibly small cross section terms.
The various terms can be identified with the help of the CROSS_SECTION_IDENTIFIER procedure:
Call drift_microscopic(x, y, z, status, time, ``, ... 100.0, 4.0, 0,0,0, histe, vec) For i From 1 To size(vec) Do Call cross_section_identifier(i, level, type) Say "Level {i} = {level}, count = {number(vec[i])}, type = {type}" Enddo
Formatted on 21/01/18 at 16:55.