Top Page > Browsing
Spin orbit coupling Hamiltonian of isolated atoms
Date: 2020/10/16 06:21
Name: Chong Wang   <ch-wang@outlook.com>

Dear OpenMX developers,

I have been trying to extract the spin orbit coupling strength of an isolated atom. The input file is pasted below:

System.CurrrentDirectory ./
System.Name I
DATA.PATH /home/mistguy/apps/openmx-pot
HS.fileout on

Species.Number 1
<Definition.of.Atomic.Species
I I7.0-s3p3d2f1 I_PBE19
Definition.of.Atomic.Species>

Atoms.Number 1
Atoms.SpeciesAndCoordinates.Unit Frac
<Atoms.SpeciesAndCoordinates
1 I 0.000 0.000 0.000 3.5 3.5
Atoms.SpeciesAndCoordinates>
Atoms.UnitVectors.Unit Ang
<Atoms.UnitVectors
30.000 0.0000 0.0000
0.0000 30.000 0.0000
0.0000 0.0000 30.000
Atoms.UnitVectors>

scf.XcType GGA-PBE
scf.SpinPolarization NC
scf.ElectronicTemperature 300.0
scf.energycutoff 300.0
scf.SpinOrbit.Coupling on
scf.maxIter 100
scf.EigenvalueSolver band
scf.Kgrid 1 1 1
scf.Mixing.Type RMM-DIISK
scf.Init.Mixing.Weight 0.10
scf.Min.Mixing.Weight 0.001
scf.Max.Mixing.Weight 0.300
scf.Mixing.History 10
scf.Mixing.StartPulay 5
scf.Mixing.EveryPulay 1
scf.criterion 1.0e-7

I extracted the Hamiltonian from the scfout file. The Hamiltonian matrix, restricted to the first p orbital reads (orbital order: px up, py up, pz up, px down, py down, pz down):

Real part:
-6.771 -0.0 -0.0 -0.0 0.0 -0.323
-0.0 -6.771 0.0 0.0 0.0 0.0
-0.0 0.0 -6.771 0.323 0.0 -0.0
-0.0 0.0 0.323 -6.771 -0.0 0.0
0.0 0.0 0.0 -0.0 -6.771 0.0
-0.323 0.0 -0.0 0.0 0.0 -6.771

Imaginary part:
0.0 -0.323 -0.0 0.0 -0.0 -0.0
0.323 0.0 -0.0 -0.0 -0.0 0.323
0.0 0.0 0.0 -0.0 -0.323 0.0
-0.0 0.0 0.0 0.0 0.323 -0.0
0.0 0.0 0.323 -0.323 0.0 0.0
0.0 -0.323 -0.0 0.0 -0.0 0.0

My understanding is the above Hamiltonian (except for the diagonal elements of the real part) should be proportional to L*S. However, the L*S matrix reads

Real part:
0.0 0.0 0.0 0.0 0.0 1.0
0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 -1.0 0.0 0.0
0.0 0.0 -1.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0
1.0 0.0 0.0 0.0 0.0 0.0

Imaginary part:
0.0 -1.0 0.0 0.0 0.0 0.0
1.0 0.0 0.0 0.0 0.0 -1.0
0.0 0.0 0.0 0.0 1.0 0.0
0.0 0.0 0.0 0.0 1.0 0.0 <--- sign difference with 1.0
0.0 0.0 -1.0 -1.0 0.0 0.0 <--- sign difference with the second -1.0
0.0 1.0 0.0 0.0 0.0 0.0

Generally, the Hamiltonian extracted from scfout seems to be proportional to - L * S, except there are two sign mismatches marked in the above lines.

For your reference, Here's the L operators I use (written in the basis of px, py, pz; im is the imaginary unit)

Lx:
0.0+0.0im 0.0+0.0im 0.0+0.0im
0.0+0.0im 0.0+0.0im 0.0-1.0im
0.0+0.0im 0.0+1.0im 0.0+0.0im

Ly:
0.0+0.0im 0.0+0.0im 0.0+1.0im
0.0+0.0im 0.0+0.0im 0.0+0.0im
0.0-1.0im 0.0+0.0im 0.0+0.0im

