This thread is locked.Only browsing is available.
Top Page > Browsing
Hamiltonian matrix file
Date: 2019/02/28 03:29
Name: Maedeh

Dear Prof. Ozaki and OpenMX experts

I have calculated the graphene unit cell with 2 atoms and s2p1 basis set as a test. Now I am wondering why the local index changes from 0 to 45? And the spins change from 0 to 3. Does it mean up-up (spin=0), down-down (spin=1), up-down (spin=2), and down-up (spin=3)?


Kohn-Sham Hamiltonian spin=0
glbal index=1 local index=0 (grobal=1, Rn=0)
-0.7780100 0.0636721 0.0000179 0.0000103 0.0000001
0.0636721 0.0060211 0.0000023 0.0000014 -0.0000000
0.0000179 0.0000023 -0.5643919 -0.0000029 0.0000000
0.0000103 0.0000014 -0.0000029 -0.5643886 -0.0000000
0.0000001 -0.0000000 0.0000000 -0.0000000 -0.3237962
glbal index=1 local index=1 (grobal=1, Rn=203)
-0.0006128 0.0029816 -0.0017346 0.0000090 0.0000000
0.0029816 -0.0136990 0.0081470 -0.0000519 -0.0000000
0.0017346 -0.0081470 0.0048194 -0.0000301 -0.0000000
0.0000090 -0.0000519 0.0000301 -0.0003080 -0.0000000
0.0000000 -0.0000000 0.0000000 -0.0000000 -0.0002953
glbal index=1 local index=2 (grobal=1, Rn=212)
-0.0035158 0.0136248 -0.0075142 0.0043383 0.0000000
0.0133979 -0.0447207 0.0261521 -0.0150988 -0.0000000
0.0074311 -0.0262735 0.0145882 -0.0096787 -0.0000000
-0.0042904 0.0151691 -0.0096789 0.0034120 0.0000000
0.0000000 -0.0000000 0.0000000 -0.0000000 -0.0016473

any suggestion will be appreciated.
Best regards
Page: [1]

Re: Hamiltonian matrix file ( No.1 )
Date: 2019/03/03 12:25
Name: Po-Hao  <>

Hi Maedeh,

I assume you are using the interface for developers.
If your system is collinear or unpolarized. To get some idea, you can replace in the code

printf("glbal index=%i local index=%i (grobal=%i, Rn=%i)\n",
ct_AN,h_AN,Gh_AN,Rn); */

printf("%i %i %i %i %i %i %i \n ",
ct_AN, Gh_AN,atv_ijk[Rn][1],atv_ijk[Rn][2],atv_ijk[Rn][3],TNO1,TNO2);

and adjust for your own convenience.

The series of number printed out then, for example 2 5 1 1 2 4 9, will
correspond to a matrix block between the 2nd element and "the 5th element in [1 1 2] cell" and there are 4 orbitals for the 2nd element and 9 orbitals for the 5th element so the block will be a 4 x 9 matrix.

the function I added in addition to the original statement atv_ijk[Rn][1],atv_ijk[Rn][2],atv_ijk[Rn][3] converts Rn to [n m l]

The idea is that each block corresponds to the hopping term between i- and j-site.
The first number corresponds to i-site run from 1 to whatever number of atoms you have in your unitcell.
However the 2nd number corresponds to j-site have to cover all the sites, including neighboring unitcell, that have overlap with all the sites in your [0 0 0]. Therefore, how many j-sites you have depends on the radius cutoff you have in your atom species specification (ex. C6.0-s2p2 ).

In the case of spin

If it's collinear then spin=0 and =1 correspond to upup and downdown.

In case of noncollinear, if I remember correctly, spin=3 and spin=4 correspond to Re upd-own and Im up-down. (This part you should double check)

As Hamiltonain is Hermitian, it doesn't make sense to store updown and downup.

Re: Hamiltonian matrix file ( No.2 )
Date: 2019/03/05 20:15
Name: Maedeh

Dear Po-Hao

Thank you very much for your explanation and helpful information.
It is much more clear now. I will work out a couple of examples to see if I fully understand the labels.

Best regards
Hamiltonian matrix file ( No.3 )
Date: 2019/06/07 07:26
Name: Maedeh

Dear Prof. Ozaki and OpenMX experts
I have another question about the Hamiltonian matrix blocks. in some cases, we have some missing blocks in the output file of the Hamiltonian/overlap matrix. for example, we have 1 2 l=-1 m=-1 n=0 but not 2 1 l=-1 m=-1 n=0 (which the numbers meaning are the same as Po-Hao mentioned before). I thought this is because the blocks are the same but I have seen this statement from Prof. Ozaki in the OpenMX forum:

Only the non-zero matrix elements are stored since the strictly localized basis functions are used in OpenMX.

Does this mean that the missing blocks are zero?

In advance, I do appreciate your kind replies,
Best regards,
Re: Hamiltonian matrix file ( No.4 )
Date: 2019/06/07 18:32
Name: Naoya Yamaguchi

Dear Maedeh,

>we have 1 2 l=-1 m=-1 n=0 but not 2 1 l=-1 m=-1 n=0 (which the numbers meaning are the same as Po-Hao mentioned before).
I guess that "1 2" means ct_AN=1; Gh_AN=2 and l, m, n stand for the cell indices. If so, I think that "1 2 l=-1 m=-1 n=0" corresponds "2 1 l=1 m=1 n=0", not "2 1 l=-1 m=-1 n=0" because Gh_AN is a global atom index, but it is for h_AN in a certain cell.

Naoya Yamaguchi
Re: Hamiltonian matrix file ( No.5 )
Date: 2019/06/08 05:12
Name: Maedeh

Dear Naoya Yamaguchi,

YES! you are right. "1 2 l=-1 m=-1 n=0" corresponds "2 1 l=1 m=1 n=0".
Thank you so much for your reply.

Best regards,

Page: [1]