Input of FLUX7 consists of records, consisting of a keyword, followed by additional input, if any.
A keyword is a character string, starting at the begin of a new line.
These records may be interspersed with comment lines, starting with the character '#', and empty lines.
Comment lines are not allowed inside a record.
This is not an input option, but is mentioned here for completeness. For a different potential a differently built program must be used.
Three versions of flux are automatically built, each using a different potential: fluxzbl, fluxhf, and fluxmol, for the ZBL, HF (see the hf page), and Moliere potential respectively. The original name 'flux7', linked to 'fluxzbl', remains the default. The input files for each of these potentials are the same. To choose a different potential, choose a different program file. e.g. 'ini -p fluxhf gaas211'.
This ' -p programname ' option is also available in the scripts fluxgo and makeflx.
The program fluxchk, to check an input file, uses the zbl potential.
NLAYER: (1 or 2), number of sublayers (there may be more than 2 layers, but only 2 kinds) The sample is supposed to consist of a structure on NLAYER layers, optionnally repeated several times. Scematically, if NLAYER=2: lattice1 || lattice2 || lattice1 || lattice2 .... The layer thicknesses and possible discontinuities at the interfaces are specified by keyword INTERFACE, see below. It is assumed that all layers of each sublattice have the same thickness, unless option THICKNESS is given.
Used when the sample contains a mixture of different kinds of atoms that occupy the same kind of sites, e.g. Si_x Ge_(1-x). Also useful to create a fraction of vacancies. This keyword may only be given before LATTICE Input the following information, for K=1..NLAYER { NLA0(K): Number of constituents in the unmixed host lattice Less or equal to parameter NLS in the configuration file. (e.g. 1 for Si, 2 for GaAs) NLA1(L,K), L=1..NLA0(K): Number of actual constituents for each site. for L=1..NLA0(K): { ATOMFRAC(LL,L,K), (LL=1,NLA1(L,K)) : Atomic fractions. normalized to 1 for each constituent site. If the sum is less then 1 the remainder will be treated as vacancies. A sum > 1 or a negative fraction is illegal. } } Example: Layer 1 is GaAs, layer 2 is In_x Ga_(1-x) As 2 1 1 0.95 1.0 2 2 1 0.15 0.85 1.0 Here layer 1 has 2 constituents each with 1 kind of atom. the Ga site 0.95 occupancy, i.e. 5% vacancies. Layer 2 has 2 constituents, the first occupied by 2 kinds of atoms, (fractions 0.15 and 0.85), the second by 1 kind ("fraction" 1.0). For a Si_x Ge_(1-x) layer with x=0.15 the input would be: 1 2 0.15 0.85 (1 constituent in original lattice, 2 actual constituents)
See also the configuration page
The following information, for K=1..NLAYER { NAME(K): Identifier of lattice type and projection, as in file COMBIN.FIG or COMBI4.FIG. Layout: <filename>:<identifier> Default for <filename> is COMBIN.FIG. Difference between upper and lower case is ignored Examples: GaAs100 COMBIN.FIG:NACL111 COMBI4.FIG:GAN2113 Some of the choices that are available: PBF100 PBF110 PBF111 GAAS100 GAAS entries may also be used for Si GAAS100NS don't use, except for testing GAAS110 GAAS111 GAAS211R replaces the original GAAS211 BCC100 BCC110 BCC111 FCC100 FCC111 FCC110 NACL100 NACL111 NACL110 SPINEL100 SPINEL110 For an up to date list, use the commands plotfig COMBIN.FIG:LIST , or plotfig COMBI4.FIG:LIST Or look in files COMBI4.FIG and COMBIN.FIG
NL(K) : Number of constituents in host lattice (1 for Si, 2 for GaAs) ( In the MIXED case, set NL(K) to the sum over L of NLA1(L,K), see above; and in the following, first specify the data for the atom type(s) at the site of the first constituent, and then for the next constituent if any. Thus, for the example given above NL(1) = 2, NL(2) = 3 , Layer 1: L=1 and L=2 correspond to the atoms Ga and As Layer 2: L=1,2,3 correspond to the atoms In, Ga and As ) Z1,(Z2(L,K),L=1..NL(K)): Charge numbers Z of ion and lattice atoms. A1,(A2(L,K),L=1..NL(K)): Mass numbers. [for PbF2:L=1 for Pb,L=2 for F] (DEBYE(L,K),L=1..NL(K)): Debye temperatures. TEMP : Temperature of lattice in Kelvin. Note: if a negative value is input for the Debye temperature it is considered to be -u1 in Angstrom units. In that case TEMP is not used. UA(L,K),L=1..NLC(K) : Lattice constants in Angstrom the number of lattice constants NLC(K) needed is given in the file COMBIN.FIG or COMBI4.FIG. COMBIN.FIG: for cubic symmetry, input 1 lattice constant UA(K) hexagonal or tetragonal lattices, 2 constants: UA(K),UC(K) COMBI4.FIG: in general 3 lattice constants UA(K), UB(K), UC(K) Note: UA*UB*UC is the volume of the unit cell implied by 'APC' (atoms per cell) of COMBI4.FIG. e.g. for a hexagonal lattice give a, a*sqrt(3)/2, c Make sure UA,UB,UC are consistent with the X- Y- Z-units given in COMBI4.FIG. }
Remark. The specification of the sample composition is done by keywords MIXED and LATTICE. There may be 1, 2, 3, or more species of atoms in any one layer of the sample. The order in which these elements appear in the further input and output, is the order specified under keyword LATTICE:
Layer 1, site 1, atom kind 1 Layer 1, site 1, atom kind 2 Layer 1, site 2, atom kind 1 Layer 1, site 2, atom kind 2 [ ... similar for layer 2 ...] Layer 2, site 2, atom kind 2
The numbering is from 1 upwards, skipping elements that are absent.
Thus for a sample of GaP_(x)As_(1-x)
the constituents Ga P As are
numbered 1, 2, 3, respectively, not 1, 3, 4.
Also in programs that process the flux output (rbsim, show, praak)
the same numbering applies.
T0 : Initial energy of channeling particle in MeV. TMIN : Minimum energy of channeling particle in MeV. Ion history is no longer followed if T < TMIN
EFILE : file name of file containing initial energy distribution (ZVAL(L,K),L=1,NL(K),K=1,NLAYER): number of valence electrons This is an alternative to keyword T0 ZVAL is used to estimate energy dependent stopping power
These ZVAL values are not used when the energy dependence is specified via keyword ENERGY DEPENDENT STOPPING.
When keyword ENERGY DEPENDENT STOPPING is given keyword DEDX VALENCE is also needed
CFILE : file name of file containing initial coordinates. (This should be a file as prepared by a previous run with option EXITCOORD) ((ROTi(I,J),I=1,3),J=1,3): rotation matrix (TRANSi(I), I=1,3): XY translation vector This rotation and translation are applied to the initial coordinates of each ion. The initial coordinates mostly supersede information specified by T0 and ANGLES. Nevertheless these keywords should also be given.
optional
LOSS: if LOSS > 0, energy is lost (default, ion beam studies) if LOSS < 0, energy is gained (emission channeling) if LOSS = 0, no electronic energy loss
optional
NBIN: Number of bins to use in distributions of NEP, dE, etc. versus depth. Default: NBIN=100 The energy loss and straggling distributions are always output. Other distributions, including the flux (!) are only output when requested.
use if RBS spectra are to be simulated
use for transmitted energy distribution
One of the keywords DEDX WEIGHTED or DEDX UNWEIGHTED must be given.
(this keyword may be abbreviated to ENERGY DEPENDENT)
optional
NSTOP: Number of energy values for which stopping parameters are given. ESTOP(I), I=1,NSTOP : those energy values, in MeV. The energy values should be consecutive, highest energy first.
Stopping parameters corresponding to the set of energies specified in array ESTOP (or for a single average energy value if NSTOP = 1) are input under </DEDX VALENCE> and </ELCORE>
In the simulations linear interpolation in energy will takes place for the data supplied under 'DEDX VALENCE' and 'ELCORE'.
((DEDXVL(K,M), DEDXVP(K,M)), K=1,NLAYER), M=1,NSTOP) where DEDXVL : (dE/dx)_valence,local (in eV/Angstrom) DEDXVP : (dE/dx)_valence,plasma "
If the option ENERGY DEPENDENT STOPPING is not given, the value of NSTOP = 1 (no energy dependence).
for M=1,NSTOP, for K=1,NLAYER, for L=1,NL(K), for I=1,50 ELCORE(I,L,K,M) 50 values for deltaE(b) due to core electrons for b= 2/50 step 2/50 to 2 Angstrom. deltaE in eV/atom. ---> If NL(K)=2: 50 values for L=1, then 50 values for L=2.
If the option ENERGY DEPENDENT STOPPING is not given, the value of NSTOP = 1 (no energy dependence).
One of the ZDIST keywords is required
ZIMAX : average depth of impurity atoms (top of the gaussian). ZIFWHM: FWHM of impurity distribution. ( both in Angstrom )
ZIMAX : Maximum depth. A uniform impurity distribution is assumed.
ZIMAX : Maximum depth. ZIFWHM: Width of the exponential distribution (both in Angstrom). C(Z) = exp (-Z/ZIFWHM) , Z=[0..ZIMAX]
optional
NCROSS : Number of values of (ECROSS,CROSS) for the impurity ECROSS(J),CROSS(J), for J=1,NCROSS : Energy (MeV) and cross section The values of ECROSS must be in ascending order. if NCROSS=0 : Use no cross section if NCROSS<0 : Use Rutherford cross section for K=1,NLAYER { for L=1,NL(K) NCROSS(L), (ECROSS(J),CROSS(J),J=1..NCROSS(L), } i.e. the same type of information for the host atoms with the same options NCROSS=0 and NCROSS < 0. NL(K) as specified under LATTICE.
The input to be given with flux7.7 input option CROSS SECTION now requires one record for the impurity atoms, and one record for each of the host atom types in the same order as specified with the LATTICE option. Here a record means one of the numbers -1 or 0, or a table of energy and cross section values as described in the file input.hlp. (Previously, in flux7.6 and earlier, option CROSS SECTION always required two of such records, one for the impurity atoms, and one for one of the host atoms)
optional
XSD : Beam standard deviation horizontal (degrees) YSD : " " " vertical " ANGH : Angle of horizontal with scan direction (angle of horizontal with crystal X-Z plane is PHI + ANGH) default: no angular beam spread
optional
BEAMX, BEAMY: size of the incident beam spot, in Angstrom units Normally the incident beam spot is taken to be one unit cell. With this option it may be enlarged to a size BEAMX x BEAMY. The user should take care to take BEAMX and BEAMY equal to an integer number of X or Y units.
optional
AMAWBEAM: maximum permitted angle with beam direction (degrees). This affects quantities for the transmitted beam. and also the energy loss versus depth (if DEDX UNWEIGHTED is used).
optional
{ ZINTERF(K): DEPTH (ANGSTROM) OF INTERFACE WINTERF(K): FWHM of spread in interface depth (Angstrom) ((ROTM(I,J,K),I=1,3),J=1,3): rotation matrix (TRANSL(I,K), I=1,3): XY translation vector } for K=1..NLAYER Notes: The information pertains to the interface at the END of layer K. ZINTERF(K) is possibly overruled by keyword THICKNESS, below
optional
NTHICK : number of data that follow (THICK(N), N=1,NTHICK) : layer thickness in angstrom Here the layers are counted consecutively, i.e. each interface increases N by 1. Note: this option may only be used in conjunction with 'INTERFACE' but overrules the value of ZINTERF(K) given there.
optional
CURPLANE: specifies a plane perpendicular to the cylinder axis. by giving angle phi of intersection with the xy plane (CURRADIUS(K), K=1,NLAYER): radius of curvature (Angstrom)
optional
ISEED : arbitrary integer for random number generator. default value 0: program selects NSEED.
NTRX : Number of tracks to follow.
optional
NRUN : Number of runs with NTRX tracks. (In order to estimate uncertainties the whole calculations may be split up in a number of runs). default value: NRUN=1
NANG : Number of incident angles ANG(1,K),ANG(2,K), FOR K=1,NANG : THETA and PHI in degrees. If PHI>360 is given, the program will select a random PHI for every track. If THETA>360 is given, the program will simulate a random sample, by making a random step in the xy-plane after every z-step. (The same effect might be obtained by choosing a large value for the vibration amplitude).
NANG : Number of incident angles THETA0(K), PHI0(K), TILT(K), FOR K=1,NANG : all in degrees. This is an alternative to keyword 'ANGLES'. The ion beam is first tilted by an angle THETA0 away from the axis, in the plane defined by PHI0, and subsequently tilted by an angle TILT away from the plane defined by PHI0. Thus the plane through the ion beam and the direction (THETA0, PHI0) is perpendicular to the plane defined by PHI0.
optional
NF: flux distribution is accumulated in a NF*NF array The following only if NLAYER > 1 : LFLX: layer number for which flux distribution is accumulated.
optional
NV: final velocity vector distribution accumulated in NV*NV array ANGPMDG: angular range at exit of sample
optional
CRITXDG: Critical angle (x component) CRITYDG: Critical angle (y component) These values are only used to calculate the number of channeled particles as a function of depth, i.e. particles within the angular range specified. Needless to say this is not a good criterion for 'channeling' (should be based on transverse kinetic + *potential* energy).
optional
TFMIN, TFMAX: (MeV) min and max of range of final energy, used in energy distribution of exiting ions
optional
IXYOUT: XY coordinates are output every IXYOUT collisions when option XYOUT is selected. Note: with this option the output is excessively large don't use it with more then a few hundred tracks
optional
output the effective values of the contributions of the core electrons and the valence electrons as a function of depth
only needed if the file is used as input for YIMP
A,DEBYE: Mass number, Debye temperature or -u1(angstrom) IAUTO: Flag, determining which impurity sites to use.
optional
output the values of x,y (Angstrom) px, py (direction cosines) and final energy (MeV) at the end of each track
optional
output the values of x,y (Angstrom) px, py (direction cosines) and final energy (MeV) at the beginning of each track.
optional
Input ends with either this keyword, or with end of file.
NLayer 2
LATTICE GAAS110 2 2, 31 16.6 4.0026, 70 35 505 505 295 5.451
GAAS110 2 2, 31 15 4.0026, 70 31 505 505 295 5.451
T0 1.2 0.1
DEDX WEIGHTED
DEDX VALENCE 5 5 5 5
ELCORE 2952.34425 1800.18715 1271.69475 996.56024 815.33825 677.07929 565.96217 475.84281 402.99485 344.34768 297.22641 259.23518 228.42793 203.20736 182.31085 164.75638 149.78680 136.83590 125.48489 115.38506 106.32874 98.12903 90.65195 83.79762 77.49045 71.66814 66.28406 61.29951 56.68076 52.40061 48.43780 44.75896 41.35486 38.20475 35.28573 32.58782 30.09162 27.78803 25.65800 23.69152 21.87606 20.20241 18.65532 17.22861 15.91469 14.70160 13.58479 12.55414 11.60375 10.72825 1553.76140 1149.28762 891.97571 686.26399 516.97646 381.56348 276.82621 197.93006 139.81670 97.76732 67.77909 46.64987 31.90752 21.70739 14.69968 9.91410 6.66284 4.46380 2.98231 1.98757 1.32169 0.87713 0.58105 0.38428 0.25376 0.16735 0.11022 0.07250 0.04765 0.03128 0.02051 0.01344 0.00880 0.00576 0.00376 0.00246 0.00161 0.00105 0.00068 0.00044 0.00029 0.00019 0.00012 0.00008 0.00005 0.00003 0.00002 0.00001 0.00001 0.00001 2952.34425 1800.18715 1271.69475 996.56024 815.33825 677.07929 565.96217 475.84281 402.99485 344.34768 297.22641 259.23518 228.42793 203.20736 182.31085 164.75638 149.78680 136.83590 125.48489 115.38506 106.32874 98.12903 90.65195 83.79762 77.49045 71.66814 66.28406 61.29951 56.68076 52.40061 48.43780 44.75896 41.35486 38.20475 35.28573 32.58782 30.09162 27.78803 25.65800 23.69152 21.87606 20.20241 18.65532 17.22861 15.91469 14.70160 13.58479 12.55414 11.60375 10.72825 1553.76140 1149.28762 891.97571 686.26399 516.97646 381.56348 276.82621 197.93006 139.81670 97.76732 67.77909 46.64987 31.90752 21.70739 14.69968 9.91410 6.66284 4.46380 2.98231 1.98757 1.32169 0.87713 0.58105 0.38428 0.25376 0.16735 0.11022 0.07250 0.04765 0.03128 0.02051 0.01344 0.00880 0.00576 0.00376 0.00246 0.00161 0.00105 0.00068 0.00044 0.00029 0.00019 0.00012 0.00008 0.00005 0.00003 0.00002 0.00001 0.00001 0.00001
ZDIST UNIFORM 3946
INTERFACE 477.950 0 1 0 0 0 1 -0.0028 0 +0.0028 1 0.0 0.0 0.0 477.950 0 1 0 0 0 1 +0.0028 0 -0.0028 1 0.0 0.0 0.0
BEAM DIVERGENCE 0.01 0.01 0.0
NTRACKS 20000
NBIN 256
ANGLES 11 5.51 -3.47 5.506 -2.78 5.504 -2.086 5.502 -1.391 5.5 -0.696 5.5 0 5.5 0.696 5.502 1.391 5.504 2.086 5.506 2.78 5.51 3.47
EOI
The basic way to start up Flux is to prepare a file name ``batflux.ini
''
see batflux.ini in the flux7 page. This a rather roundabout way that was designed
in the days that a Flux simulation might take days, and might be
interrupted due to computer troubles. To make life easier a few scripts
are supplied, in directory $FLUX/BIN. They are
ini , intended to run Flux in the background as a batch job makeflx , to run Flux from the terminal fluxgo , to run Flux from the terminal and send the output through a filter
Usage: ini [-p program] [-h host] [-t|b|f|c] filename (without extension)
<program> may be flux7, fluxhf, fluxmol, fluxzbl, or fluxchk <filename> assumes the file <filename>.inp to be present. The file batflux.ini (see above) will be created, unless option -c is given, see below option -t: the same as "-p fluxchk", i.e. test the input option -b: batch= "true" (this is the default) option -f: batch= "false" option -c: continue a previously aborted run of Flux. From the data in batflux.ini it is found out where to continue
Usage: makeflx [-p program] filename (without extension)
Usage: fluxgo [ -p programname] arguments
exactly 1, 3, or 9 arguments required
basename=$1
to filter out two coordinates,
from the set x,y,px,py,T,x0,y0,px0,py0,T0
(program coordfilter is invoked)
xname=$2 yname=$3
to sort those coordinates as a distribution f(x,y)
(program fxyfilter is invoked)
nx=$4 ny=$5 xmin=$6 xmax=$7 ymin=$8 ymax=$9