User Tools

Site Tools


how_to_prepare_the_new_tip_and_sample_for_stm_simulations

This is an old revision of the document!



I. The geometry

First of all we need the “*.bas” file of the tip and sample geometry (separately). We can use the Jmol to view the “*.xyz” file. Tip should have tip apex at 0.0 0.0 xy position. We have even to prepare the “Fdata” of given properties of elements of tip and sample we will use. For followings we should run the fireball to relax these structures. If you are using new FIREBALL input format, set up followings at the “fireball.in” file:

&OPTION part

‐ basisfile = <filename>
‐ lvsfile = <filename>
‐ kptpreference = <filename>
‐ nstepf = 1

Than you have the “CHARGES” of both the systems tip and sample


II. The files we need

We need several files before we can simulate the STM scanning for both tip and sample. For sample it is “Atomo_i” and struc.inp files, hopping file “tip_sample_i_j.inp” (“interaction_i_j.dat”), “tip_e_str.inp” and “tip_g_str.inp” with the densities and geometry of the tip.


II.I. Atomo_i, struc.inp

Once we have the “CHARGES” we can produce the Atomo_i files by the FIREBALL. “CHARGES” file has to be at the same directory when you are running the FIREBALL. To the “fireball.in” we will write:

&OPTION part

‐ nstepf = 1
‐ ifixcharge = 1

&OUTPUT part

‐ iwrtatom = 1

Than you obtained “Atomo_i” files and the “struc.inp” file, which should be modified to work properly when you run the STM simulation. How to do that: The “struc.inp” file contains some information about the sample:

1 !number. of atoms in unit cell
1 !initial and final atom which is contributing to the tunneling current
12 ! number maximum of neighbours
!! you have to modify this upper part

0.000000 0.000000 0.000000 1 ! coordinates and type of each atom
.
.
.

!! Next part (up to the lattice vectors) must be added
4 !number of orbitals in each type of atom (in a row)
2 !number of shells of each atom type (in a row)
0 1 !l of each shell type atom=1 (each atom type in a row)
16 !nkprl: no. of k's in one row (nk=nkprl2), =0 read a samplek.kpts file
1 1 !index_cell1, index_cell2 (ncell = (2*index_cell1+1)*(2*index_cell1+1)

0.866025 , 0.5 , 0. !Horizontal lattice vector (x‐axis)
0.866025 , ‐0.5 , 0. !Horizontal lattice vector (y‐axis)
!! We have to delete the last row of Lattice vector

The fixing the nkprl value to 0 and using the fireball kpoints (with the opposite to complete the Brouilloin) is strongly reccomended. The index_cell1 and index_cell2 are relative to the number of cells we need in each direction x and y to avoid the border problems. The product of them gives us number of repetition unit which influence is involved to the computation.


II.II. tip_sample_i_j.inp file

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 with BEGIN wave‐functions 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). The “run_hops.com” 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 The “README” file: 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. See 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 a 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: . 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. Finally, the W (6th) is related with the work function of the materials in the hopping: 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. II.III. tip_g_str.inp Last thing which we have to do is to write the “tip_g_str.inp” file. This file contains the geometrical structure of the tip. The xyz atom coordinates should be written there at the same order as we used for the “tip_e_str.inp” file, with the apex atom at first position. The file could looks like this: 1 5 ! natoms_tip_contributing, natoms_tip 0.000000 0.000000 0.400000 1 9 ! x, y, z, atomic type, # of orbitals 1.590800 1.590800 1.590800 1 9 ! x, y, z, atomic type, # of orbitals 1.590800 ‐1.59080 1.59080 1 9 ! x, y, z, atomic type, # of orbitals ‐1.590800 1.59080 1.59080 1 9 ! x, y, z, atomic type, # of orbitals ‐1.590800 ‐1.59080 1.59080 1 9 ! x, y, z, atomic type, # of orbitals 3 ! number of shells in each type of atom 0 1 2 ! l for each shell in atom type=1 ‐2.0 4.0 81 ! energy initial, range and steps in dos file

how_to_prepare_the_new_tip_and_sample_for_stm_simulations.1259155068.txt.gz · Last modified: 2011/02/18 13:14 (external edit)