Magneto-Optical Kerr Effect (MOKE)

by Dmitrii Nabok & Santiago Rigamonti for exciting neon

(Jupyter notebook by Tejus Rohatgi, Mara Voiculescu & Martin Kuban)


Purpose: In this tutorial you will learn how to set up and execute exciting calculations of the magneto-optical Kerr effect (MOKE). As an example, we calculate the MOKE spectrum for ferromagnetic fcc-Ni.



0. Before Starting

Read the following paragraphs before starting with the rest of this tutorial!

Before running any Jupyter tutorials, please refer to the 00_before_starting.md document on how to correctly set up the environment. This only needs to be done once. After which, the venv can be (re)activated from exciting's root directory:

source tools/excitingjupyter/venv/excitingvenv/bin/activate

Important Note: All input parameters are in atomic units!


1. Previous Knowledge

The evaluation of the MOKE spectrum involves a spin polarized ground state calculation followed by a TDDFT calculation. Therefore, before starting, it is recommended to be familiar with the following related tutorials:


2. Theoretical Background

When linearly polarized light is reflected on the surface of a ferromagnetic material, the reflected beam will be, in general, elliptically polarized with its polarization plane rotated with respect to the incident beam. The magnitude of both the polarization rotation $ \theta_K $ and the ellipticity $ \gamma_K $ are given by the complex Kerr angle:$\phi_K(\omega) = \theta_K (\omega) + i\gamma_K(\omega)$ which can be obtained from the dielectric tensor $\epsilon_{\alpha \beta}$. In particular, for the so-called polar configuration present when both incident light and the magnetic moment of the material are perpendicular to the surface, the Kerr angle is given by:

\begin{equation} \tag{1} \phi_K(\omega) = -\frac{\epsilon_{xy}}{(1 - \epsilon_{xx}) \sqrt{\epsilon_{xx}}} \end{equation}

A proper description of the MOKE requires knowledge of the current-current response function. However, in the TDDFT framework the longitudinal contraction of the dielectric tensor is obtained from the density-density response function, which lacks a part of the transverse response contained in the current-current response. This term, which is non-zero only when time-reversal symmetry is broken, is called the anomalous Hall conductivity (AHC) and constitutes an essential ingredient for describing magneto-orbit effects. Therefore, in the TDDFT calculation this term must be added to obtain the correct MOKE spectrum. In order to do that, we must set the attribute ahc to "true" in the tddft element, as shown in the example input file of this example (see below).


3. The MOKE spectrum of Nickel

As a first step, you may create a running directory for the notebook.

In [27]:
%%bash 
mkdir -p moke

In order to generate the MOKE spectrum for nickel, we will use the following input file (input.xml) to run exciting:

<input>

   <title>FM fcc Ni</title>

   <structure speciespath="$EXCITINGROOT/species">
      <crystal scale="6.652">
         <basevect> 0.5  0.5  0.0 </basevect>
         <basevect> 0.5  0.0  0.5 </basevect>
         <basevect> 0.0  0.5  0.5 </basevect>
      </crystal>
      <species speciesfile="Ni.xml" rmt="2.3">
         <atom coord="0.0 0.0 0.0"/>
      </species>
   </structure>

   <groundstate 
      xctype="LDA_PW"
      rgkmax="7.0" 
      epsengy="1.0d-4">

      <spin 
         reducebf="0.5" 
         spinorb="true"/>

   </groundstate>

   <xs 
      xstype="TDDFT"
      ngridk="4 4 4"
      vkloff="0.097 0.273 0.493"
      dfoffdiag="true"
      dogroundstate="fromscratch"
      maxscl="200"
      bfieldc="0.0 0.0 -2.0"
      broad="0.02"
      tevout="true">

      <tddft
          fxctype="RPA"
          drude="0.18 0.001"
          ahc="true"/>

      <qpointset>
         <qpoint> 0.0 0.0 0.0 </qpoint>
      </qpointset>

      <energywindow 
         intv="0.00 0.32" points="150"/>

   </xs> 

</input>

Make sure to set $EXCITINGROOT to the correct exciting root directory in the speciespath attribute using the command

In [38]:
%%bash
cd moke
python3 -m excitingscripts.setup.excitingroot
cd ../

