Main menu

HomeNewsPeopleDownloadYambo-pyRun the codeInput fileTutorials
Overview GW Lifetimes SiH4 Fantastic dimensions Hydrogen chain Electron Phonon KERR effect Surface spectroscopy GaSb Parallel Developing Yambo
DocumentationPublicationsEventsContactsTest-Suite Forum

The Wikipedia Page of Yambo Yambo@Wiki

Fortran cafe The Fortran Cafe'

Bethe-Salpeter wine The Bethe-Salpeter-Equation (BSE) wine

A street entitled to Yambo in Rome
A bar entitled to Yambo in Rome
A bar entitled to Yambo in Rome Yambo road, bar & restaurant

Magneto-Optical Kerr effect in transition metals
by D. Sangalli

Magneto-optical Kerr effect

By default yambo computes the absorption of linearly polarized light. The yambo_kerr executable, instead, is also able to compute the absorption of circularly polarized light, through the computation of the off-diagonal components of the dielectric tensor. In this tutorial we will learn how to take advantage of it for the description of the magneto-optical Kerr effect (MOKE) in the polar geometry [1].

The outline of the tutorial is the following:
  1. A quick overview to the Databases and the input files porvided.
  2. Theoretical background.
  3. The absorption properties of bulk iron.
  4. The full dielectric tensor and the magneto optical Kerr effect
  5. A generalized version of the length gauge expression.
  6. Final considerations.

Databases and input files

For this tutorials we provide two yambo databases (DBs) for bulk iron. The first DB is the results of a Spin-DFT calculation while the second of a spinorial DFT calculation with the SO effect included both in the Hamiltonian and in the pseudo-potential. Both DBs are generated with the HGH pseudo-potentials and a patched version of abinit.

However you may want to be able to generate the DBs by your-self, also because the DB provided have been generated with small convergence parameters. To this end you can do the following steps:

If you prefer, you can also try to generate the same DBs with the PWscf package (however you need to find a proper pseudo-potential). In this case you will notice that the total number of symmetries found by PWscf, for the DB with SO, is higher than the number found by abinit. In this tutorial we will overcome this limit of the abinit DB thanks to the ypp tool.

We also provide the input files for yambo_kerr (and ypp). If you prefer to generate the input files by yourself you will just need to use the command yambo_kerr -i -F Input/01_init
for the initialization and yambo_kerr -o b -V resp -F Input/"0n_filename".
Among the varaibles activated with the -V resp option we will use: Gauge= "length" # [BSE] Gauge (length|velocity). In metals length misses An-Hall DrudeWBS= (4.80, 5.65) eV # [BSE] Drude plasmon ;
while for the computation of the kerr parameters yambo_kerr will just need two special input varaibles EvalKerr # [BSE] Compute the Kerr effect AnHall # [BSE] Compute the anomalous Hall effect and if length add it to eps ,
which are activated by default using the yambo_kerr executable. Other variables not used in the present tutorial have been erased to simplify the input files. Finally the 00_FIX_SYMM file was generated with the command: ypp -n -F Input/00_FIX_SYMM.

Few equations

The MOKE consist in a different absorpion of the right (+) and left (-) circularly polarized light expirienced in magnetic materials. The dielectric function ε±(ω) can be constructed from the dielectric tensor:
Absorption circular polarized light .
Here "z" is the direction of the magnetization and of the propagation of the light, while the polarization lays in the "xy"-plane. The absorption is often expressed in terms of the optical conductivity which is related to the dielectric tensor trough the equation
Relation between epsilon and sigma .

This effect is due to the coupling of the magnetization with the spatial part of the wave-function trought the SO interaction. The result is that linearly polarized light is rotated and deformed upon reflection from a magnetic material. The rotation and deformation constitute the Kerr parameters, which are frequency dependet and can be expressed, in the small angles limit with a simple equation
Kerr parameters in the small angles limit .

Optical properties of bulk iron

