This shows you the differences between two versions of the page.
Both sides previous revision Previous revision | |||
the_hoppings [2014/07/08 13:22] prokop |
the_hoppings [2014/07/08 13:35] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | \\ | ||
- | ==== The hoppings (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.// \\ | ||
- | 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 (Hartree): | ||
- | |||
- | W = (ω<sub>T</sub> + ω<sub>S</sub>)<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 \\ | ||
- | ========================. | ||
- | |||
- | \\ |