(git:66ce584)
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

subroutine, public qs_scf_diagonalization::qs_scf_get_ot_kpoint_operator (matrix_rs, kpoints, kp, ispin, cache_re, cache_im, matrix_re, matrix_im)
 Build one complex k-point operator for OT in the local k-point-group context. A single group keeps the established direct real-space transform. Multiple groups use the redistributed full-matrix cache because their communicators do not own the complete real-space DBCSR matrix.
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, matrix_t, store_ot_matrices, transfer_only, added_mos_auto_grow)
 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)
 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::diag_kp_smat (matrix_s, kpoints, fmwork)
 Kpoint diagonalization routine Transforms matrices to kpoint, distributes kpoint groups, performs diagonalization.