Mixing self-consistent quantities

Mixing various quantities in self-consistent manners are quite frequent. This module enables a variety of methods based on the Pulay (DIIS) mixing methods and may be used for externally driven SC cycles.

Container classes

Mixing makes use of so called metrics and several steps of quantities stored in history.

The basic classes that are used internally are

History

A history class for retaining a set of history elements

BaseMixer

Base class mixer

BaseWeightMixer

Base class mixer

BaseHistoryWeightMixer

Base class mixer with history

StepMixer

Step between different mixers in a user-defined fashion

Mixing algorithms

LinearMixer

Linear mixing

AndersonMixer

Anderson mixing

DIISMixer

Direct inversion of the iterative subspace (DIIS mixing)

PulayMixer

AdaptiveDIISMixer

Adapt the mixing weight according to the Lagrange multiplier

AdaptivePulayMixer