FLUX7 and related programs.

Flux7 is a program that simulates the trajectories of high energy ions in single crystals in a channeling, or near channeling, direction. In the model used, the ion experiences binary collisions at regular spatial intervals. In between, the ion path is considered a straight line. One of the quantities evaluated during the process is the effective flux density across the lattice plane, and this is where the program's name stems from.

The original programs flux, yimp, fityim, rbsim and some other programs in this distribution were developed by Peter Smulders and Dik Boerma, and are described in

P.J.M. Smulders and D.O Boerma
Nucl. Instr. and Meth. B29 (1987) 471

Please refer to this publication (and/or follow-ups, see appendix) when publishing results from any of these programs.

For a more recent description of flux and its capabilities see "Notes from a talk about FLUX" given at the RENIBEL workshop, 2004, see LINK below.

These programs are freely available for non-commercial use. It is understood however that all serious users of this software should keep in "contact" with the authors.

This implies that modifications and extensions will be reported.

We also expect you to send us preprints / reprints of any papers prepared with the use of this software.

And, please, also discuss unsatisfactory results with us.

install :Instructions for installation of the program

input : The input structure. See also the source in FLUXLIB/inp.f, and always run program fluxchk before starting a time consuming simulation.

configuration : description of configuration files COMBIN.FIG and COMBI4.FIG

coord for ways to obtain distributions of coordinates, energy, and other parameters.

faq various topics

plotxy program plotxy : graphics of distributions f(x,y)

rbsim : Help for program rbsim

rbsiminst. hints for installation of rbsim

hf : Some notes about the implementation of the Hartree-Fock potential

news recent developments

bugs known bugs

To download the programs see

download

Notes from a talk about FLUX given at the RENIBEL workshop, 2004.

contact

For any questions or remarks contact

"Peter Smulders" <p.j.m.smulders@home.nl>

The application to emission channeling was implemented by Ulrich Wahl, who also made a streamlined version of program yimp. For information contact:

"Ulrich Wahl" <uwahl@itn.mces.pt> Currently at ITN/CFNUL, Lisbon

Some features.

Multilayer samples.

The program flux7 can handle multilayer structures where the thickness of the alternating layers is repetitive, or, varies with depth. A requisite is that at most two different lattice structures are involved. If this condition is not fullfilled, two or more invocations of flux7 are necessary, as explained below.

At each interface a transformation is applied to the beam coordinates:

1. a rotation of the velocity vector, specified by a 3 by 3 rotation matrix

2. a translation, specified by delta (x,y,z) in angstrom units

Exit coordinates

Optionally the coordinates at the end of each ion's journey are recorded. The following data are saved:

A The x and y coordinates.

These coordinates are relative to the position an ion would have that initially entered at x=0 and y=0 and travelled in a straight line along the beam direction.

B The direction cosines px/p and py/p of the exit velocity.

Here the value is 0 for an ion that exits in the beam direction. (I.e. if the ion beam direction makes an angle with the crystal main axis an offset is applied to px and py as maintained in the program)

In the output these numbers are multiplied by a constant factor and possibly an offset is subtracted, as indicated in the output file.

C The energy loss i.e. the beam energy minus the exit energy.

These coordinates can be used as initial coordinates for a subsequent run of FLUX7. Thus, for the general case, of more than 2 different layers, it is possible to break up the calculation in parts, and feed the exit coordinates of one run as initial coordinates into the next run.

curved crystals

Just supply orientation of curvature axis and radius of curvature, see FLUXLIB/inp.f

mixed crystals

A new feature in flux7.7 is the possibility to have a mixture of different atoms occupying equivalent sites, e.g. Si_(1-x)Ge_x. In a diatomic crystal, such as GaAs, each of the constituents may consist of a mixture of two or more elements. There may also be ai fraction of empty sites (vacancies) for each of the constituents.

energy dependent energy loss

