Change the mixing logic for polarized and spinor calculations
Description
Change the mixing logic for polarized and spinor calculations.
The code used to mix the spin density matrix. Following Johnson, this is now change to allow for mixing instead the charge density and the magnetization. Moreover, this latter one can now be mixed with a different weight, taken as 1.5 based on the paper of Johnson.
New variables are introduce to test this.
Tests indicate an improved convergence for linear mixing and for Broyden using this new stategy.
Test systems
System | Theory level | Pseudo | Spin | Spacing | K-point grid |
---|---|---|---|---|---|
bulk iron | LDA | Pseudodojo | spinors | 0.3 a.u. | 2x2x2 |
Xe_3^+ | LDA+SOC | HGH | spinors | 0.42 A | isolated |
N-doped graphere nanoflake | LDA | standard | polarized | 0.2 A | isolated |
Cr_3 | LDA+SOC | HGH | spinors | 0.2 a.u. | isolated |
NiO | GGA+U | HSCV | polarized | 0.35a.u. | 4x4x4 |
TiO_2 | GGA | from APE | polarized | 0.3a.u. | 3x3x3 |
polyFePc | GGA | HSCV | polarized | 0.45a.u. | 1x1 |
Li_2Ir_3O_4 | LDA+U | HGH | spinors | 0.35 a.u. | 2x2x2 |
In all cases, this was tested with
Eigensolver = chebyshev_filter
ConvRelDens = 1e-9
OptimizeChebyshevFilterDegree = no
ExtraStates = 20
News snippet
Change the mixing logic for polarized and spinor calculations.
Checklist
-
I have checked that my code follows the Octopus coding standards -
I have added tests for all the new features added in this request.
Edited by Nicolas Tancogne-Dejean