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/26 10:16]
vroz
how_to_prepare_the_new_tip_and_sample_for_stm_simulations [2011/02/18 13:13]
Line 1: Line 1:
- \\ 
-==== 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 
- 
- \\ 
- 
- 
- 
-==== 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). 
- 
-== II.II.I. 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 
- 
-== II.II.II. 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.//​ \\ 
-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<​sup>​-W.r</​sup>​ 
- 
-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: ​ 
- 
-W = ((ω<​sub>​T</​sub>​ + ω<​sub>​S</​sub>​) / 2)<​sup>​1/​2</​sup>​ 
- 
-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 \\ 
-========================. 
- 
-\\ 
- 
-=== 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 \\ 
- 
-// But be carefull, the energy in the STM code is related to the Fermi level. When Fermi level is -2 eV from FIREBALL in the "​tip_g_str.inp"​ in it's last line the first value has to be 0.0 (energy initial - Fermi level)// 
how_to_prepare_the_new_tip_and_sample_for_stm_simulations.txt · Last modified: 2011/02/18 13:13 (external edit)