User Tools

Site Tools


how_to_prepare_the_new_tip_and_sample_for_stm_simulations

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

how_to_prepare_the_new_tip_and_sample_for_stm_simulations [2009/11/25 14:26]
vroz
how_to_prepare_the_new_tip_and_sample_for_stm_simulations [2011/02/18 13:13]
Line 1: Line 1:
- \\ 
-==== 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 k-points (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 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). 
-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.txt · Last modified: 2011/02/18 13:13 (external edit)