New in flux7.72 is an option to use energy dependent stopping parameters. Up till this version this dependence was neglected and the best a user could do was to supply parameters for an average energy. Now, following an idea by Louis Selen, there is an option to obtain both the impact parameter dependent energy loss as the stopping due to valence electrons by means of interpolation from a set of energies and corresponding sets of stopping parameters.

For details, see "ENERGY DEPENDENT STOPPING" in input

External software.

Some parts of this distribution were 'borrowed' left and right.

The K-Bessel function routine BESK was adapted from a subroutine supplied by the "Interchange Users Group" (author unknown).

The integration routine ROMBERG was written by Hans de Jong.

The energy loss subroutines in RBSIM are due to Ziegler and Biersack.

The least square routines in program FITYIM are due to C.L.Lawson and R.J.Hanson, 'SOLVING LEAST SQUARES PROBLEMS', Prentice-Hall, 1974

The random number generator RANMAR is due to G. Marsaglia and A. Zaman, http://cmd.inp.nsk.su/old/cmd2/manuals/cernlib/shortwrups/node242.html

PGPLOT

The graphics output of various programs is done by the PGPLOT package. PGPLOT is a Fortran subroutine package for drawing graphs on a variety of display devices by T. J. Pearson, http://www.astro.caltech.edu/~tjp/pgplot/. The source is available at ftp://ftp.astro.caltech.edu/pub/pgplot/.

This FLUX distribution contains a modified PostScript Driver for PGPLOT. This driver enables the use of PosScript fonts in output files. If you want to use this, you should patch the PGPLOT graphics package. For details see "PostScript Fonts in PGPLOT" in psdriver

In order to compile PGPLOT I had to adjust the pgplot makefile a bit, see file pgpatchfile in the directory FLUX7/PGPLOT

some files in this package

flux7.f       FLUX
FLUX7.COM     include file: common blocks for FLUX7, YIMP,
dettmann.f    Dettmann & Robinson model for impact parameter
              dependent stopping
dedx.f        estimate of electronic stopping parameters
makemake      prepare Makefiles for specified configuration
Makefile      makes flux7 and auxiliary programs

HTML          directory containing help files in html format
HELP          directory containing help files in text format
POD           directory containing source files for the above

FLUXLIB       directory containing a library of subroutines, see below
FILE.LOC      This file, in directory FLUXLIB, contains the locations
              of some data files, and may be adapted to your site.

MISC          directory containing auxiliary programs
FITYIM        directory containing program FITYIM
INPUT         directory: sample input and output
PLOTXY        directory: program for plotting functions f(x,y)
              The program plotxy has an option to build 2d
              distributions from the flux output obtained with option
              EXITCOORD.
RBSIM         directory: RBS / channeling energy spectra
TAB           This directory contains some input files, such as
              stopping data (scoef88), a mass table, and file
              COMBIN.FIG that defines the configurations for various
              lattices in various projections.
CHECK         directory: program fluxchk
XTAL          directory containing programs to generate projections
              of crystals.
YIMP          directory containing U.Wahl's program yimp.

directory FLUXLIB

A set of subroutines. You don't need all of these, so if you can, make 'libraries' out of this to be presented to the linking loader. Some of these are machine dependent to wit:

directory FITYIM

program fityim, file fityim.f

directory MISC

(in earlier distributions this directory was named AUX)

programs praak, yimp7, plotfig3, show

Some differences of flux7 with the original version.

programs

program FLUX7:

batflux.ini

The idea is that you organize all the input and output pertaining to one case, in a separate directory. Before starting you change to this directory. Flux7 expects a file with the name 'batflux.ini', the startup file, in the current directory. This startup file should be a writeable file, as it is modified as the calculation proceeds.

The contents of batflux.ini are:

line 1: name of the inputfile of flux7
line 2: name of the outputfile of flux7 (flxfile)
line 3: name of the text file of flux7 (logfile)
line 4: name of the outputfile of yimp (may be a blank line)
line 5: current  angle  number (initially 1, updated by flux7)
line 6: current sub-run number (initially 1, updated by flux7)
line 7: the verb NEW or OLD : status of flxfile (updated by flux7)

