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

Both sides previous revision Previous revision
Next revision
Previous revision
how_to_prepare_the_new_tip_and_sample_for_stm_simulations [2009/11/25 14:17]
vroz
how_to_prepare_the_new_tip_and_sample_for_stm_simulations [2011/02/18 13:13] (current)
Line 1: Line 1:
  \\  \\
-==== I. The geometry ====+==== The geometry ====
  
 First of all we need the “*.bas” file of the tip and sample geometry First of all we need the “*.bas” file of the tip and sample geometry
Line 23: Line 23:
  
  
-==== II. The files we need ====+==== The files we need ====
  
  
 We need several files before we can simulate the STM scanning for both 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 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 “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. the densities and geometry of the tip.
Line 35: Line 35:
 === II.I. Atomo_i, struc.inp === === II.I. Atomo_i, struc.inp ===
  
-Once we have the “CHARGES” we can produce the Atomo_i files by the+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 FIREBALL. “CHARGES” file has to be at the same directory when you are running
 the FIREBALL. To the “fireball.in” we will write: the FIREBALL. To the “fireball.in” we will write:
Line 73: Line 73:
 //!! We have to delete the last row of Lattice vector// //!! We have to delete the last row of Lattice vector//
  
-The fixing the nkprl value to 0 and using the fireball ​kpoints ​(with the+The fixing the "nkprl" ​value to 0 and using the fireball ​k-points ​(with the
 opposite to complete the Brouilloin) is strongly reccomended. opposite to complete the Brouilloin) is strongly reccomended.
-The index_cell1 and index_cell2 are relative to the number of cells we+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 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 gives us number of repetition unit which influence is involved to the
Line 87: Line 87:
 In our approximation,​ we use a dimer formed by one kind of atom from 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 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+"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 interactions for bigger distances than we have in a crystal relaxation, we need to
-generate ​with BEGIN wavefunctions with a cut‐off radius of about 10‐15 au.+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 When we have the wave‐functions we generate the interactions (Fdata) with
-CREATE. After that, we run with FIREBALL the dimer, mentioned before, for+**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 several distances (normally from 2 au to 20 or 30 au). To obtain the hoppings in
 the STM format we need (“fireball.in”):​ the STM format we need (“fireball.in”):​
-&OPTION ​part + 
-‐ ifixcharges = 1 +__&OPTION__ ​part \\ 
-‐ nstepf = 1 + 
-&OUTPUT ​part+‐ ifixcharges = 1 \\ 
 +‐ nstepf = 1 \\  
 + 
 +__&OUTPUT__ ​part \\ 
 ‐ iwrthop = 1 ‐ iwrthop = 1
 +
 To do this, we can use the script “run_hops.com” which is necessary to 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 modify in dependence what output format you expect (read the “README” file of
 this script). this script).
-The “run_hops.com” script: + 
-#​!/​bin/​bash +== II.II.I. ​The “run_hops.com” script: ​== 
-#mv -f interactions.dat interactions.dat.old + 
-echo 1 > lockfile +#​!/​bin/​bash ​\\ 
-tipo1="​`cat lista`"​ +#mv -f interactions.dat interactions.dat.old ​\\ 
-for i in $tipo1; do +echo 1 > lockfile ​\\ 
-tipo2="​`cat lockfile`"​ +tipo1="​`cat lista`" ​\\ 
-if [ $tipo2 == "​2"​ ]; then +for i in $tipo1; ​\\  
-echo 1 > lockfile +do \\ 
-name2="​`echo $i`";​ +tipo2="​`cat lockfile`" ​\\ 
-sed "​s/​AAAAAAA/​$name2/​g"​ tip_sample_aux >> +if [ $tipo2 == "​2"​ ]; \\  
-interactions.dat;​ +then \\ 
-echo $i +echo 1 > lockfile\\ 
-else +name2="​`echo $i`"; ​\\ 
-echo 2 > lockfile +sed "​s/​AAAAAAA/​$name2/​g"​ tip_sample_aux >> interactions.dat; ​\\ 
-name1="​`echo $i`";​ +echo $i \\ 
-sed "​s/​AAAAAAA/​$name1/​g"​ model.bas > tmp.bas; +else \\ 
-./​fireball.k.x > out_tmp; +echo 2 > lockfile ​\\ 
-fi +name1="​`echo $i`"; ​\\ 
-done +sed "​s/​AAAAAAA/​$name1/​g"​ model.bas > tmp.bas; ​\\ 
-cat header.dat > interaction_X_Y.dat +./​fireball.k.x > out_tmp; ​\\ 
-cat interactions.dat >> interaction_X_Y.dat +fi \\ 
-rm -f lockfile +done \\ 
-rm -f inter_aux.dat+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 rm -f tip_sample_aux
-The “README” file: + 
-************a short description how to generate hopping data +== II.II.II. ​The “README” file: == 
-files we need: + 
-fireball.in +a short description how to generate hopping data \\ 
-model.bas +files we need: \\ 
-lista +fireball.in ​\\ 
-header.dat +model.bas ​\\ 
-=======A. edit: +lista \\ 
-CHARGES +header.dat ​\\ 
-model.bas + 
-=======B. edit run_hops.com +=======A. edit: \\ 
-if you need the fireball output format, than to the +CHARGES ​\\ 
-interactions.dat you have to write +model.bas ​\\ 
-the inter_aux.dat + 
-if you need the STM code output format, than to the +=======B. edit run_hops.com ​\\ 
-interactions.dat you have to write +If you need the **fireball output format**, than to the 
-the tip_sample_aux +"interactions.dat" ​you have to write 
-*****The difference is amount of some writen informations at +the inter_aux.dat ​\\ 
-the header of interaction (hopping) file,***** +If you need the **STM code output format**, than to the 
-*****number of interactions and even the length units. For +"interactions.dat" ​you have to write 
-STM format it is a.u. when for the fireball***** +the tip_sample_aux. \\ 
-*****format it is Angstroms. + 
-***** +The difference is amount of some writen informations at 
-=======C. launch +the header of interaction (hopping) file, number of interactions and even the length units. For 
-./​run_hop.com +STM format it is a.u. when for the fireball format it is Angstroms. 
-=======D. modify header of interacti_X_Y.dat file + 
-***************** Interactions for W(spd)-C(sp) using +=======C. launch ​\\ 
-FIREBALL program ******* +./​run_hop.com ​\\ 
-57 !number of distances + 
-2.00000 30.00000 !dist_min dist_max +=======D. modify header of interacti_X_Y.dat file \\ 
-10 !number of interactions +!*Interactions for W(spd)-C(sp) using FIREBALL program*! \\ 
-in the case you choose the STM output format, don't forget+57 !number of distances ​\\ 
 +2.00000 30.00000 !dist_mindist_max ​\\ 
 +10 !number of interactions ​\\ 
 + 
 +//In the case you choose the STM output format, don't forget
 to remove duplicate (symmetric) interactions to remove duplicate (symmetric) interactions
