# Calculating isotropic Heisenberg exchange parameters via the transverse susceptibility (full-potential LMTO)

- Ctrl file
- calculation using TB-LMTO-GF code
*lmgf* - calculation using
*lmgw.sh* - evaluation from using
*lmf*(“chimedit” mode)

This tutorial demonstrates the evaluation of Heisenberg exchange interactions using the (KKR-like) TB-LMTO-GF code *lmgf* (using the ASA) and via the bare transverse susceptibility, calculated using a sum over states based on the full-potential LMTO method.

The convention used for the tabulation of the Heisenberg integrals is: , i.e. positive means ferromagnetic, are unit spins; there is no “factor of 1/2.”

The model material is NiO treated with the LDA (scalar-relativistic). (This tutorial relates to the “gw-speedup” branch–and should therefore be considered experimental–as of 5 Aug 2022 and the procedure and format of the chipm.h5 file may change. Contact the developers for more information in case of interest.)

# Ctrl file

The character string “mode” is used switch between input suitable for ASA and FP; it is specific to this particular ctrl file only. The groups “gf,” “options,” and “bz_emesh” are only used by the ASA codes.

```
vers asa=7 fp=7
ham
xcfun=1 nspin=2
autobas[mto=4 lmto=5] gmax=8.0
% const de=0.005 de2=0.04
gw delre={de} {de2}
options asa[ccor=0 twoc=1]
% const gfmode=1
gf
mode={gfmode} gfopts=p2;padtol=1e-4
% const nk=10 nz=30 ebot=-1.4 etop=0.1 ecc=0.5
bz
nkabc={nk}
emesh={nz} 10 {ebot} {etop} {ecc} 0.0
iter convc=1e-6 nit=20 mix[b5,b=0.3]
% char0 mode
struc
% ifdef mode=='asa'
nbas=8
% else
nbas=4
% endif
alat=7.88 plat=1/2 1/2 1 1/2 1 1/2 1 1/2 1/2
spec
% ifdef mode=='asa'
atom=ni z=28 r/w=1 lmx=3 mmom=0 0 1
atom=nix z=28 r/w=1 lmx=3 mmom=0 0 -1
atom=o z=8 r/w=1 lmx=3
atom=e z=0 r/w=1 lmx=2
atom=e1 z=0 r/w=1 lmx=2
% else
atom=ni z=28 r=2.19 lmx=3 lmxa=5 mmom=0 0 1 pz=0 0 4.3
atom=nix z=28 r=2.19 lmx=3 lmxa=5 mmom=0 0 -1 pz=0 0 4.3
atom=o z=8 r=1.75 lmx=3 lmxa=5
% endif
site
atom=ni xpos=0 0 0
atom=nix xpos=1/2 1/2 1/2
atom=o xpos=1/4 1/4 1/4
atom=o xpos=3/4 3/4 3/4
atom=e xpos=-1/8 -1/8 -1/8
atom=e xpos=1/8 1/8 1/8
atom=e1 xpos=-3/8 -3/8 -3/8
atom=e1 xpos=3/8 3/8 3/8
symgrp i*r3d r2(1,0,-1) afm:e::(1/2,1/2,1/2)
```

It is best to perform the ASA and FP calculations in different directories.

# calculation using TB-LMTO-GF code *lmgf*

```
lmstr -cmode=asa ctrl.nio |tee llmstr
lm -cmode=asa ctrl.nio |tee llm
lmgf -cmode=asa -vgfmode=1 ctrl.nio |tee llmgf1
lmgf -cmode=asa -vgfmode=10 ctrl.nio |tee llmgf10
lmgf -cmode=asa -vgfmode=11 --wrsj~sscl~tol=0 --sites:pair:1,2 ctrl.nio |tee llmgf11
```

- 2 empty spheres added to basis and all sites, including empty spheres, use common average Wigner-Seitz radius.
- The order-2 LMTO Hamiltonian is used (aka 2-center H.) and combined corrections are switched off (“options_asa[ccor=0 twoc=1]”) such that
*lm*is consistent with*lmgf*. This means that*lmgf*can use the converged density calculated by*lm*without further refinement. The order-2 formulation in*lmgf*is more stable than the slightly more accurate order-3 method (“gf_gfopts=p3” instead of “gf_gfopts=p2”). - “gfmode=1” performs the self-consistent TB-LMTO-GF calculation.
- “gfmode=10” performs the calculation using the “Liechtenstein Formula.”
- “gfmode=11” prints the interactions: the options cause the writing of a easily readable file “rsj.nio,” (interactions smaller than tol are not printed) and specify that only interactions between sites 1 and 2 (the Ni sites) are printed.
- Because this case is antiferromagnetic, the calculated should be scaled by the signs of the moments (option “sscl”).
- Calculated shown in red circles in the figure below.

