FLUX7 and related programs.

When FLUX7 is installed, the command "helpflux" will start a browser window showing this page

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

See also file flux7.9.install.html and also the Installation Guide (somewhat outdated)

cbinding. First-time users, see also this page

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


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


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 paramaters 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


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


program FLUX7:


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:

   [ 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


  NI:   Number of data points.
  IVAR: Flag for the variable coordinate (IVAR=1:THETA, IVAR=2:PHI)

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
 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
 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.
 Ion-beam channeling yields of host and impurity atoms in LiNbO3: computer
 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
 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
 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.