(git:f2099e5)
Loading...
Searching...
No Matches
bse_iterative.F File Reference

Go to the source code of this file.

Modules

module  bse_iterative
 Iterative solution of the Bethe-Salpeter equation: the block Davidson solvers on top of the matrix-free application of A and B, and the post-processing of their eigenvectors. The solvers live in bse_davidson, apart from this driver, so that a later Lanczos-Haydock solver for the spectrum can share the matrix-free A and B of bse_matvec and this driver.

Functions/Subroutines

subroutine, public bse_iterative::solve_bse_iteratively (eigenval_reduced, homo_red_arr, virt_red_arr, homo, dimen_ri, do_tda, do_abba, bse_env, mo_coeff, unit_nr)
 Lowest excitations of a closed-shell reference from the block Davidson solvers on top of the matrix-free application of A and B, post-processed as in the full diagonalization. TDA (bse_davidson_tda): sum_jb A_ia,jb X_jb^n = Ω^n X_ia^n. Full problem, by ABBA_SOLVER: MK_DAVIDSON, sum_jb [(A+B)(A-B)]_ia,jb x_jb^n = (Ω^n)^2 x_ia^n with x^n = X^n - Y^n; OLSEN_STRATMANN, sum_jb (A+B)_ia,jb y_jb^n = Ω^n x_ia^n and sum_jb (A-B)_ia,jb x_jb^n = Ω^n y_ia^n with y^n = X^n + Y^n. Neither A nor B is formed: bse_matvec_apply contracts the RI slabs, (A Z)_ia = (ε_a-ε_i) Z_ia + α sum_P B^P_ia sum_jb B^P_jb Z_jb - w sum_Pjb \bar{B}^P_ij B^P_ab Z_jb (B Z)_ia = α sum_P B^P_ia sum_jb B^P_jb Z_jb - w sum_Pjb \bar{B}^P_ib B^P_ja Z_jb with α, w and \bar{B} set by create_matvec_env from SPIN_CONFIG and SCREENING_IN_W. The five slabs are released once the solver holds its RI-sliced copies.