Please be aware that for time-saving reasons, here we have chosen computational parameters which do not correspond to those obtained from convergence tests. However, with them we are able to reproduce the main spectral features for the system under consideration.

Before running exciting, let's examine the input file displayed above. First, we consider the groundstate element. Inside it we find the spin element as explained in Spin-polarized calculations . Most importantly, we must set the spinorb attribute to "true", because the spin-orbit coupling is essential to obtain the Kerr rotation. As you can notice, we skip the ground-state calculation. The reason for this is that the self-consistency loop will be triggered (from scratch) by the xs element, where a fine k-grid is defined (see below). Nevertheless, we need to set thecode>groundstate element to define several parameters, such as the type of exchange-correlation functional or the spin element and its attributes. Notice that the convergence threshold for the total energy, epsengy, is set to "1.0d-4", which is a larger value than the default one.

Next, we consider the xs element. Most of the attributes and convergence issues for that element are discussed in Excited states from TDDFT. Therefore, we refer the reader to it in case of doubts. However, we have in this case a few additional parameters: We set the attribute dogroundstate = "fromscratch", meaning that we will trigger the ground-state calculation from the xs element, therefore, there is no need in this case to have a previous groundstate run. We set also maxscl to ,"200" and bfieldc to a finite value in the z-direction. Both attributes have exactly the same meaning as their homonyms in the groundstate element. Inside the tddft element, we must set ahc to "true" in order to include the anomalus Hall conductivity term to the TDDFT response functions, as explained in the theoretical section.

In order to run exciting create the input.xml from the example above and run the scripts

In [ ]:
%%bash 
cd moke
mkdir -p k444
cd k444
cp ../input.xml ./
python3 -m excitingscripts.execute.single -f input.xml
cd ../../

After the completion of the run, all results will be written inside the directory k444. In particular for the MOKE, the relevant file is called MOKE_label.OUT. In order to visualize the MOKE spectrum, move to the directory k444 and run the following script:

In [47]:
%%bash
cd moke/k444

#extracting the thetha_k and gamma_k values
awk '{print $1, $2}' MOKE_*.OUT > theta_K
awk '{print $1, $3}' MOKE_*.OUT > gamma_K

python3 -m excitingscripts.plot.files -f theta_K gamma_K -cy 2  -ll '$\theta_K$' '$\gamma_K$'  -lx 'Energy [eV]'  -ly 'Kerr angle [deg]' -x 0 9 -y -0.4 0.3 -mtx 10
cd ../../

The resulting plot is saved in the file PLOT.png, which should look like in the following image:


4. Convergence issues

In the calculation of optical properties, two of the most important convergence parameters are the size of the k-point grid and the number of empty states included in the calculation of the response function. They are controlled, respectively, by the attributes ngridk and nempty of the xs element. It is important to note that to obtain convergent optical spectra one has to use rather large k-point sets. In addition, the attribute nempty plays now not only the role of a convergence parameter for spin-polarized calculations. In this case, one has to be sure that the excited (empty) states are covering the energy range where the MOKE spectrum is searched. Additionally, as we are dealing with a metal system, the smearing of the k-points (controlled by the attributes stype and swidth of the groundstate element) can play an important role to reach convergence.


$\Rightarrow$ Show the spectra obtained for "ngridk" = "10 10 10"

Excercise
  • In this tutorial we are using the default value for the ngridk attribute. Check if this selection is enough to obtain a reasonable spectrum in the energy range between 0 and 8 eV (Hint: Inspect the file EIGVAL_QMT001.OUT).
  • Perform the complete convergence test to get the value of the magnetic moment of FM fcc-Ni and compare it with the experimental value of ~0.6 μB.
  • Use the default value for the attribute epsengy and repeat the calculations. Is there any difference in the calculated spectra?
  • Converge the MOKE spectrum with respect to ngridk size.
  • As a matter of fact, the MOKE is mainly due to presence of the spin-orbit coupling. One can readily check it by recalculating the spectrum by setting spinorb = "false".


Literature

  • J. Kunes, Physica Scripta T109, 116 (2004)
  • D. Sangalli, A. Marini, and A. Debernardi, Phys. Rev. B 86, 125139 (2012)