qimpy.dft.electrons.CheFSI

class CheFSI(*, electrons, checkpoint_in=(None, ''), n_iterations=100, eig_threshold=1e-08, filter_order=10, init_threshold=0.1)

Bases: Davidson

Chebyshev Filter Subspace Iteration (CheFSI) diagonalization.

Parameters:
  • electrons (Electrons) –

  • checkpoint_in (CheckpointPath) –

  • n_iterations (int) –

  • eig_threshold (float) –

  • filter_order (int) –

  • init_threshold (float) –

__init__(*, electrons, checkpoint_in=(None, ''), n_iterations=100, eig_threshold=1e-08, filter_order=10, init_threshold=0.1)

Initialize with stopping criteria and filter order.

Parameters:
  • n_iterations (int) – [Input file] Number of diagonalization iterations. This only affects fixed-Hamiltonian calculations because the self-consistent field method overrides this when diagonalizing in an inner loop.

  • eig_threshold (float) – [Input file] Convergence threshold on eigenvalues in Hartrees. Stop when the maximum change in any eigenvalue between iterations falls below this threshold. This only affects fixed-Hamiltonian calculations because the self-consistent field method overrides this when diagonalizing in an inner loop.

  • filter_order (int) – [Input file] Order of the Chebyshev filter. This amounts to the number of Hamiltonian evaluations per band per eigenvalue iteration.

  • init_threshold (float) – [Input file] Eigenvalue threshold for initial Davidson steps. This controls the accuracy of a coarse Davidson diagonalization that creates a reasonable starting point for CheFSI.

  • electrons (Electrons) –

  • checkpoint_in (CheckpointPath) –

Return type:

None

Methods

__init__

Initialize with stopping criteria and filter order.

add_child

Construct child object self.`attr_name` of type cls.

add_child_one_of

Invoke add_child on one of several child options in args.

diagonalize

Diagonalize Kohn-Sham Hamiltonian in electrons.

get_Eband

Compute the sum over band eigenvalues, averaged over k

precondition

Inverse-kinetic preconditioner on the Cerr in eigenpairs, using the per-band kinetic energy KEref

save_checkpoint

Save self and all children in hierarchy to cp_path.

Attributes

filter_order

Order of Chebyshev filter

init_threshold

Threshold for Davidson initialization

electrons

Electronic system to diagonalize

n_iterations

Number of diagonalization iterations

eig_threshold

Eigenvalue convergence threshold (in \(E_h\))

child_names

Names of attributes with child objects.

diagonalize(n_iterations=None, eig_threshold=None)

Diagonalize Kohn-Sham Hamiltonian in electrons. Also available as __call__() to make CheFSI callable.

Parameters:
  • n_iterations (int | None) –

  • eig_threshold (float | None) –

Return type:

None

filter_order: int

Order of Chebyshev filter

init_threshold: float

Threshold for Davidson initialization