Identity preconditioner: leaves the residual untouched. More...
#include <none.hpp>
Inheritance diagram for q3::NoPreconditioner:Public Member Functions | |
| void | apply (std::vector< Complex > &) const override |
| std::string | name () const override |
Public Member Functions inherited from q3::Preconditioner | |
| virtual | ~Preconditioner ()=default |
| virtual void | update (const std::vector< Real > &) |
|
inlineoverridevirtual |
Apply the preconditioner to one G-space residual channel, in place.
Callers pass the TOTAL charge channel only: the magnetization channel has no Coulomb kernel to screen, and damping its long-wavelength components would freeze slow moment relaxation. The G = 0 component must be left untouched — it is fixed by charge conservation, and the mixing metric excludes it for the same reason.
| residual_g | residual in reciprocal space; overwritten with the preconditioned residual. |
Implements q3::Preconditioner.
|
inlineoverridevirtual |
Implements q3::Preconditioner.