QuantumATK Forum

QuantumATK => General Questions and Answers => Topic started by: ramkrishna on September 9, 2012, 17:41

Title: ATK-SE: Slater-Koster Hamiltonian
Post by: ramkrishna on September 9, 2012, 17:41
Dear Sir,
         In the tutorial http://www.quantumwise.com/publications/tutorials/mini-tutorials/167,  the calculator uses ATK-SE: Slater-Koster for both the system. Is it possible to extract (or get) the Slater -Koster Hamiltonian matrix (Nearest-neighbor model) for these materials like the tutorial http://www.quantumwise.com/documents/tutorials/latest/SlaterKosterModel/index.html/?

Regards
Ramkrishna
Title: Re: ATK-SE: Slater-Koster Hamiltonian
Post by: kstokbro on September 10, 2012, 14:44
see the post:
http://quantumwise.com/forum/index.php?topic=1548.0
Title: Re: ATK-SE: Slater-Koster Hamiltonian
Post by: ams_nanolab on September 25, 2012, 07:01
Dear Sir,

I obtained the Hamiltonian from ATK using the code HS.py given in http://quantumwise.com/forum/index.php?topic=1548.0 but could you kindly tell us what basis is being used in the Hamiltonian for MoS2 (spd , spds* etc).

I am getting two 17x17 matrices but a little bit confused regarding the elements, as to what basis and what direction cosines they are associated with.

Please help regarding this.
Title: Re: ATK-SE: Slater-Koster Hamiltonian
Post by: kstokbro on September 25, 2012, 21:44
try to calculatate and print out the mulliken population, this will give you a list of the orbitals
Title: Re: ATK-SE: Slater-Koster Hamiltonian
Post by: Anders Blom on September 25, 2012, 22:31
Which orbitals you have depends on which basis set you used. An easy way to find out is to send the geometry to the Script Generator, add a New Calculator and select the basis set you want, then change "Script detail" to "Show Defaults" and send the script to the Editor. Isolating the relevant lines, you can find that for instance for the default DoubleZetaPolarized set, you have

Molybdenum: orbitals=[ molybdenum_4d , molybdenum_5s , molybdenum_4d_split , molybdenum_5s_split , molybdenum_5s_polarization]
Sulfur: orbitals=[ sulfur_3s , sulfur_3p , sulfur_3s_split , sulfur_3p_split , sulfur_3p_polarization ]

The H and S matrices follow the ordering of the atoms first, then the order of the orbitals in the basis set. In the case of a single unit cell of single-layer MoS2, the matrix is 41x41 (1 Mo, 2 S, d=5 orbitals, p=3, s=1, note that p-polarization is d and s-polarization is p).

Note that this is not a supported feature, so you're pretty much on your own here.
Title: Re: ATK-SE: Slater-Koster Hamiltonian
Post by: ams_nanolab on September 28, 2012, 07:56
Thanks for the answer ........ :)

But say for instance I'm running ATK-SE:Slater-Koster for MoS2 using the (default) CP2K basis.

Then the matrices are 17x17 right?

I don't know what orbitals cp2k uses... could you help on that?
Title: Re: ATK-SE: Slater-Koster Hamiltonian
Post by: Anders Blom on September 28, 2012, 10:28
If you set it all up in the Script Generator, you can add these lines at the bottom of the script:

Code: python
bs = calculator.basisSet()
bs.onsiteParameters()['mo'].angularMomenta()
bs.onsiteParameters()['s'].angularMomenta()

You will then see that the Mo basis set is sp3d5 and for S it's sp3. So you have 9 orbitals for Mo and 4 for each S atom = 17 in total. The ordering is also seen from the printout, and of course there is a major ordering by atoms. That is, for instance the matrix element on row 9, column 8, i.e. H[9,8] (remember, the first row/column is (0,0)) would be the Hamiltonian element between a d-orbital in Mo and a p-orbital in the first S atom. H[13,16] would be between the s-orbital in the second S atom and a p-orbital in the second S atom.

The orbitals with in spd are ordered as

s: s
p: y, z, x
d: x*y, y*z, x^2+y^2-2*z^2,  x*z, x^2-y^2

Title: Re: ATK-SE: Slater-Koster Hamiltonian
Post by: ams_nanolab on September 28, 2012, 13:08
Thanks :)
Title: Re: ATK-SE: Slater-Koster Hamiltonian
Post by: ams_nanolab on October 2, 2012, 07:48
Dear Sir,

Another thing that I was wondering... since we're calculating E-k relation in the G, M, K, G path, so the system hamiltonian I'm getting at the output using the HS.py script must be the system Hamiltonian at the final Gamma point ?

So in similar way if I calculate in the G, M, K direction then the final H matrix will give the value of the system H at K point ?

Kindly clarify... :)
Title: Re: ATK-SE: Slater-Koster Hamiltonian
Post by: zh on October 2, 2012, 08:21
That 'HS.py' script file is designed for printing out the Hamiltonian matrix of a given k point. So you must explicitly define which k point will be calculated, it does not matter with the direction used in the E-k dispersion.

That is to day, if you want to print the Hamiltonian matrix at Gamma point, you have to specify the  "ka=0.0, kb=0.0, kc=0.0". For the K point, you have to  specify the "ka=0.33333, kb=0.333333, kc=0.0" or the equivalent ones.
Title: Re: ATK-SE: Slater-Koster Hamiltonian
Post by: ams_nanolab on November 5, 2012, 10:28
could you tell what energy unit quantumwise uses for internal calculations ? and are the outputs from HS.py script in eV? Hartree/ Rydberg/ eV ?
Title: Re: ATK-SE: Slater-Koster Hamiltonian
Post by: Anders Blom on November 5, 2012, 13:49
Everything internal in ATK is in Hartree and Bohr.