Reading X2C spinor Hamiltonian from DIRAC24 checkpoint for NEGF transport

12 views
Skip to first unread message

Sushant Kumar Behera

unread,
Jan 20, 2026, 9:26:29 AM (6 days ago) Jan 20
to dirac-users
Dear DIRAC developers and users,

I am performing NEGF-based quantum transport post-processing, and our postprocess transport python script expects the two-component (spinor) X2C Hamiltonian including spin–orbit coupling, expressed in an AO basis.

From the DIRAC checkpoint file, I find the following Hamiltonian-related groups and datasets:

* `/result/hamiltonian`
* `/result/hamiltonian/x2c`
* `/result/hamiltonian/x2c/ao_matrices`
* `/result/hamiltonian/x2c/ao_matrices/h12cAOA`
* `/result/hamiltonian/x2c/ao_matrices/h12cAOa`
* `/result/hamiltonian/x2c/ao_matrices/pctmtAO`

I would appreciate clarification on the following points:

1. What is the physical and mathematical meaning of the matrices
   `h12cAOA`, `h12cAOa`, and `pctmtAO` in the context of the X2C Hamiltonian?

2. For a **spinor-based (2c) NEGF transport calculation**, which of these matrices should be used as the effective one-electron Hamiltonian?

3. Are `h12cAOA` and `h12cAOa` block components of the full 2c Hamiltonian (e.g. large–large, large–small, or spin blocks), and if so, how should they be combined to construct the full spinor Hamiltonian matrix?

4. Does `pctmtAO` correspond to the picture-change correction or metric transformation, and is it required when constructing the Hamiltonian for post-processing outside DIRAC?

5. Is there a recommended procedure or reference for extracting the full 2c X2C spin-orbit Hamiltonian from the checkpoint file for external transport calculations?

Any guidance or pointers to documentation/examples would be greatly appreciated.

Thank you very much for your help.

Best regards,
Sushant

--
Sushant Kumar Behera 
Department of Physics 
University of Pavia 
Via Bassi 6, I-27100 Pavia, Italy 

Visscher, L. (Luuk)

unread,
Jan 21, 2026, 10:16:46 AM (5 days ago) Jan 21
to dirac...@googlegroups.com
Dear Sushant,

This is a good question, I was planning to add a descriptor field to the data on the checkpoint, but have not got round doing this yet. 
As I was not involved in the programming of this method, I also need to guess a bit. Rather than doing this, I’ll point you to the code (click on the picture) where you can check the comments. 
This may hopefully makes things already a bit clearer:


I know that the picture-change transformation matrix is stored somewhere, but the naming of the data is indeed not very clear. 
I’ll attend my fellow developers on this point at the upcoming hackathon, because an update of documentation on this point would indeed be useful.

best regards,

Luuk





--
You received this message because you are subscribed to the Google Groups "dirac-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to dirac-users...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/dirac-users/CAOfKVFJKYtixEM38nfMV%3Dt%2BL8oZeaD2gp1Vkp9aoThuTUadCgQ%40mail.gmail.com.

Sushant Kumar Behera

unread,
Jan 21, 2026, 11:15:37 AM (5 days ago) Jan 21
to dirac...@googlegroups.com
Dear Luuk,

Thank you very much. I will check the x2c directory and x2c_utility_routines.F90 that contains routines that read and print matrices. 

Best regards,
Sushant

Trond SAUE

unread,
Jan 22, 2026, 11:29:31 AM (4 days ago) Jan 22
to dirac...@googlegroups.com

Dear Sushant,

On 1/20/26 15:26, Sushant Kumar Behera wrote:

Dear DIRAC developers and users,

I am performing NEGF-based quantum transport post-processing, and our postprocess transport python script expects the two-component (spinor) X2C Hamiltonian including spin–orbit coupling, expressed in an AO basis.

From the DIRAC checkpoint file, I find the following Hamiltonian-related groups and datasets:

* `/result/hamiltonian`
* `/result/hamiltonian/x2c`
* `/result/hamiltonian/x2c/ao_matrices`
* `/result/hamiltonian/x2c/ao_matrices/h12cAOA`
* `/result/hamiltonian/x2c/ao_matrices/h12cAOa`
* `/result/hamiltonian/x2c/ao_matrices/pctmtAO`

I would appreciate clarification on the following points:

