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
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 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
Order of Chebyshev filter
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