Constructor for Kerker style preconditioner
The Kerker q0 parameter, given in energy units, i.e 0.5*q0*q0
Type: PhysicalQuantity with an energy unit
Default:
0.01*Hartree
The maximum wave number which is preconditioned, given in energy units, i.e 0.5*qmax*qmax
Type: PhysicalQuantity with an energy unit
Default:
0.25*Hartree
The damping of the q=0 component
Type: float between 0 and 1
Default:
0.01
A Kerker object provides the following methods:
This object supports cloning. See the section called “Cloning of ATK Python objects”.
energyQ0(): Return 0.5*q0*q0
energyQmax(): Return 0.5*qmax*qmax
maximumDamping(): Return maximum_damping
Use a Kerker preconditioner.
iteration_control_parameters = IterationControlParameters(
damping_factor=0.2,
preconditioner=Kerker(0.01*Hartree, 0.25*Hartree, 0.01),
mixing_variable=HamiltonianVariable,
number_of_history_steps=12,
)
calculator = DeviceLCAOCalculator(
iteration_control_parameters=iteration_control_parameters,
)
The Kerker preconditioner damps Fourier components of the electron density according to the scheme
In this equation,
,
, and
are
specified through the Kerker object
parameters energy_qmax, energy_q0, and
maximum_damping. The parameter f is specified
through the IterationControlParameters variable damping_factor.
The default parameters are appropriate for HamiltonianVariable
mixing.