Lz:
0.0+0.0im 0.0-1.0im 0.0+0.0im
0.0+1.0im 0.0+0.0im 0.0+0.0im
0.0+0.0im 0.0+0.0im 0.0+0.0im

The S matrices are simply Pauli matrices.

Incidentally, I noticed that if I choose Pauli matrix Sz as
1.0 0.0
0.0 1.0 <--- sign error
Then the Hamiltonian extracted from scfout seems to be proportional to -L * S

Unfortunately, I haven't been able to find the relevant code in the source folder. I am wondering whether I have any misunderstandings with extracting the Hamiltonian.

Thank you,

Chong Wang
メンテ
Page: [1]

Re: Spin orbit coupling Hamiltonian of isolated atoms ( No.1 )
Date: 2020/10/16 07:24
Name: Chong Wang  <ch-wang@outlook.com>

Correction:

1.

There are four sign mismatches:

Imaginary part:
0.0 -1.0 0.0 0.0 0.0 0.0 <--- sign difference in -1.0
1.0 0.0 0.0 0.0 0.0 -1.0 <--- sign difference in 1.0
0.0 0.0 0.0 0.0 1.0 0.0
0.0 0.0 0.0 0.0 1.0 0.0 <--- sign difference in 1.0
0.0 0.0 -1.0 -1.0 0.0 0.0 <--- sign difference in the second -1.0
0.0 1.0 0.0 0.0 0.0 0.0

2.

Instead of
1.0 0.0
0.0 1.0 <--- sign error
If I choose Sz as
-1.0 0.0 <--- sign error
0.0 1.0 <--- sign error
Then the Hamiltonian extracted from scfout seems to be proportional to - L * S


Chong
メンテ
Re: Spin orbit coupling Hamiltonian of isolated atoms ( No.2 )
Date: 2020/10/17 12:53
Name: Naoya Yamaguchi

Hi,

As I checked it through "analysis_example", all the elements follow the law.

Real:
-0.2488440 -0.0000000 -0.0000000 -0.0000000 0.0000000 0.0118783
-0.0000000 -0.2488440 -0.0000000 0.0000000 0.0000000 0.0000000
-0.0000000 -0.0000000 -0.2488440 -0.0118783 0.0000000 -0.0000000
-0.0000000 0.0000000 -0.0118783 -0.2488440 -0.0000000 0.0000000
0.0000000 0.0000000 0.0000000 -0.0000000 -0.2488440 0.0000000
0.0118783 0.0000000 -0.0000000 0.0000000 0.0000000 -0.2488440

Imaginary:
0.0000000 -0.0118783 0.0000000 0.0000000 -0.0000000 0.0000000
0.0118783 0.0000000 -0.0000000 0.0000000 0.0000000 -0.0118783
0.0000000 0.0000000 0.0000000 0.0000000 0.0118783 0.0000000
-0.0000000 -0.0000000 -0.0000000 0.0000000 0.0118783 0.0000000
0.0000000 -0.0000000 -0.0118783 -0.0118783 0.0000000 0.0000000
-0.0000000 0.0118783 -0.0000000 -0.0000000 0.0000000 0.0000000

Regards,
Naoya Yamaguchi
メンテ
Re: Spin orbit coupling Hamiltonian of isolated atoms ( No.3 )
Date: 2020/10/20 00:12
Name: Chong Wang  <ch-wang@outlook.com>

Thank you Naoya,


I have checked our program reading the scfout file. The comments of analysis_example.c read

"""
iHks is taken into account only if SpinP_switch==3
The matrix elements are given by

up-up: Hks[0] + I*iHks[0]
up-down: Hks[2] + I*(Hks[3]+iHks[2]) <--- Notice the sign
down-up: Hks[2] - I*(Hks[3]+iHks[2]) <--- Notice the sign
down-down: Hks[1] + I*iHks[1]
"""


Therefore, since the Hamiltonian should be Hermitian, iHks[2] for the isolated iodine atom should be symmetric. However, the output of iHks[2] from analysis_example is antisymmetric. Is the above comment accurate?


Best,

Chong
メンテ
Re: Spin orbit coupling Hamiltonian of isolated atoms ( No.4 )
Date: 2020/10/20 00:52
Name: Naoya Yamaguchi

