3.7.14. horton.meanfield.scf – Basic Self-Consistent Field (SCF) algorithm.

class horton.meanfield.scf.PlainSCFSolver(threshold=1e-08, maxiter=128, skip_energy=False, level_shift=0.0)

Bases: object

Initialize a PlainSCFSolver.

Parameters:
  • threshold (float) – The convergence threshold for the wavefunction.
  • maxiter (int) – The maximum number of iterations. When set to None, the SCF loop will go one until convergence is reached.
  • skip_energy (bool) – When set to True, the final energy is not computed.
  • level_shift (float) – When set to non-zero, level-shifting is applied and the value of the argument controls the magnitude of the level shift. This argument cannot be negative.
__call__(**kwargs)

Find a self-consistent set of orbitals.

Parameters:
  • ham (EffHam) – An effective Hamiltonian.
  • lf (LinalgFactor) – The linalg factory to be used.
  • overlap (TwoIndex) – The overlap operator.
  • occ_model (OccModel) – Model for the orbital occupations.
  • exp2, .. (exp1,) – The initial orbitals. The number of dms must match ham.ndm.
__init__(threshold=1e-08, maxiter=128, skip_energy=False, level_shift=0.0)

Initialize a PlainSCFSolver.

Parameters:
  • threshold (float) – The convergence threshold for the wavefunction.
  • maxiter (int) – The maximum number of iterations. When set to None, the SCF loop will go one until convergence is reached.
  • skip_energy (bool) – When set to True, the final energy is not computed.
  • level_shift (float) – When set to non-zero, level-shifting is applied and the value of the argument controls the magnitude of the level shift. This argument cannot be negative.
error(ham, lf, overlap, *exps)

See horton.meanfield.convergence.convergence_error_eigen().

kind = 'exp'