Subject: Clarification on Interaction Range Differences in TB2J 0.9.12.7 vs 0.9.12.20
Dear TB2J Development Team,
I hope you are doing well.
I am currently using TB2J for calculating magnetic exchange interactions in my system, and I recently noticed a difference in the interaction range between two versions of the code: TB2J 0.9.12.7 (which I previously used) and TB2J 0.9.12.20 (the newer version I am using now).
In the newer version, the reported interaction range appears to be different compared to the older version for the same system and similar input setup. Because of this, I am confused about:
Why the interaction range differs between TB2J 0.9.12.7 and TB2J 0.9.12.20.
Whether there were any changes in default parameters, cutoff handling, distance calculations, or symmetry treatment between these versions.
Which version should be considered more accurate or reliable for exchange interaction analysis.
Whether the newer version introduces any corrections or methodological improvements that affect the interaction range.
Since my magnetic analysis (e.g., determining dominant exchange paths and magnetic ordering tendencies) depends strongly on the interaction range and J values, I want to ensure that I am using the correct and reliable approach.
Could you please clarify:
What causes this difference in range between the two versions?
Whether the newer version (0.9.12.20) should be preferred for publication-quality results?
If there are any recommended settings to ensure consistent and physically meaningful exchange parameters?
I would be very grateful if you could confirm this at your earliest convenience, as I am currently quite confused about which results to rely on for my analysis.
If needed, I can also provide input files and outputs from both versions for comparison.
Thank you very much for your time and support.
Best regards,
Satish Kumar
I would like to bring to your attention an issue I noticed while using TB2J. I have already attached a file generated with TB2J version 0.9.12.25, which produces results consistent with version 0.9.12.20. However, when I used the older TB2J version 0.9.12.7, the results differed significantly.
More importantly, I observed that TB2J does not distinguish between atoms of the same species that have different DFT+U values. For example, if I label two nickel atoms as Ni1 and Ni2 and assign U = 2.0 eV to Ni1 and U = 3.0 eV to Ni2, TB2J does not consider this distinction when I run the command:
siesta2J.py --fdf_fname input.fdf Ni1 Ni2 Te Te P --kmesh 20 20 1
As a result, TB2J does not recognize Ni1 and Ni2 as distinct atoms—it only considers twho has name like Te , Te and P Consequently, it totally ignore the Ni1 and Ni2 and produce a result without error, any differences in DFT+U values applied to Ni1 and Ni2 are ignored. This behavior can lead to inconsistencies and affect the reliability of results for systems where DFT+U is applied differently to atoms of the same species.
Could you please clarify why this behavior is not currently addressed in TB2J and whether there are any recommended workarounds for such cases?
Regarding the details of my work, I cannot share the full project publicly. However, I would be happy to arrange a meeting to demonstrate how this issue appears in my calculations. I have already sent the results for TB2J versions 0.9.12.25, 0.9.12.20, and 0.9.12.7 in a previous email for your reference. Please check them at your convenience.
I would greatly appreciate your guidance on this matter.
Thank you very much for your time and support.
Best regards,
Satish Kumar