An empty or absent line 7 means the same as NEW: the flxfile should not yet exist. For OLD, as you already guessed, the flxfile is expected to exist already.

If for some reason a flux7 simulation run was interrupted, it may be continued, by just changing to the proper directory and starting flux7. It will automatically resume were it left off.

The same file, now renamed to yimp.ini, may be used as a startup file for program yimp.

As an alternative, you may start flux7 with the startup file name (now not necessarily 'batflux.ini') as a command-line argument. This option has been tested on Unix systems (HP, Sun, SGI) but may cause problems on other machines. If so, comment out the two relevant lines in batinit.f, directory FLUXLIB.

A script to do the above automatically is provided in directory BIN. This works in Unix only. You then have to prepare only the input file, with extension '.inp', say <name>.inp, and type the command

ini -t <name>            to check the input file, or,
ini <name>               to run the simulation, with program flux7.
ini -p fluxhf <name>     to run the simulation, with program fluxhf.

For further options, see file BIN/ini itself.

A simplified version of this is the script makeflx, with calling sequence 'makeflx <name>' to run the simulation using <name>.inp as input file.

See also the script fluxgo. See further "Launching Flux7" in input

The inputfile of flux is decribed in input, see also the source of subroutine INP.

After preparing the inputfile, and the startup file, run program fluxchk (see below) to check for trivial errors.

The output of FLUX consists of a text file, and a flux file. The flux file contains, for every simulation, a header, the close encounter probability, the energy loss, and the energy straggling as functions of depth, and the flux distribution integrated over depthi, as a function of x and y.

programs useful to prepare the input for flux7.

PLOTFIG: shows how the unit-cell is chosen, and how the x- and y- 
         units are defined
         
DETTMANN: generates the energy loss contribution of core electrons
         as a function of impact parameter.
         Input to this program are the electron binding energies
         for the various shells.

DEDX:    generates values of dE/dx due to valence electrons,
         dE/dx (valence,local) and dE/dx (plasma).

FLUXCHK: tests the input file of flux7, without doing the lengthy
         simulations. Also calculations the 'random stopping power'
         corresponding to the input values of flux7

programs useful to process the output of flux7.

To make graphs of close encounter probability, energy loss or straggling the program SHOW may be used.

For simulating channeling profiles, several programs are available

1. For the profiles of host atoms one may use program PRAAK. N.B. a better way is to generate an RBS spectrum using the FLUX results as input, and set windows on this spectrum

2. For the profiles of impurity atoms use program YIMP7 or YIMPU The input of YIMP contains impurity lattice sites. To generate all projected lattice sites for a given displacement from substitutional programs XTAL (SI lattice) and FCCXTAL may be used.

The output of praak has the same format as the output of yimp. A little named getyim (source in MISC/getyim.f) may be used to convert it to a form more suitable for graphics programs. As a side effect it produces a file 'pgplot.ps' that visualizes the results of praak or yimp.

To fit experimental channeling profiles, use program FITYIM.

RBS spectra of scattered ions may be generated using RBSIM. RBSIM is not a standalone program but a subroutine package that should be integrated in a general data processing and analysis program.

To visualize individual ion histories, programs 'track' and 'ztrack' are available. To run these enable option XYOUT of flux. The coordinates are then output to the text file of flux, not the 'flux file'.

program YIMP7

Besides the output file of flux7, the following input data are asked:

A,DEBYE
  [ instead of the DEBYE temperature, one may also specify the
   thermal vibration amplitude U1. For this purpose give -U1
   instead of +Debye temperature for the parameter DEBYE ].
NSITES,NFAC:                       (2 integers)
ANGSTR=0,XYUN=1,(R,PHI)=2          (1 integer, called JANG)
IF(JANG.NE.2) X0,Y0,DX,DY,WEIGHT:  (5 reals), NSITES times
IF(JANG.EQ.2) X0,Y0,R,PHI,WEIGHT:              "
  [ The idea is that X0,Y0 specifies a basic site (substitutional or
   interstitial), DX,DY the displacement from this site.
   Only DX,DY (not X0,Y0) will be multiplied by FACTOR, see below ]
