(git:c641773)
Loading...
Searching...
No Matches
qs_scf_diagonalization.F File Reference

Go to the source code of this file.

Modules

module  qs_scf_diagonalization
 Different diagonalization schemes that can be used for the iterative solution of the eigenvalue problem.

Functions/Subroutines

real(kind=dp) function qs_scf_diagonalization::adiis_candidate_shift (scf_env)
 Fade candidate regularization through handover; never regularize a raw-map check.
subroutine, public qs_scf_diagonalization::general_eigenproblem (scf_env, mos, matrix_ks, matrix_s, scf_control, scf_section, diis_step)
 the inner loop of scf, specific to diagonalization with S matrix basically, in goes the ks matrix out goes a new p matrix
subroutine, public qs_scf_diagonalization::do_general_diag (scf_env, mos, matrix_ks, matrix_s, scf_control, scf_section, diis_step, probe)
 ...
subroutine, public qs_scf_diagonalization::do_general_diag_kp (matrix_ks, matrix_s, kpoints, scf_env, scf_control, update_p, diis_step, diis_error, qs_env, probe, added_mos_auto_grow, potential)
 Kpoint diagonalization routine Transforms matrices to kpoint, distributes kpoint groups, performs general diagonalization (no storgae of overlap decomposition), stores MOs, calculates occupation numbers, calculates density matrices in kpoint representation, transforms density matrices to real space.
subroutine, public qs_scf_diagonalization::diag_kp_basic (matrix_ks, matrix_s, kpoints, fmwork)
 Kpoint diagonalization routine Transforms matrices to kpoint, distributes kpoint groups, performs general diagonalization (no storgae of overlap decomposition), stores MOs, calculates occupation numbers, calculates density matrices in kpoint representation, transforms density matrices to real space.
subroutine, public qs_scf_diagonalization::do_scf_diag_subspace (qs_env, scf_env, subspace_env, mos, rho, ks_env, scf_section, scf_control)
 inner loop within MOS subspace, to refine occupation and density, before next diagonalization of the Hamiltonian
subroutine, public qs_scf_diagonalization::diag_subspace_allocate (subspace_env, qs_env, mos)
 ...
subroutine, public qs_scf_diagonalization::do_special_diag (scf_env, mos, matrix_ks, scf_control, scf_section, diis_step)
 the inner loop of scf, specific to diagonalization without S matrix basically, in goes the ks matrix out goes a new p matrix
subroutine, public qs_scf_diagonalization::do_ot_diag (scf_env, mos, matrix_ks, matrix_s, scf_control, scf_section, diis_step)
 the inner loop of scf, specific to iterative diagonalization using OT with S matrix; basically, in goes the ks matrix out goes a new p matrix
subroutine, public qs_scf_diagonalization::do_ot_diag_kp (matrix_ks, matrix_s, matrix_t, kpoints, scf_env, scf_control, diis_step, added_mos_auto_grow)
 fixed-H OT diagonalization for real or complex K-point channels
subroutine, public qs_scf_diagonalization::do_roks_diag (scf_env, mos, matrix_ks, matrix_s, scf_control, scf_section, diis_step, orthogonal_basis)
 Solve a set restricted open Kohn-Sham (ROKS) equations based on the alpha and beta Kohn-Sham matrices from unrestricted Kohn-Sham.
subroutine, public qs_scf_diagonalization::do_block_krylov_diag (scf_env, mos, matrix_ks, scf_control, scf_section, check_moconv_only)
 iterative diagonalization using the block Krylov-space approach
subroutine, public qs_scf_diagonalization::do_block_davidson_diag (qs_env, scf_env, mos, matrix_ks, matrix_s, scf_control, scf_section, check_moconv_only)
 iterative diagonalization using the block davidson space approach
subroutine, public qs_scf_diagonalization::do_block_davidson_diag_kp (qs_env, scf_env, matrix_ks_kp, matrix_s_kp, kpoints, scf_control, added_mos_auto_grow)
 block-Davidson SCF step for complex K points, one channel per (local kpoint, spin); mirrors do_block_davidson_diag for the preconditioner scheduling and do_general_diag_kp for the H(k)/S(k) assembly and the density exit chain
subroutine, public qs_scf_diagonalization::do_block_krylov_diag_kp (qs_env, scf_env, matrix_ks_kp, matrix_s_kp, kpoints, scf_control, check_moconv_only, added_mos_auto_grow)
 Block Krylov (Lanczos) refinement of the k-point MOS, the complex counterpart of do_block_krylov_diag: every channel (local kpoint, spin) is standardized with the Cholesky factor of S(k), refined by the complex block-Krylov kernel, and rotated back into the generalized problem.
subroutine, public qs_scf_diagonalization::diag_kp_smat (matrix_s, kpoints, fmwork, lowdin_forces)
 Kpoint diagonalization routine Transforms matrices to kpoint, distributes kpoint groups, performs diagonalization.