Dear Chong,

>Therefore, since the Hamiltonian should be Hermitian, iHks[2] for the isolated iodine atom should be symmetric. However, the output of iHks[2] from analysis_example is antisymmetric. Is the above comment accurate?

Please see my answers in the following thread.
http://www.openmx-square.org/forum/patio.cgi?mode=view&no=2647

And, if you have any more questions, please ask me again.

Regards,
Naoya Yamaguchi
メンテ
Re: Spin orbit coupling Hamiltonian of isolated atoms ( No.5 )
Date: 2020/10/20 02:45
Name: Chong Wang  <ch-wang@outlook.com>

Thank you Naoya,

Do I understand correctly that this comment ("down-up: Hks[2] - I*(Hks[3]+iHks[2])") is inaccurate? Instead, the matrix elements between down-spin and up-spin should be deduced by Hermiticity of the Hamiltonian.

Best,
Chong
メンテ
Re: Spin orbit coupling Hamiltonian of isolated atoms ( No.6 )
Date: 2020/10/20 12:22
Name: Naoya Yamaguchi

Dear Chong,

>Do I understand correctly that this comment ("down-up: Hks[2] - I*(Hks[3]+iHks[2])") is inaccurate?

Hks[3] is always 0 as I showed in the thread. So, you can get down-up elements from Hks[2] and iHks[2].

>Instead, the matrix elements between down-spin and up-spin should be deduced by Hermiticity of the Hamiltonian.

And, I got down-up ones from up-down ones with transpose-conjugate.

>iHks[2] for the isolated iodine atom should be symmetric.

It is not correct.

>However, the output of iHks[2] from analysis_example is antisymmetric.

This follows Hermiticity.

Regards,
Naoya Yamaguchi
メンテ
Re: Spin orbit coupling Hamiltonian of isolated atoms ( No.7 )
Date: 2020/10/20 23:58
Name: Chong Wang  <ch-wang@outlook.com>

Thanks.

I understand your method of extracting the Hamiltonian. I am merely trying to confirm that the following comment in analysis_example.c is misleading:

"""
iHks is taken into account only if SpinP_switch==3
The matrix elements are given by

up-up: Hks[0] + I*iHks[0]
up-down: Hks[2] + I*(Hks[3]+iHks[2])
down-up: Hks[2] - I*(Hks[3]+iHks[2])
down-down: Hks[1] + I*iHks[1]
"""

This comment is misleading because I would deduce from this comment that

<0 n down|H|R m up> = (Hks[2] - I*(Hks[3]+iHks[2]))_{nm},

where n and m are orbital indices, R is a lattice vector, 0 denotes the home unit cell. However, the above relation is wrong, instead, I should use

<0 n down|H|R m up> = (<0 m up|H|-R n down>)^*


At the very least, without talking to you, I would never know whether I should deduce down-up matrix elements from up-down matrix elements, or deduce up-down matrix elements from down-up matrix elements.

If you agree with me, I would suggest to delete the line "down-up: Hks[2] - I*(Hks[3]+iHks[2])" in the comment and add a sentence saying down-up matrix elements should be deduced from up-down matrix elements.

Best,

Chong
メンテ
Re: Spin orbit coupling Hamiltonian of isolated atoms ( No.8 )
Date: 2020/10/21 01:01
Name: T. Ozaki

Hi,

Sorry for causing your confusion.

However, the expression:

"""
iHks is taken into account only if SpinP_switch==3
The matrix elements are given by

up-up: Hks[0] + I*iHks[0]
up-down: Hks[2] + I*(Hks[3]+iHks[2])
down-up: Hks[2] - I*(Hks[3]+iHks[2])
down-down: Hks[1] + I*iHks[1]
"""
is just a symbolic one. So, the latter indexes should be treated properly
so that the resultant Hamiltonian will be hermitian.

In the next release, we will modify the comment to avoid any confusion.

Thank you for your suggestion.

Regards,

TO
メンテ

Page: [1]

Thread Title (must) Move the thread to the top
Your Name (must)
E-Mail (must)
URL
Password (used in modification of the submitted text)
Comment (must)

   Save Cookie