Bulk iron is a common transition metal which displays a spin-polarized ground state. In this system the magnetic moments of the spin-polarized ions couple to give a ferromagnetic ground state. It is a metal with a simple FCC structure. As a consequence the local-fields effect (i.e. the G≠0 terms of the e-h exchange interaction) is almost negligible in the description of the absorption properties of the system. Moreover the delocalized electrons completly screen the direct e-h interaction and thus the so called independent-particle random-phase-approximation (IP-RPA) is sufficient to describe the absorption properties. Recall that in this not a bare IP approximation, because the macroscopic term of the exchange interaction (i.e. the G=0 term) is taken into account (RPA). On the contrary it is known that for d electrons the commutator of [x,Vnl] give non-negligible corrections to the spectrum. Thus as a first step we will check this effect in the case of HGH pseudo-potential.

First, go in the withoutSO directory cd withoutSO
run the initialization yambo_kerr -F Inputs/01_init
and then compute the absorption spectrum. To this end, have a look to the input file 02_IP-RPA_len , to understand the parameters. In particular check the input variable DrudeWBS. The presence of this variable means that the intra-band contibution to the absorption is described phenomenlogically, with a semi-classical model.
Now run yambo_kerr -F Inputs/02_IP-RPA_len -J 02_IP-RPA_len ;
yambo_kerr will compute the absorption in the length gauge (this is the standard gauge used by yambo) including the term [x,Vnl] by default. To check the importance of this term first hide the ns.kb_pp DB, mv SAVE/ns.kb_pp SAVE/hide_ns.kb_pp ,
and then run the code again yambo_kerr -F Inputs/02_IP-RPA -J 02_IP-RPA_len_noVnl .
[Hint: the most time consuming part of this calulation is the computation of the dipoles. You can avoid yambo_kerr to re-compute each time the dipoles preparing the database in the correct directory. In this case just do, before running yambo_kerr, :
mkdir 02_IP-RPA_len_noVnl | cp 02_IP-RPA_len/ndb.dipoles 02_IP-RPA_len_noVnl].

Notice that at this level we are considering linearly polarize light, polarization in the "x" direction % BLongDir 1.000000 | 0.000000 | 0.000000 | # [BSS] [cc] Electric Field %
and thus we are computing εxx(ω).

To derive the absorption of circularly polarized light we need the off-diagonal component of the dielectric tensor εxy(ω). To this end, we need to compute the current-current response function, that is to move to the velocity gauge. Let's check how it works. Restore the [x,Vnl] DB, mv SAVE/hide_ns.kb_pp SAVE/ns.kb_pp ,
and then run yambo_kerr in the velocity gauge: yambo_kerr -F Inputs/02_IP-RPA_vel -J 02_IP-RPA_vel .
The new input file differ from the last only for the variable Gauge= "length" # [BSE] Gauge (length|velocity) --- Gauge= "velocity" # [BSE] Gauge (length|velocity) thus a different DB for the dipoles wiil be created (ndb.P_and_P2)

Absorption properties of bulk iron (tutorial)
Compare the results of the three runs. The absence of the [x,Vnl] gives a significant change in the intensity of the absorption. The length and the velocity gauge formulation instead, they should be perfectly equivalent. However we see small differences between the two plots. Try to guess why.
[Hint: the two gauges are perfectly equivalent if we use the relation 1 / (ω+iη) = 1/ω - 2πi δ(ω) ]

The full dielectric tensor and the Kerr effect

We are now ready to compute the off-diagonal component of the dielectric tensor. To this end, always in the directory withoutSO, run yambo_kerr -F Inputs/02_KERR_IP-RPA_vel -J 02_KERR_IP-RPA_vel.
The only difference respect to the previous file is the presence of the logical EvalKerr # [BSE] Compute the Kerr effect
This time yambo_kerr will produce both the diagonal and the off-diagonal part of the dielectric tensor. We can plot them, both the real and the imaginary part. If you transform the dielectric tensor in the optical conductivity you should obtain a result similar to the following (green line):
[Hint: use the value h=4.1356675 eV s to produce the plots remembering that the "x" axis of epsilon is in eV: x=ℏω.]