FACTOR:                               (real), NFAC times
next A,DEBYE etc.    give (A,DEBYE) = (0,0) to stop.

YIMP7 generates an ASCII output file that can be used as input for program FITYIM.

program FITYIM

Two different ASCII input files are required:

1. An experimental data file, containing one or more records, where each record contains one angular scan, i.e. yield versus angle. The variable angle may be either the polar angle (tilt) or the azimuthal angle with respect to the channeling axis.

2. A simulated data file, containing one or more records, where each record contains an angular scan.

The format of these two files is quite different. The layout of the simulated data file is produced by programs YIMP and PRAAK. When using RBSIM to produce this file some editing will be needed.

Layout of the experimental data file: line 1: NI IVAR V0 VSTEP line 2: notes line3 and further (NI lines): xvar, yield

where:

NI:   Number of data points.
IVAR: Flag for the variable coordinate (IVAR=1:THETA, IVAR=2:PHI)
ANGLE(I)=V0 + VSTEP * XVAR(I)

Another difference is the use within FITYIM. The experimental data are read sequentially (therefore put the records in the order you wish to analyse them). The simulated ("theoretical") data records can be accessed randomly, and it is even possible to use a linear combination of two or more of these to fit a given experiment. It is the responsibility of the user to do the bookkeeping, within FITYIM each theoretical data record is addressed by its sequence number in the file.

The program is keyword driven. Some of the keywords are:

Exp : read the next experimental data record.
Th  : specify a theory
Ranfrac : do a fit
Graph: save graphic output to the plot file
Cal : change the calibration (that was given in the experimental data record)
Weight: specify the weights used in the fitting procedure
Limit : use a subset of the experimental data
Fix:    Fix ratio of theoretical components

Some publications related to the use of FLUX

Computer simulation of channeling in single crystals.
P.J.M. Smulders and D.O. Boerma, Nucl. Instr. and Meth.  B29(1987)471

The relation between depth and energy in channeling experiments.
M.Vos, D.O. Boerma and P.J.M. Smulders,
Nucl. Instr. and Meth. B30(1988) 38

W. Segeth, D.O. Boerma, L. Niesen and P.J.M. Smulders
Internal oxidation of In and Cd impurities in silver
Phys. Rev. B39 (1989) 10725-10735

Thermal stability of a supersaturated solution of Hafnium in
Aluminium.
D.O. Boerma, P.J.M.Smulders, K.G.Prasad, M.M.Cruz, R.M.C. da Silva
and F.Pleiter, Journal of the Less-Common Metals, 145(1988)487

P.J.M. Smulders, D.O. Boerma and M. Shanaan
Lattice site location of Te in GaAs
Nucl. Instr. and Meth. in Phys. Res. B45 (1990) 450-454

P.J.M. Smulders, D.O. Boerma, B. Bech Nielsen and M.L. Swanson
Lattice site location of clustered boron atoms in silicon
Nucl. Instr. and Meth. in Phys. Res B45 (1990) 438-441

W.G. Spanninga, P.J.M. Smulders and L. Niesen
Moessbauer and channeling measurements on buried layers of CoSi2 in Si
Proceedings of XXVI Zakopane School on Physics 1991, eds. J. Stanek and A.T.
Pedziwiatr (World
Scientific, Singapore, 1991) 360-362

P.J.M. Smulders, A. Dygo and D.O. Boerma
Giant focusing peak and potential dependence observed in a transition from axial to
planar channeling in
Si
Nucl. Instr. and Meth. in Phys. Res. B67 (1992) 185-188

W.G. Spanninga, P.J.M. Smulders and L. Niesen
Moessbauer channeling measurements on buried layers of CoSi2 in Si
Hyp. Int. 70 (1992) 927-930

