18: Iron Berry curvature, anomalous Hall conductivity and optical conductivity¶
Note: This tutorial requires a recent version of the pw2wannier90
interface.
-
Outline: Calculate the Berry curvature, anomalous Hall conductivity, and (magneto)optical conductivity of ferromagnetic bcc Fe with spin-orbit coupling. In preparation for this tutorial it may be useful to read Ref. 1 and Ch. 11 of the User Guide.
-
Directory:
tutorials/tutorial18/
Files can be downloaded from here -
Input files
-
Fe.scf
Thepwscf
input file for ground state calculation -
Fe.nscf
Thepwscf
input file to obtain Bloch states on a uniform grid -
Fe.pw2wan
The input file forpw2wannier90
-
Fe.win
Thewannier90
andpostw90
input file
-
The sequence of steps below is the same of Tutorial 17.
If you have already run that example, you can reuse the output files from steps
1 5, and only step 6 must be carried out again using the new input file
Fe.win
.
-
Run
pwscf
to obtain the ground state of iron -
Run
pwscf
to obtain the Bloch states on a uniform k-point grid -
Run
wannier90
to generate a list of the required overlaps (written into theFe.nnkp
file) -
Run
pw2wannier90
to compute the overlaps between Bloch states and the projections for the starting guess (written in theSi.mmn
andSi.amn
files) -
Run
wannier90
to compute the MLWFs -
Run
postw90
- serial execution
- example of parallel execution with 8 MPI processes
Berry curvature plots¶
The Berry curvature \(\Omega_{\alpha\beta}({\bf k})\) of the occupied
states is defined in this
equation
of the User Guide. The following lines
in Fe.win
are used to calculate the energy bands and the Berry
curvature (in bohr\(^2\)) along high-symmetry lines in \(k\)-space.
fermi_energy = [insert your value here]
berry_curv_unit = bohr2
kpath = true
kpath_task = bands+curv
kpath_bands_colour = spin
kpath_num_points = 1000
After executing postw90
, plot the Berry curvature component
\(\Omega_z({\bf k})=\Omega_{xy}({\bf k})\) along the magnetization
direction using the script generated at runtime,
and compare with Fig. 2 of Ref. 1.
In Tutorial 17 we plotted the Fermi lines on the (010) plane
\(k_y=0\). To combine them with a heatmap plot of (minus) the Berry curvature set
kpath = false
, uncomment the following lines in Fe.win
, re-run
postw90
, and issue
Compare with Fig. 3 in Ref. 1. Note how the Berry curvature "hot-spots" tend to occur near spin-orbit-induced avoided crossings (the Fermi lines with and without spin-orbit were generated in Tutorial 17).
Anomalous Hall conductivity¶
The intrinsic anomalous Hall conductivity (AHC) is proportional to the
BZ integral of the Berry curvature. In bcc Fe with the magnetization
along \(\hat{\bf z}\), the only nonzero components are
\(\sigma_{xy}=-\sigma_{yx}\). To evaluate the AHC using a \(25\times
25\times 25\) \(k\)-point mesh, set kslice = false
, uncomment the
following lines in Fe.win
,
and re-run postw90
. The AHC is written in the output file Fe.wpout
in vector form. For bcc Fe with the magnetization along [001], only
the \(z\)-component \(\sigma_{xy}\) is nonzero.
As a result of the strong and rapid variations of the Berry curvature across the BZ, the AHC converges rather slowly with \(k\)-point sampling, and a \(25\times 25\times 25\) does not yield a well-converged value.
- Increase the BZ mesh density by changing berry_kmesh
.
- To accelerate the convergence, adaptively refine the mesh around
spikes in the Berry curvature, by adding to Fe.win
the lines
This adds a \(5\times 5\times 5\) fine mesh around those points where
\(\vert{\bm \Omega}({\bf k})\vert\) exceeds 100 bohr\(^2\). The percentage
of points triggering adaptive refinement is reported in Fe.wpout
.
Compare the converged AHC value with those obtained in Refs. 2 and 1.
The Wannier-interpolation formula for the Berry curvature comprises
three terms, denoted \(D\)-\(D\), \(D\)-\(\overline{A}\), and
\(\overline{\Omega}\) in Ref. 2, and \(J2\), \(J1\), and \(J0\) in
Ref. 3. To report in Fe.wpout
the decomposition of the
total AHC into these three terms, set iprint
(verbosity level) to a
value larger than one in Fe.win
.
Optical conductivity¶
The optical conductivity tensor of bcc Fe with magnetization along \(\hat{\bf z}\) has the form
where "S" and "A" stand for the symmetric and antisymmetric parts and \(\sigma_{xx}=\sigma_{yy}\not=\sigma_{zz}\). The dc AHC calculated earlier corresponds to \(\sigma_{xy}\) in the limit \(\omega\rightarrow 0\). At finite frequency \(\sigma_{xy}=-\sigma_{yx}\) acquires an imaginary part which describes magnetic circular dichoism (MCD).
To compute the complex optical conductivity for \(\hbar\omega\) up to 7 eV, replace
with
add the line
and re-run postw90
. Reasonably converged spectra can be obtained with
a \(125\times 125\times 125\) \(k\)-point mesh. Let us first plot the ac AHC
in S/cm, as in the lower panel of Fig. 5 in Ref. 1,
Comapare the \(\omega\rightarrow 0\) limit with the result obtained earlier by integrating the Berry curvature.
Note
The calculation of the AHC using berry_task = kubo
involves a
truncation of the sum over empty states in the Kubo-Greenwood
formula: see description of the keyword kubo_eigval_max
in the
User Guide. As discussed around the formula for anomalous Hall
conductivity of the
User Guide, no truncation is done with berry_task = ahc
.
Next we plot the MCD spectrum. Following Ref. 1, we plot \({\rm Im}[\omega\sigma_{xy}(\hbar\omega)]\), in units of \(10^{29}\) sec\(^{-2}\). The needed conversion factor is \(9\times 10^{-18}\times e/\hbar\simeq 0.0137\) (\(e\) and \(\hbar\) in SI units),
Further ideas¶
- Recompute the AHC and optical spectra of bcc Fe using projected \(s\), \(p\), and \(d\)-type Wannier functions instead of the hybridrized MLWFs (see Tutorial 8), and compare the results.
- A crude way to model the influence of heterovalent alloying on the
AHC is to assume that its only effect is to donate or deplete
electrons, i.e., to shift the Fermi level of the pure
crystal 4. Recalculate the AHC of bcc Fe for a range of Fermi
energies within
\(\pm 0.5\) eV of the true Fermi level. This calculation can be
streamlined by replacing in Fe.win
with
fermi_energy_min = [insert here your value minus 0.5]
fermi_energy_max = [insert here your value plus 0.5]
Use a sufficiently dense BZ mesh with adaptive refinement. To plot \(\sigma_{xy}\) versus \(\varepsilon_F\), issue
-
Y. Yao, L. Kleinman, A. H. MacDonald, J. Sinova, T. Jungwirth, D.-S. Wang, E. Wang, and Q. Niu. Phys. Rev. Lett., 92:037204, 2004. ↩↩↩↩↩↩
-
X. Wang, J. R. Yates, I. Souza, and D. Vanderbilt. Ab initio calculation of the anomalous hall conductivity by wannier interpolation. Phys. Rev. B, 74:195118, 2006. ↩↩
-
M. G. Lopez, D. Vanderbilt, T. Thonhauser, and I. Souza. Phys. Rev. B, 85:014435, 2012. ↩
-
Y. Yao, Y. Liang, D. Xiao, Q. Niu, S.-Q. Shen, X. Dai, and Z. Fang. Phys. Rev. B, 75:020401, 2007. ↩