Files COMBIN.FIG and COMBI4.FIG contain information about the lattice and are used by programs flux and yimp. Each projection of each lattice type has its own entry in one of these files. The z-axis in each entry is the channeling axis chosen for the simulation.
COMBIN.FIG contains entries for cubic crystals, or, more general, cases where the atoms may be grouped in equidistant planes perpendicular to the z-axis, including the c-axis of hexagonal or tetragonal lattices.
COMBI4.FIG contains entries where this is not the case, and the z-steps in the simulation are not constant.
COMBIN.FIG was used in flux version flux3 and later, while COMBI4.FIG was used in program flux4. (See L. Rebouta et. al, Phys Rev B48 (1993), 3600) Only in flux7.8 (2004) these two programs are combined, but some differences in the layout of the configuration files remain. The most important one to keep in mind is that in COMBIN.FIG the X- Y- Z-units are specified in terms of the lattice constant, while in COMBI4.FIG they are given in angstroms .This has also repercussions on the input of programs that use one of these files.
Besides these COMBI..FIG files, relevant bits and pieces for the configuration are present in files SYMMETRY.INC, flux7.f, and yimp1.f See Configuration of GaN [-2113] for FLUX7 for an example.
Warning Users are advised to be very critical of the configuration descriptions supplied with this distribution. No guarantees are given! Things to check:
In particular check the consistent use of lattice constants in COMBI4.FIG, SYMMETRY.INC, and the flux7 input file
Anything before the header is comment header, format (A4,A10,A10): ****NAME symmetry symmetry may be 'hexagonal', 'tetragonal', or absent NLS : number of atom species in the lattice NLC : number of lattice constants 1 implies cubic symmetry, 2 for hexagonal or tetragonal, specified in header 3 if symmetry not specified NLZ : 0 for flux3, nonzero for flux4 base planes : indices of zx and yz planes, 3 * 2 integers Nind : number of xy positions of atom rows to collide with MOD x,y,z : dimension of true primitive cell in x-,y-units MODZ is the number of planes (or z-steps) within one cell APC : atoms per unit cell (NLS integers) NABUR : number of surrounding rows considered (NLS integers) LATTICE : code for type of (projected) lattice for N=1 .. NLS{ (x,y) * NABUR(N): positions of the surrounding rows in x-,y-units }
if NLZ .ne. 0: X-,Y-,Z-unit : elementary units in ANGSTROM the flux is projected on an xy unit cell of size X-unit * Y-unit. the Z-unit corresponds to the whole cell if NLZ = 0: X-,Y-unit, UD : elementary units in terms of lattice constant the flux is projected on an xy unit cell of size X-unit * Y-unit. UD corresponds to the z step in the simulation program i.e. the space between planes. In the non-cubic case this is replaced by a 3 x NLC matrix: X-unit(L), L=1,NLC Y-unit(L), L=1,NLC UD (L), L=1,NLC where NLC is the number of lattice constants (i.e. 2 for tetragonal or hexagonal) atom spacings : spacing along the row in z-units (for each species) I-atom1 * MODZ : for each of the MODZ z-positions a 0 if there is no atom of this kind an index in the range 1..Nind if an atom of kind 1 is present. This index is a pointer to the corresponding (x,y) coordinates as specified below. If two atoms of the same kind are present at the same z, give index1*Nind + index2 I-atom2 * MODZ : same for atom species 2 I-atom3 * MODZ : same for atom species 3 (x,y) * Nind : (x,y) coordinates in x-,y-units as referred to by I-atom1, I-atom2 , ... Only if NLZ .ne. 0 (z)*(MODZ+1) : z coordinates for the MODZ planes, in Z-units, ranging from 0 up to (and including) 1
1) The extra numbers NLC and NLZ these are also used to flag whether a flux3 of flux4 type record is following.
2) The possibility to have more atoms of the same kind in one plane. This removes the need for 4, 5 or even 7 artificial atom species How this works is most easily explained for the case where we have 10 different sites (NIND=10). Then the entry 356 in array IATOM means we have at this z-position 3 atoms, one at (x,y) position with index 3, one at (x,y) position 5, and one at (x,y) position 6. Of course, 356 = (3*10 + 5)*10 + 6 In general, the same arithmetic is done in base NIND instead of 10. Thus, if NIND=6, the above 3 sites are specified in IATOM by the number (3*6 + 5)* 6 + 6, or 144 The arithmetic may be easily done by hand or by pocket calculator. There is also a program available to do this: comindex
/ <111> STRING IN PbF2 STRUCTURE. atom species 1 is Pb, species 2 is F. X= <1-10> AXIS, Y=<11-2> AXIS, Z=<111> AX Z-X PLANE: (11-2), Y-Z PLANE: (1-10) Pb at (0,1,1), (1,0.5,5), (0,0,9) F at (0,0,0), (1,0.5,2), (0,1,4), (0,0,6), (1,0.5,8), (0,1 ****PBF111 2 1 0 1, 1, -2, 1, -1, 0 3, 2, 3, 12, 4, 8, 9, 9, 111 -1,0.5, 1,-0.5, 1,1.5, -1,1.5, -1,-0.5, 0,2, 0,-1, 2,0, 2,1 -1,0.5, 1,-0.5, 1,1.5, -1,1.5, -1,-0.5, 0,2, 0,-1, 2,0, 2,1 0.3535534, 0.4082483, 0.1443376 12, 6 0, 3, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0 1, 0, 2, 0, 3, 0, 1, 0, 2, 0, 3, 0 0,0, 1,0.5, 0,1
To get a list of available configurations, give command ``plotfig COMBIN.FIG:LIST''
/ <10-11> STRING IN GaN(Wurtzite) STRUCTURE. X= <1-210> AXIS, Y=<10-10> AXIS, Z=<10-11> AXIS Z-X PLANE: (10-10), Y-Z PLANE: (1-210) GA at (0,0,0),(.333,.666,.5)and N at (0,0,.375),(.333,.666,.875) ****GAN10112 2, 3, 1 0, 0, 0, 0, 0, 0 21 1, 1, 14, 2 2 4 4 8100 -0.5 0.3333, -0.5 0.5, 1.5 0.3333, 1.5 0.5 -0.5 0.7084, -0.5 0.875, 1.5 0.7084, 1.5 0.875 3.19 3.7825 7.5805 1, 1 23 0 89 0 0 10 0 265 0 331 17 0 20 0 0 3 0 133 177 0 11 0 14 0 0 397 0 21 0 0.0000 1 0.0000 0.5 -0.2917 0 0.8334 1 0.8334 0 0.3750 1 0.3750 0 1.2084 1 1.2084 0.5 0.3334 0.5 -0.1250 0 1.0000 1 1.0000 0.5 0.7084 0 -0.1667 1 -0.1667 0.5 0.5000 0 0.2084 1 0.2084 0.5 1.3335 0.5 0.8751 0.0000 0.0299 0.0573 0.1758 0.2331 0.3229 0.4414 0.4687 0.4987 0.5885 0.7344 0.7643 0.7917 0.9102 1.0000
To get a list of available configurations, give command ``plotfig COMBI4.FIG:LIST''
a detailed example of a configuration for files COMBI4.FIG, SYMMETRY.INC, and yimp1.f
First thing to do is obtain the coordinates of atoms in the lattice in an orthogonal coordinate system, with Z-axis along the chosen string direction. For the <-2113> string of GaN this was done with the program gan.f, obtained from Katharina Lorenz, ITN, Lisbon.
From these, derive an XY plot of the atom rows involved, and select a set of atom rows to be used in FLUX. Also determine suitable values of the x- y- and z-units to be used for this projection. As a rule, all atom rows that are within about 2 Angstrom from the path of the ion should be used for binary collisions.
These are the 28 selected atom rows, obtained from program gan.f - divided by xun=2.7626, yun=2.7177, zun=6.0920 (angstroms) - moved the origin to -0.3333 -0.3125
n x y z Ga=1, N=2 1 0.3333 0.3125 0.0000 1 2 0.6667 0.3125 0.5000 1 3 0.6667 0.6875 0.7722 2 4 0.3333 0.6875 0.2722 2 5 0.3333 -0.3125 0.5464 2 6 0.6667 -0.3125 0.0464 2 7 1.3333 0.1875 0.4093 2 8 1.3333 0.8125 0.8629 1 9 0.6667 1.3125 0.2258 1 10 0.3333 1.3125 0.7258 1 11 -0.3333 0.8125 0.3629 1 12 -0.3333 0.1875 0.9093 2 13 -0.3333 -0.1875 0.6371 1 14 1.3333 -0.1875 0.1371 1 15 1.3333 1.1875 0.1351 2 16 -0.3333 1.1875 0.6351 2 17 0.3333 -0.6875 0.2742 1 18 0.6667 -0.6875 0.7742 1 19 1.6667 -0.1875 0.6371 1 20 1.6667 0.1875 0.9093 2 21 1.6667 0.8125 0.3629 1 22 1.6667 1.1875 0.6351 2 23 0.6667 1.6875 0.4980 2 24 0.3333 1.6875 0.9980 2 25 -0.6667 1.1875 0.1351 2 26 -0.6667 0.8125 0.8629 1 27 -0.6667 0.1875 0.4093 2 28 -0.6667 -0.1875 0.1371 1
Here the first 16 are used for binary collision the last 12 are surrounding rows, as illustrated below.
This leads to a config file as follows: (the part in between the lines `` ----- '' to be inserted in COMBI4.FIG)
--------------------------------------------------------------------
/ <-2113> STRING IN GaN(Wurtzite) STRUCTURE. X= <?> AXIS, Y=<120> AXIS, Z=<-2113> AXIS Z-X PLANE: (?), Y-Z PLANE: (120) Ga at (0.3333,0.3125) and (0.6667,0.3125) N at (0.3333,0.6875) and (0.6667,0.6875) ****GAN2113 2, 3, 1 0, 0, 0, 0, 0, 0 16 2 1 16 2 2 6 6 8200 0.3333 -0.6875 0.6667 -0.6875 1.6667 -0.1875 1.6667 0.8125 -0.6667 0.8125 -0.6667 -0.1875 1.6667 0.1875 1.6667 1.1875 0.6667 1.6875 0.3333 1.6875 -0.6667 1.1875 -0.6667 0.1875 2.7626 2.7177 6.092 1 1 1 0 0 14 9 0 11 0 2 0 0 13 10 0 8 0 0 6 15 0 0 4 0 7 0 5 16 0 0 3 0 12 0.3333 0.3125 0.6667 0.3125 0.6667 0.6875 0.3333 0.6875 0.3333 -0.3125 0.6667 -0.3125 1.3333 0.1875 1.3333 0.8125 0.6667 1.3125 0.3333 1.3125 -0.3333 0.8125 -0.3333 0.1875 -0.3333 -0.1875 1.3333 -0.1875 1.3333 1.1875 -0.3333 1.1875 0.0000 0.0464 0.1351 0.1371 0.2258 0.2722 0.3629 0.4093 0.5000 0.5464 0.6351 0.6371 0.7258 0.7722 0.8629 0.9093 1.0000
--------------------------------------------------------------------
The X and Y planes still have to be identified
mapping operations to be put in SYMMETRY.INC: (atom rows numbered as above) delta_x delta_y delta_z 10 --> 1: 0 -1 +0.2742 17 --> 1: 0 +1 -0.2742 8 --> 1: -1 -0.5 +0.1371 14 --> 1: -1 +0.5 -0.1371 26 --> 1: +1 -0.5 +0.1371 28 --> 1: +1 +0.5 -0.1371
as we see, in all cases: delta_z/delta_y = -0.2742
The part in file SYMMETRY.INC looks as follows:
8200 CONTINUE C GAN2113, WURTZITE LATTICE, <-2113> PROJECTION DELZZ= 0.2742*ZUNKL*IYUM IF (XX.GE.XUNKL) THEN XX = XX -XUNKL IF(YY.GE.YUNKL*0.5)THEN YY = YY - YUNKL*0.5 DELZZ= DELZZ + 0.1371*ZUNKL ELSE YY = YY + YUNKL*0.5 DELZZ= DELZZ - 0.1371*ZUNKL ENDIF ENDIF GOTO 77 remarks: DELZZ is the z-shift in angstroms XUNKL,YUNKL,ZUNKL are the dimensions of the unit cell in angstrom When the program comes here the ion has already been located to a region of MODX*XUNKL, MODY*YUNKL (in our case MODX=2, MODY=1, defined in comfig file) IYUM is non-0 if the ion has been shifted in the Y-direction (see bit in flux7.f just before 'GOTO ISWITCH')
We also need an addition in file flux7.f at the appropriate place, as follows:
ELSE IF ( LATTICE(KL) .EQ. 8200 ) THEN ASSIGN 8200 TO ISWITCH
Finally we have to formulate an entry in yimp1.f. Here the Z-shifts are no longer relevant. We only have to worry about X (since MODX > 1) and not about Y (since MODY = 1).
IF ( LATTIX .EQ. 8200 ) GOTO 8200
[ ...... ]
8200 CONTINUE C Wurtzite LATTICE, <-2113> PROJECTION IF ( JX. GE. NX) THEN JX = JX - NX IF ( KY .GE. NY/2) THEN KY = KY - NY/2 ELSE KY = KY + NY/2 ENDIF ENDIF GOTO 777