W.G. Spanninga, P.J.M. Smulders and L. Niesen
Moessbauer and channeling measurements on buried layers of CoSi2 in Si
Nucl. Instr. and Meth. in Phys. Res. B63 (1992) 138-140

A. Dygo, P.J.M. Smulders and D.O. Boerma
Simulation analysis of ion channeling spectra: thermal vibrational amplitude in Si
Nucl. Instr. and Meth. in Phys. Res. B64 (1992) 701-705

M. Vos, C. Wu, I.V. Mitchell and P.J.M. Smulders
Channeling of B ions in silicon
Nucl. Instr. and Meth in Phys. Res. B67 (1992) 223-227

J.M.G.J. de Bakker, F. Pleiter and P.J.M. Smulders
Hafnium implanted in iron: I. Lattice location and annealing behaviour
J. Phys.: Condens. Matter 5 (1993) 2171-2180

L. Rebouta, P.J.M. Smulders, D.O. Boerma, F. Agullo-Lopez, M.F. da Silva and J.C.
Soares
Ion-beam channeling yields of host and impurity atoms in LiNbO3: computer
simulations
Phys. Rev. B48 (1993) 3600-3610

A. Dygo, W.N. Lennard, I.V. Mitchell, P.J.M. Smulders
Random spectrum for the channeling-backscattering technique: A rotating axial-dip
study
Nucl. Instr. and Meth. in Phys. Res. B84 (1994) 23-30

A. Dygo, W.N. Lennard, I.V. Mitchel and P.J.M. Smulders
Azimuthally averaged backscattering yield near the <100> axis in Si
Nucl. Instr. and Meth. in Phys. Res. B90 (1994) 161-165

P.J.M. Smulders
The nuclear encounter probability
Nucl. Instr. and Meth. in Phys. Res. B94 (1994) 595-596

P. J. C. King, M. B. H. Breese, P. J. M. Smulders, P. R. Wilshaw, and
G. W. Grime
Observation of a blocking to channeling transition for
MeV protons at stacking faults in silicon.
Phys. Rev. Letters  74 (1995) 411

M.B.H. Breese, P.J.C. King, P.J.M. Smulders, G.W. Grime,
Dechanneling of MeV protons by 60 degree dislocations,
Phys. Rev. B 51(5), pp.2742-2750, 1995

P.J.C. King, M.B.H. Breese, P.R.Wilshaw, P.J.M. Smulders, and
G.W.Grime
Transmission ion channeling images of crystal defects
Nucl. Instr. and Meth. B99 (1995) 419

P.J.C. King, M.B.H. Breese, P.J.M.Smulders, A.J. Wilkinson,
G.R. Booker, E.H.C. Parker, and G.W. Grime
Evidence from ion channeling images for the elastic relaxation
of a Si0.85Ge0.15 layer grown on a patterned Si substrate
Applied Physics Letters 67 (1995) 3566

M.B.H. Breese, P.J.C. King, G.W. Grime, P.J.M. Smulders, L.E.
Seiberling, and M.A. Boshart.
Observation of planar oscillations of Mev protons in silicon
using ion channeling patterns.
Phys. Rev. B 53(13) (1996) 8267

M.B.H. Breese, P.J.C. King, and P.J.M. Smulders
Characterisation of strain in crystal bilayers using ion chan
Phys Rev  B54(14) (1996) 9693

M. B. H. Breese and D. G. Dekerckhove and P. J. C. King and G. W.
Grime and P. J. M. Smulders,
Direct observation of lattice strain in Si_{1-x}Ge_x/Si
crystals using planar channeling patterns.
Phys Rev B (1997) {to be published}

M. B. H. Breese, P. J. M. Smulders,
A study of channeling patterns from strained Si_{1-x}Ge_x/Si
bilayers close to <011> axes.
Nucl. Instr. and Meth. B132 (1997) 177

This list is outdated. Applications have been published since by
Mark Breese and co-workers, Louis Selen et. al.  (Eindhoven University
of Technology), Anni Seppala and Reeta Salonen (Finland), and Ulrich
Wahl and the K.U. Leuven group.