Corrected a bug in fluxhf The densities tabulated in file HFCHARGE.DAT were not properly extrapolated to r=0. Hence the treatment of atom-ion collisions in the Hartee-Fock potential broke down for very small impact parameters and lead to unphysical results such as negative kinetic energies.
In flux7.fpp: The approximation used to calculate the scattering angle was unnecessary crude for large angles.
Corrected a bug in rbsim the screening radius was calculated incorrectly BB=3.3E-5*Z1*Z2*(Z1**(2/3)+Z2**(2/3))**0.5 should of course be BB=3.3E-5*Z1*Z2*(Z1**(2.0/3.0)+Z2**(2.0/3.0))**0.5
Corrected a bug in plotxy Some parts of 3D-plots were omitted, for some software systems
More angles allowed NANGMAX = 8000 (was 2000) in all files FLUX7.COM
improved multi-processor use added line !$OMP& SCHEDULE(DYNAMIC) in flux7.fpp
added -L$(PGPLOT_DIR) in makedefs.mingw
added line INTF=0 in getnum.f
fsleep now also works in MinGW
fluxvelo.bat renamed to fluxvelo.sh; similar for other .bat files (some MINGW implementations think .bat is automatically a MSWindows file)
makedefs.mingw32 and makedefs.mingw64 included. These are for the msys2 implementation ( https://www.msys2.org/ ) Notes: gcc-gfortran 7.0 gave problems with PS driver of GrWin 1.0.0 after downgrade to gcc-gfortran 6.3 problem solved 64-bit gcc-gfortran only slightly faster than 32-bit
makedefs.linux: Leaving out the gfortran options -fcheck=all -ffpe-trap=invalid,zero,overflow makes FLUX twice as fast on Linux, but has no effect in MinGW.
Also a maintenance release. Fixed the use of some variables with undefined values, i.e. in CALL PGCURS(X,Y,CH). On rare occasions an array bound was exceeded in psdriv.f
Minor bug fixes. Most important: the extra stack space allocated in makedefs.mingw was far too large, and has been reduced by a factor of 16.
Adaptation to gfortran (fortran90), obsolete fortran77 constructs eliminated. Support for multiprocessor architecture, OpenMP. Flux files now written in decimal format A few new axes contributed by Andres Rodondo and Katharina Lorenz
Now with ``Installation Guide'' prepared by Norberto Catarino. Scripts and Makefiles adapted to users who don't have the current directory in $PATH.
Some minor updates to tackle issues with recent versions of gcc. Compiler flag ``-fforce-mem'' eliminated since it is not always supported. Renamed functions getline and gettext since they are also the names of built-in functions. Added instructions on how to obtain and install the g77 compiler suitable for Flux, see the install page.
No more sleep()
in MinGW
It turns out that C-language function sleep()
function causes problems
in MingW. The standard POSIX behaviour of sleep(seconds)
is to suspend
the calling process for the specified number of seconds. However,
depending on which version of MinGW you use, the argument is interpreted
as milliseconds rather then seconds, or, compilation fails since sleep()
can not be found, or, the program does compile but behaves erratically.
Since the role of sleep()
in the FLUX package is hardly significant I
have eliminated it completely when MINGW is defined.
Fixed a bug in prelimi.f that overestimated the continuum string force for configurations from COMBI4.FIG
A mixed lattice may now have more then 2 kinds of atoms at the same type of lattice sites.
Fixed 2 bugs in flux7.f affecting multilayer and mixed samples
A maintenance release taking care of some of the oddities of MSYS/Mingw
A port to Windows32, using the MSYS / MinGW programming environment and the GrWin Graphics Library. See the win32 page.
This is a major revision. Merging with the program 'flux4', an early offspring of flux, that handles more complicated lattice structures then the original, such as crystals with more then 2 species of lattice atoms and less regular spacing of lattice planes. (See L. Rebouta et. al, Phys Rev B48 (1993), 3600)
A great number of lattice types are now included in 2 separate configuration files, COMBIN.FIG and COMBI4.FIG (LiNbO3, sapphire, GaN, and more)
Several improvements in auxiliary programs.
Arrays for yield and energy loss in flux file are now written in human legible format.
No essential changes. A few new examples, changes in documentation, updates of e-mail addresses, and so on.
Optional energy dependent energy loss. See energy dependent energy loss in the flux7 page .
bug fix in rbsim (Louis Selen)
optional ascii instead of hexadecimal output of flux program
Some small changes in the installation procedure, see the install page
Use of Hartree Fock now also possible for samples with more then one type of atom, although for now the choice is limited to O, Si, Ga, Ge, and As, see the hf page.
Three versions of flux are now automatically built, each using a different potential: fluxzbl, fluxhf, and fluxmol 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 now also available in the scripts fluxgo and makeflx.
The program fluxchk, to check an input file, uses the zbl potential.
Fixed a longstanding bug in flux7, see the bugs page.
Bug fixes in rbsim, see the bugs page.
Documentation in html format.
Option to simulate random sample, see ANGLES in the input page.
In flux7: New option MIXED MIXED in the input page
This allows the use of mixed lattices such as Ge_x Si_(1-x)
This option also enables the introduction of vacancies.
Another improvement is an update of option CROSS SECTION, CROSS SECTION in the input page which was adapted to handle layered crystals, as well as MIXED lattices, with different cross section options for each atom species.
The use of a Hartree Fock potential instead of the ZBL potential, see the hf page.
A few changes for the benefit of systems that are more sensitive to floating point exceptions. Files cio/getargs.c and flux7.f
Optional use of Moliere potential instead of ZBL potential.
Auxiliary programs coordfilter, fxyfilter, see the coord page.
In flux7: New option STARTCOORD. When invoked, the initial coordinates of each track are output, similar to the existing option EXITCOORD. Thus if STARTCOORD and EXITCOORD are both specified, for each track 10 coordinates are output, namely the start values x0, y0, px0, py0, T0 and the exit values x, y, px, py, T
The program coordfilter takes the standard output of flux7 as input. It extracts two columns out of the 5, or 10, produced by the options STARTCOORD and/or EXITCOORD. Program coordfilter may be used as a 'pipe' to process the standard output of flux7. Alternatively it can be used to extract two columns from a saved flux output file.
Program fxyfilter takes the standard output of coordfilter as input. It builds op a 2-dimensional frequency distribution from the pairs of input values. When finished, it outputs this 2-D array. Program fxyfilter may be used as a 'pipe' to process the standard output of coordfilter. Alternatively it may be used to build a frequency distribution from a saved coordfilter output file. The outputfile of fxyfilter is suitable as inputfile for program plotxy, and other graphics programs, but may require a little editing first.
Large savings in required disk storage space can be obtained by pipefitting of the type: flux7 | coordfilter | fxyfilter > outputfile
The script fluxgo was designed for launching flux7 in this way. The files in directory TEST show an example, obtained with Unix command fluxgo fluxtest0 py y0 50 120 -0.005 0.005 -1 5
Minor patch to program show.f
support tetragonal lattice.
Fixes a longstanding bug, revealed by Reeta Salonen. In the main program, subroutine bbloop, the variable T is declared double precision. This has caused a type mismatch in the call to CROSSECT, that expects a parameter of type real.
Implementation of hexagonal structures, Wurtzite, SiC
New option BEAMSPOT. Allows the use of a larger beamspot then the default 'unit cell'. May be needed for multilayer structures, where the unit cells differ per layer. Another application: in combination with EXITCOORD to obtain channeling patterns showing all the symmetries.
New option ANGLES_P Input angles specified as (theta0, phi0, tilt) For planar channeling, it was necessary up till now, to convert the tilt angle (with respect to the plane) to polar angles (theta, phi) with respect to the nearby main axis. From now on flux7 does this conversion for you. Use input option ANGLES_P, instead of ANGLES, and specify (theta0, phi0, tilt) where ``tilt'' is the tilt angle with respect to the plane defined by theta0.
New option THICKNESS Allows to specify the thickness separately for each component of a multilayer structure. In previous versions a strict periodicity was assumed.
The scaling factors for the output EXITCOORD option are now written to the output file, and may be picked up by programs that do further processing, such as flux7, option CFILE, or, the program plotxy.
In FLUX7/AUX/plotfig3.f: LIST option. Run 'plotfig3' and type the verb 'list'. This will give you the codes for all structures present in file COMBIN.FIG
Modified Postscript driver for PGPLOT. The files grtext.f and psdriv.f in directory PGPLOT.PSDRIV may be used as a replacement for the files of the same name in the PGPLOT distribution. This enables the use of standard PostScript fonts instead of the Hershey fonts. Advantages: nicer plots and smaller files. See the psdriver page for the details.
FLUX7/PLOTXY/plotxy.f new option XCOORD (make plots of flux7 exit coordinates) By the way, the program GNUPLOT is also very suitable for graphical representation of the exit coordinates (Mark Breese).
new file FLUX7/FLUX7.FAQ questions and answers about flux7, later moved to the faq page
Plus numerous minor improvements and bug fixes.
Better facilities for multilayer structures.
Option CFILE. Option to use output coordinates of one run as input coordinates for the next.
Makefiles for Linux and for OSF1.
Upgraded to PGPLOT version 5.2. This version of PGPLOT allows two graphics devices to be opened simultaneously.
Implemented FLUX option to record the coordinates at the end of each ion's journey.
Option to handle a curved crystal.
Option EXITCOORD to save the coordinates at exit from the crystal.
The script ini (in directory BIN) takes care of starting up a batch job, or to test an input file.