Skip to content

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

mixing

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

Merge request reports

Loading