INPUT STRUCTURE

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.

Choice of potential

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 hf), 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.

Description of accepted keywords.

NLAYER

  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.

MIXED

  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)

LATTICE

See also configuration

  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

  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

  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

  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.

ENERGY LOSS

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

NBIN

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.

DEDX WEIGHTED

use if RBS spectra are to be simulated

DEDX UNWEIGHTED

use for transmitted energy distribution

  One of the keywords DEDX WEIGHTED or DEDX UNWEIGHTED must be given.

ENERGY DEPENDENT STOPPING

(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'.

DEDX VALENCE

  ((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).

ELCORE

  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).

ZDIST GAUSS

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 )

ZDIST UNIFORM

  ZIMAX : Maximum depth.
          A uniform impurity distribution is assumed.

ZDIST EXPON

  ZIMAX : Maximum depth.
  ZIFWHM: Width of the exponential distribution (both in Angstrom).
          C(Z) = exp (-Z/ZIFWHM) , Z=[0..ZIMAX]

CROSS SECTION

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)

BEAM DIVERGENCE

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

BEAMSPOT

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.

COLLIMATE

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).

INTERFACE

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

THICKNESS

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.

CURVATURE

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)

NSEED

optional

  ISEED : arbitrary integer for random number generator.
          default value 0: program selects NSEED.

NTRACKS

  NTRX  : Number of tracks to follow.

NREPEAT

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

ANGLES

  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).

ANGLES_P

  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.

FLUX

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.

VFINAL

optional

  NV: final velocity vector distribution accumulated in NV*NV array
  ANGPMDG: angular range at exit of sample

NCHAN

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).

EFINAL

optional

  TFMIN, TFMAX: (MeV) min and max of range of final energy,
              used in energy distribution of exiting ions

XYOUT

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

SCORE

optional

         output the effective values of the contributions of the core
         electrons and the valence electrons as a function of depth

IMPURITY

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.

EXITCOORD

optional

          output the values of x,y (Angstrom) px, py (direction cosines)
          and final energy (MeV) at the end of each track

STARTCOORD

optional

     output the values of x,y (Angstrom) px, py (direction cosines)
     and final energy (MeV) at the beginning of each track.

EOI

optional

          Input ends with either this keyword, or with end of file.

example of an input file GaP.inp

 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

Launching Flux7

The basic way to start up Flux is to prepare a file name "batflux.ini" see "batflux.ini" in flux7. 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

ini

 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

makeflx

Usage: makeflx [-p program] filename (without extension)

fluxgo

 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