Author Topic: HeisenbergExchange  (Read 130 times)

0 Members and 1 Guest are viewing this topic.

Offline PedroSousa

  • New QuantumATK user
  • *
  • Posts: 1
  • Country: pt
  • Reputation: 0
    • View Profile
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