1
General Questions and Answers / HeisenbergExchange
« on: Yesterday at 13:49 »
Dear all,
I have been using the HeisenbergExchange analyzer in QuantumATK (Version X-2025.06-SP1) to calculate the magnetic exchange parameters (J_{ij}) for several materials. So far, I have followed the workflow below to extract the (J_{ij}) values:
1. Using QATK I create and run a Python script to perform the LCAO and HeisenbergExchange calculations, storing the results in an `.hdf5` file.
2. I then open `atkpython` and use the following code to extract the exchange parameters:
```
he = nlread(filename, HeisenbergExchange)[0]
d, j, n = he.uniqueCouplingMatrixElementsAndDistances()
```
where `j` is a vector containing the (J_{ij}) values in meV.
This approach has worked well for several systems. However, when applying it to hexagonal Fe₃C, the resulting `j` vector contains very small values for a ferromagnetic material. The largest value obtained is approximately 1.33 meV.
On the other hand, when I open the `.hdf5` results file directly in QuantumATK, the (J_{ij}) values shown in the GUI are significantly larger and appear physically reasonable (see attached image).
I would like to understand the origin of this discrepancy and how to correctly extract the full set of (J_{ij}) values consistent with what is shown in QuantumATK.
Thank you in advance for your help.
Best regards,
Pedro Sousa
I have been using the HeisenbergExchange analyzer in QuantumATK (Version X-2025.06-SP1) to calculate the magnetic exchange parameters (J_{ij}) for several materials. So far, I have followed the workflow below to extract the (J_{ij}) values:
1. Using QATK I create and run a Python script to perform the LCAO and HeisenbergExchange calculations, storing the results in an `.hdf5` file.
2. I then open `atkpython` and use the following code to extract the exchange parameters:
```
he = nlread(filename, HeisenbergExchange)[0]
d, j, n = he.uniqueCouplingMatrixElementsAndDistances()
```
where `j` is a vector containing the (J_{ij}) values in meV.
This approach has worked well for several systems. However, when applying it to hexagonal Fe₃C, the resulting `j` vector contains very small values for a ferromagnetic material. The largest value obtained is approximately 1.33 meV.
On the other hand, when I open the `.hdf5` results file directly in QuantumATK, the (J_{ij}) values shown in the GUI are significantly larger and appear physically reasonable (see attached image).
I would like to understand the origin of this discrepancy and how to correctly extract the full set of (J_{ij}) values consistent with what is shown in QuantumATK.
Thank you in advance for your help.
Best regards,
Pedro Sousa