-from the interactions_X_Y.inp file. You have to write there+from the "interactions_X_Y.inp" ​file. You have to write there
 even the line of 3 more numbers (2 3 10) even the line of 3 more numbers (2 3 10)
 which gives us the number of the shells of the tip and which gives us the number of the shells of the tip and
-sample respectively. +sample respectively.// 
-***************** Interactions for W(spd)-C(sp) using + 
-FIREBALL program ******* +!*Interactions for W(spd)-C(sp) using FIREBALL program*! \\ 
-57 !number of distances +57 !number of distances ​\\ 
-2.00000 30.00000 !dist_min dist_max+2.00000 30.00000 !dist_mindist_max ​\\
 2 3 10 !number of shells of the tip, of the 2 3 10 !number of shells of the tip, of the
-sample, number of interactions +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+//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 code). Then we have to complete the file with the parameters for the long
-distances approximation. ​See the header: +distances approximation.// \\ 
-* Interactions for W‐Tid using FIREBALL program * +Look at the header: 
-57 + 
-2.000000 30.00000 +!*Interactions for W‐Tid using FIREBALL program*! \\ 
-3 3 14 +57 \\ 
-0 0 0 ‐21.0000 1.0000 0.5738 1 1 14.5000 +2.000000 30.00000 ​\\ 
-0 1 0 95.0000 1.0000 0.5738 1 1 16.5000 +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 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. 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 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 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 interaction sigma (0). Orbitals p will be 1 +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.+and d 2, the interaction pi will be 1 and delta 2. \\
 For long distances, we do the parallel planes approximation using For long distances, we do the parallel planes approximation using
-the expression: . The A (4th value in the row) is the independent value we +the expression: ​\\ 
-have to find. α (5th value) depends on the orbitals you have in the hoppings, the+  
 +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 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 +the fix conditions. ​The "W" ​(6th) is related with the work function of the 
-materials in the hopping: where ω’s are the work function for +materials in the hopping: ​ 
-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 +W = ((ω<​sub>​T</​sub>​ + ω<​sub>​S</​sub>​) / 2)<​sup>​1/​2</​sup>​ 
-Gonzalez. Here you have to change by hand the values of A till you “see” (with the+ 
 +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 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 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 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. +from the simple basis orbital. ​\\ 
-II.III. tip_g_str.inp+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 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 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 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: +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 5 ! natoms_tip_contributing,​ natoms_tip ​\\ 
-1.590800 1.590800 1.590800 1 9 ! x, y, z, atomic type, # of orbitals +0.000000 0.000000 0.400000 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.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 +‐1.590800 1.59080 1.59080 1 9 ! x, y, z, atomic type, # of orbitals ​\\ 
-3 ! number of shells in each type of atom +‐1.590800 ‐1.59080 1.59080 1 9 ! x, y, z, atomic type, # of orbitals ​\\ 
-0 1 2 ! l for each shell in atom type=1 +3 ! number of shells in each type of atom \\ 
-‐2.0 4.0 81 ! energy initial, range and steps in dos file+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.1259155068.txt.gz · Last modified: 2011/02/18 13:14 (external edit)