The optical conductivity of bulk iron (tutorial)
The off-diagonal components are almost zero. Indeed due to its cubic geometry, the dielectric tensor (and so the optical conductivity) of bulk iron without SO are diagonal. However you should have noticed that the real part of the off-diagonal component seems to diverge in the ω→0 limit. This is an exemple of the numerical instabilities of the velocity gauge...

Thus we now want to include the SO interaction. To this end we move in the withSO forlder cd withSO
and first initialise the DB, yambo_kerr -F Inputs/01_init .
Now, pay special attention to the symmetry groups. The size of the DB with SO can be reduced thanks to the ypp tool (ypp -n option) which is able to add, to the symmetry group found by abinit, the magnetic symmetries. Thus run ypp -F Inputs/00_FIX_SYMM -O ../withSO_new
and than move to the new folder cd withSO_new ,
copy the inputs files there cp -r ../withSO/Inputs ./ ,
and initialise the new DB, yambo_kerr -F Inputs/01_init .
Can you see the differences with the old DB ?
Ok, we are finally ready to compute the off-diagonal elements of the dielectric tensor and the Kerr parameters. We just need to run yambo_kerr -F Inputs/02_KERR_IP-RPA_vel -J 02_KERR_IP-RPA_vel,
and then plot the results which we can compare with the case without SO. The input file is identical to the previous one but now we are computing the epsilon startin from a DB with SO.

Kerr parameters of bulk iron (tutorial)

From the diagonal elements we see that SO is a very small effect in bulk iron but it is the only responsible for the off-diagonal part and thus for the MOKE.

The full dielectric tensor in the length gauge

The MOKE and more in general the absorption of circular polarized light can be described in the velocity gauge. However the equations for the velocity gauge suffer of numerical instabilities. While these is not a severe problem at the IP-RPA level, the instabilities could be more problematic with the inclusion of local fields or of the electron-hole interaction. Moreover the description of the full dielectric tensor in the velocity gauge requires the computation of the full current-current response function which cannot be obtained within a pure density based approach (indeed we are using yambo_kerr -o b and not yambo_kerr -o c). It is thus tempting to try to compute the MOKE in the more stable length gauge. To this end we use a generalized version of the equation for the lenght gauge, which however is formally not correct. Run yambo_kerr -F Inputs/03_KERR_IP-RPA_len -J 03_KERR_IP-RPA_len,
and compare the results with the felocity gauge. The length expression is well defined for the diagonal part of the dielectric tensor which describes the optical absorption. The off-diagonal term however is not properly described with this approach.

The optical conductivity of bulk iron (tutorial)

However this difference can be traced back as due to a physical effect, the Anomalous Hall effect. Indeed if we add the expression for this term to the expression for the length gauge, thanks to the logical, AnHall # [BSE] Compute the anomalous Hall effect and if length add it to eps
and thus we run yambo_kerr -F Inputs/03_KERR_IP-RPA_len+AnHall -J 03_KERR_IP-RPA_len+AnHall,
we finally obtain the correct result. The Anomalous Hall term is different from zero only in metals (and, if will be ever found, in the so called Chern insulators). Thus in practive the length based approach is virtually exact, at least at the IP-RPA level, for all systems with a gap.

Kerr parameters of bulk iron (tutorial)
The two approaches mostly differ in the region ω→0.

Final considerations

Remember that the spectra obtained in the present tutorial are from DBs with poor convergence parameters. Below you can find the results obtained with full convergence. Data published in... However you can notice that, already with the parameters used in the tutorial the main features of the spectra

The optical conductivity of bulk iron (converged)

and of the Kerr parameters are already present.

Kerr parameters of bulk iron (converged)

All electrons theoretical calculations from Ref.[6] and experimental data from references cited in the article.


  1. The MOKE on wikipedia.
  2. J. E. Sipe, and Ed. Ghahramani, PRB 48, 11705 (1993).
  3. D. Sangalli, A. Marini and A. Debernardi, PRB 86, 125139 (2012).
  4. R. Del Sole, and E. Fiorino, PRB 29, 4631 (1984).
  5. G. Strinati, Nuovo Cimento 11 (12), 1 (1986).
  6. A. Delin, O. Eriksson, B. Johanssonand, S. Auluck, and J. Wills, PRB 60, 14105 (1999).