This is an old revision of the document!
In our approximation, we use a dimer formed by one kind of atom from the tip and another kind from the sample. We have to generate a “tip_sample_i_j.inp” (or “interaction_i_j.dat”) for each pair of kinds. As we want interactions for bigger distances than we have in a crystal relaxation, we need to generate these wave-functions by the BEGIN with a cut‐off radius of about 10‐15 au. When we have the wave‐functions we generate the interactions (Fdata) with CREATE. After that, we run with FIREBALL the dimer, mentioned before, for several distances (normally from 2 au to 20 or 30 au). To obtain the hoppings in the STM format we need (“fireball.in”):
&OPTION part
‐ ifixcharges = 1
‐ nstepf = 1
&OUTPUT part
‐ iwrthop = 1
To do this, we can use the script “run_hops.com” which is necessary to modify in dependence what output format you expect (read the “README” file of this script).
#!/bin/bash
#mv -f interactions.dat interactions.dat.old
echo 1 > lockfile
tipo1=“`cat lista`”
for i in $tipo1;
do
tipo2=“`cat lockfile`”
if [ $tipo2 == “2” ];
then
echo 1 > lockfile
name2=“`echo $i`”;
sed “s/AAAAAAA/$name2/g” tip_sample_aux » interactions.dat;
echo $i
else
echo 2 > lockfile
name1=“`echo $i`”;
sed “s/AAAAAAA/$name1/g” model.bas > tmp.bas;
./fireball.k.x > out_tmp;
fi
done
cat header.dat > interaction_X_Y.dat
cat interactions.dat » interaction_X_Y.dat
rm -f lockfile
rm -f inter_aux.dat
rm -f tip_sample_aux
a short description how to generate hopping data
files we need:
fireball.in
model.bas
lista
header.dat
=======A. edit:
CHARGES
model.bas
=======B. edit run_hops.com
If you need the fireball output format, than to the
“interactions.dat” you have to write
the inter_aux.dat
If you need the STM code output format, than to the
“interactions.dat” you have to write
the tip_sample_aux.
The difference is amount of some writen informations at the header of interaction (hopping) file, number of interactions and even the length units. For STM format it is a.u. when for the fireball format it is Angstroms.
=======C. launch
./run_hop.com
=======D. modify header of interacti_X_Y.dat file
!*Interactions for W(spd)-C(sp) using FIREBALL program*!
57 !number of distances
2.00000 30.00000 !dist_min, dist_max
10 !number of interactions
In the case you choose the STM output format, don't forget to remove duplicate (symmetric) interactions from the “interactions_X_Y.inp” file. You have to write there even the line of 3 more numbers (2 3 10) which gives us the number of the shells of the tip and sample respectively.
!*Interactions for W(spd)-C(sp) using FIREBALL program*!
57 !number of distances
2.00000 30.00000 !dist_min, dist_max
2 3 10 !number of shells of the tip, of the
sample, number of interactions
If we put the hoppings for all the distances in a file, we will have the basis
for the “tip_sample_i_j.inp” (or “interaction_i_j.dat”) files (see the example in the STM
code). Then we have to complete the file with the parameters for the long
distances approximation.
Look at the header:
!*Interactions for W‐Tid using FIREBALL program*!
57
2.000000 30.00000
3 3 14
0 0 0 ‐21.0000 1.0000 0.5738 1 1 14.5000
0 1 0 95.0000 1.0000 0.5738 1 1 16.5000
.
.
.
where 57 is the number of distance steps, from 2 au to 30 ua. 3 and 3 are
the number of shells for each kind of atom on the tip and the sample respectively.
14 is the total number of interactions for each distance. Finally, the 14 next rows
are related with the long‐range approximation. 0,0,0 means orbital s (0)in the tip
and orbital s (0) in the sample and an interaction sigma (0). Orbitals p will be 1
and d 2, the interaction pi will be 1 and delta 2.
For long distances, we do the parallel planes approximation using
the expression:
A.e-W.r
The “A” (4th value in the row) is the independent value we have to find. “α” (5th value) depends on the orbitals you have in the hoppings, the expression used is: α=l1+l2+1, but sometimes it could be changed depending on the fix conditions. The “W” (6th) is related with the work function of the materials in the hopping (Hartree):
W = (ωT + ωS)1/2
where ω’s are the work function for
each kind of atom. There is no function as BEGIN or CREATE to calculate these
long‐distance parameters, but there is a tool in the XEO program made by Daniel
Gonzalez. Here you have to change by hand the values of “A” till you “see” (with the
eyes) a coincidence in the value and the derivative. Finally, let’s mention that the
7th and 8th values in the row are related with the simple basis or double basis
case. When you have a double basis you need an extra parameter to differentiate
from the simple basis orbital.
The last value is the cut‐off radius.
Here you can download :
========================.
=“run_hops.com” script
=“README” file
========================.