The gap is 0.516 eV (as reported by *lm*) and Ni moments are of size 1.237 . The sum of , printed by *lmgf* mode 11, corresponds to a mean-field critical temperature K, negative because of antiferromagnetic ordering.

# calculation using *lmgw.sh*

```
lmfa --usebasp ctrl.nio |tee lmfa
lmgw.sh --stop=setup ctrl.nio |tee lsetup
echo MagAtom 1 2 >> GWinput
hbasfp0 --job=8 ctrl.nio |tee lbas
hx0fp0-pm ctrl.nio |tee lx0
```

- Converging the calculation with
*lmf*yields eV and Ni moments of 1.222 . - The bare transverse susceptibility is evaluated for all in IBZ, defined by token “gw_nkabc,” or, if this is absent (as it is here) then “bz_nkabc.”
- The frequency mesh is defined by “gw_delre;” as for dielectric function calculations, generally a finer mesh is required than for QS
*GW*calculations. - The MagAtom entry in the “GWinput” file specifies which sites are to be considered magnetic.
*hx0fp0-pm*can be invoked in parallel and uses the same (potentially GPU) backend as does*lmsig*.- is projected onto the magnetization on each (specified) site and it is this that is written to disk in file “chipm.h5.” This corresponds to in the main reference: Kotani and MvS J. Phys: Cond. Mat. 2008 .
- Frequencies in Rydberg are recorded in dataset “/realw” in chipm.h5. This file also includes negative frequencies, but there is little information there.
- Unlike the previous “Chipm.mat” files, both spin contributions (npm=1,2) are summed together in chipm.h5.
- The normalization of the projection is slightly modified compared with the TK-MvS calculations.

# evaluation from using *lmf* (“chimedit” mode)

The bare Heisenberg exchange interactions can be evaluated from the bare transverse susceptibility. Only the limit of the susceptibility is used. (Indeed, without knowing the enhanced susceptibility, the spin wave frequencies as a function of are not known.)

*lmf*’s chimedit mode has two simple functions that evaluate and map IBZ-FBZ before Fourier-transforming to real space. These are discussed in the context of equations 15 and 16 in TK-MvS .

The resulting are very close numerically to the ASA-Liechtenstein Formula results: the agreement is better with the (approximate) formulation than with , but the difference is small. Because of the inclusion of both contributions, and the more precise normalization of , the results are different to those presented in TK-MvS (where the large AF interaction has magnitude 1.04 mRyd; note that in that paper the “with 1/2” spin model convention was used).

*lmgf* can be used to printout the same tabulation (mode 11) as before, but in order to be consistent with *lmf* (which shortens by default) we must explicitly instruct *lmgf* to shorten positions. The chimedit modes always do the scaling by spin orientation (unlike *lmgf*), so option “sscl” is not needed here.

*lmgf* and *lmf* (in the “–chimedit~x0invj” or “–chimedit~x0lfj” modes) only understands “bz_nkabc” and not “gw_nkabc,” so these may need to be made consistent “by hand” for these steps.

When only doing the full-potential calculation, the ASA tags (“vers_asa,” “gf_mode=11,” “options_asa[]” and “bz_emesh”) must be added even when *lmgf* is just used to print out .

### mode 1: inverse of transverse susceptibility

- Mode 1:
- Option “–chimedit~x0invj”
- K
- Shown in blue square symbols in the figure below.

### mode 2: Liechtenstein-formula-like expression

- Mode 2:
- , from the on-site term, is evaluated in real-space
- In this mode, the on-site real-space is zero (subtracted off).
- Option “–chimedit~x0lfj”
- K
- Shown in blue circle symbols in the figure below.

```
lmstr --shorten -cmode=asa ctrl.nio |tee llmstr
lmf --chimedit~x0invj~q ctrl.nio |tee lchimedit-x0inv
lmgf --shorten -cmode=asa -vgfmode=11 --wrsj~tol=0 --sites:pair:1,2 ctrl.nio |tee llmgf11-x0inv
mv rsj.nio rsj-x0inv.nio
mv jr.nio jr-x0inv.nio
lmf --chimedit~x0lfj~q ctrl.nio |tee lchimedit-lf
lmgf --shorten -cmode=asa -vgfmode=11 --wrsj~tol=0 --sites:pair:1,2 ctrl.nio |tee llmgf11-lf
mv rsj.nio rsj-lf.nio
mv jr.nio jr-lf.nio
```