Exchanges
Using the TBHamiltonian
and calc_exchanges
, it is possible to calculate the magnetic exchange parameters $J_{ij}$ between atoms $i$ and $j$ for the isotropic Heisenberg model:\
$E = \sum_{i,j} J_{ij} \overrightarrow{S}_i \cdot \overrightarrow{S}_j$
This involves calculating the Green's functions $G$ and on-site magnetic field matrices $\Delta$, which then determine $J$ as J_{ij} = \frac{1}{2\pi} \int{-\infty}^{Ef} d\varepsilon \Deltai G{ij}^{\downarrow}(\varepsilon) \Deltaj G{ji}^{\uparrow}(\varepsilon). See Weak ferromagnetism in antiferromagnets: Fe2O3 and La2CuO4.
DFWannier.Exchange2ndOrder
— TypeExchange2ndOrder{T <: AbstractFloat}
This holds the exhanges between different orbitals and calculated sites. Projections and atom datablocks are to be found in the corresponding wannier input file. It turns out the ordering is first projections, then atom order in the atoms datablock.
DFWannier.Exchange4thOrder
— TypeExchange4thOrder{T <: AbstractFloat}
This holds the exhanges between different orbitals and calculated sites. Projections and atom datablocks are to be found in the corresponding wannier input file. It turns out the ordering is first projections, then atom order in the atoms datablock.
DFWannier.calc_exchanges
— Functioncalc_exchanges(hamiltonian::TBHamiltonian, atoms::Vector{<:Atom}, fermi, exchange_type; kwargs...)
Calculates the magnetic exchange parameters between the atoms
. exchange_type
can be Exchange2ndOrder
or Exchange4thOrder
. The kwargs
control various numerical parameters for the calculation:
nk = (10,10,10)
: the amount of k-points to be used for the uniform interpolation grid.R = (0,0,0)
: the unit cell index to which the exchange parameters are calculated.ωh = -30.0
: the lower bound of the energy integrationωv = 0.15
: the height of the contour in complex space to integrate the Green's functionsn_ωh = 3000
: number of integration points along the horizontal contour directionn_ωv = 500
: number of integration points along the vertical contour directionsite_diagonal = false
: iftrue
the hamiltonians andΔ
will diagonalized on-site and the
returned exchange matrices hold the exchanges between well-defined orbitals. If this is not done, the exchange matrices entries don't mean anything on themselves and a trace should be performed to find the exchange between the spins on sites i
and j
.