Magneto-optics in Sternheimer
The aim of this branch is to fix and update implementation of magneto-optics for solids within Sternheimer approach.
Corrections:
- A small fix to writing restart of linear-response wavefunctions in the case of parallelization over k-points (previously only one node was writing).
- A small fix to symmetrization of magneto-optical response: this should be done using the reduced rotation matrix, otherwise the output is just zero.
- Time-reversal symmetry should be taken into account explicitly in calculations of the magneto-optical response of solids when the reduced k-point grid is used. This requires calculation of perturbations with negative imaginary part of the frequency and the corresponding wavefunctions are introduced using ifactor=2.
- The output over k-points is added for the dielectric constant of solids with and without magnetic field. This is useful to analyze the contribution of separate k-points into the total spectra. A new input variable is added to know whether to give this output (EMKPointOutput).
- Only relevant (anisymmetrized non-diagonal) components of polarizability are now given in the output for magneto-optics.
Added input variable:
- EMKPointOutput: a logical variable, default is "false". "True" means that contributions of different k-points will given in the output for dielectric constant epsilon and dielectric constant epsilon_mo in the presence of the magnetic field (only applicable to the case of more than 1 k-point).
Added tests:
- A testcase for magneto-optics of finite systems by the example of H2O molecule (1 additional calculation run within the existing test).
- Testcases for magneto-optics and magnetic susceptibility of periodic systems with one k-point by the example of H2O molecule (2 additional calculation runs for the existing test).
- Testcases for magneto-optics and magnetic susceptibility of periodic systems by the example of silicon (2 additional calculation runs for the existing test). The parallelization over k-points has been also "turned on" the kdotp and emresp input files to ensure proper writing and reading of restart files in this case.
Additional note:
- The last commit failed because of lda-u/07-noncollinear.test, which should not be related to changes in this branch.