1. What is the physical and mathematical meaning of the matrices
   `h12cAOA`, `h12cAOa`, and `pctmtAO` in the context of the X2C Hamiltonian?

I have consulted with the author of this module, Stefan Knecht, and his answers are
* `/result/hamiltonian/x2c/ao_matrices/h12cAOA`

is the picture-change transformed Hamiltonian in AO basis (non-symmetry adapted, the most basic form) WITH any AMFI-like (AMFI, (e)AMF) corrections added.

* `/result/hamiltonian/x2c/ao_matrices/h12cAOa`

is the picture-change transformed Hamiltonian in AO basis (non-symmetry adapted, the most basic form) WITHOUT any AMFI-like corrections added.

* `/result/hamiltonian/x2c/ao_matrices/pctmtAO`

is the U matrix transforming from 4c to 2c.


2. For a **spinor-based (2c) NEGF transport calculation**, which of these matrices should be used as the effective one-electron Hamiltonian?

This is more a scientific question than a software one. If you were to do a 4c non-equilibrium Green function calculation, would you use the full electronic Hamiltonian (one- and two-electron parts),  possibly on normal-ordered form ?


3. Are `h12cAOA` and `h12cAOa` block components of the full 2c Hamiltonian (e.g. large–large, large–small, or spin blocks), and if so, how should they be combined to construct the full spinor Hamiltonian matrix?

The 2c Hamiltonians are given in the large component basis.


4. Does `pctmtAO` correspond to the picture-change correction or metric transformation, and is it required when constructing the Hamiltonian for post-processing outside DIRAC?

The U matrix allows you to transform any 4c matrix to 2c form, e.g. of property operators.


5. Is there a recommended procedure or reference for extracting the full 2c X2C spin-orbit Hamiltonian from the checkpoint file for external transport calculations?

If you for instance do the following in your DIRAC directory

aue@lpqlx134:~/Dirac$ git grep h12cAOA
src/dirac/dirone.F:     &'/result/hamiltonian/x2c/ao_matrices/h12cAOA   10',x2c_AOA)
src/x2c/x2c_2e_soc_interface.F90:       write(flabel,'(a7,i4,i1)') 'h12cAOA',1,i
src/x2c/x2c_2e_soc_interface.F90:       write(flabel,'(a7,i4,i1)') 'h12cAOA',1,i
src/x2c/x2c_utility_routines.F90:         write(flabel,'(a7,i4,i1)') 'h12cAOA',1,i

you will see that in the x2c directory there is code writing the matrix representation of the x2c hamiltonian to the file X2CMAT, whereas in the dirac directory there is code for checking its presence. I will check a bit more on this.

All the best,

    Trond


Any guidance or pointers to documentation/examples would be greatly appreciated.

Thank you very much for your help.

Best regards,
Sushant

--
Sushant Kumar Behera 
Department of Physics 
University of Pavia 
Via Bassi 6, I-27100 Pavia, Italy 

--
You received this message because you are subscribed to the Google Groups "dirac-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to dirac-users...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/dirac-users/CAOfKVFJKYtixEM38nfMV%3Dt%2BL8oZeaD2gp1Vkp9aoThuTUadCgQ%40mail.gmail.com.


--
Trond Saue
Laboratoire de Chimie et Physique Quantiques
UMR 5626 CNRS --- Université Toulouse III-Paul Sabatier
118 route de Narbonne, F-31062 Toulouse, France

Office: 229, building 3R1 Phone : +33/561556361 Fax: +33/561556065
Mail : trond...@irsamc.ups-tlse.fr
Web : https://dirac.ups-tlse.fr/saue
DIRAC : http://www.diracprogram.org/
ESQC : http://www.esqc.org/
ERC Advanced Grant: HAMP-vQED
Book: Principles and Practices of Molecular Properties: Theory, Modeling, and Simulations

Visscher, L. (Luuk)

unread,
Jan 23, 2026, 3:28:01 AM (4 days ago) Jan 23
to dirac...@googlegroups.com
Dear Sushant,

In addition to what Trond wrote under point 5. If you are familiar with Jupyter notebooks and python you can easily extract data from the checkpoint file using an example notebook available in our repository. This is explained here: https://www.diracprogram.org/doc/release-25/manual/data.html

best regards,

Luuk

Reply all
Reply to author
Forward
0 new messages