![]() |
(git:b77b4be)
|
Routines for the full diagonalization of GW + Bethe-Salpeter for computing electronic excitations. More...
Functions/Subroutines | |
subroutine, public | create_a (fm_mat_s_ia_bse, fm_mat_s_bar_ij_bse, fm_mat_s_ab_bse, fm_a, eigenval, unit_nr, homo, virtual, dimen_ri, mp2_env, para_env) |
Matrix A constructed from GW energies and 3c-B-matrices (cf. subroutine mult_B_with_W) A_ia,jb = (ε_a-ε_i) δ_ij δ_ab + α * v_ia,jb - W_ij,ab ε_a, ε_i are GW singleparticle energies from Eigenval_reduced α is a spin-dependent factor v_ia,jb = \sum_P B^P_ia B^P_jb (unscreened Coulomb interaction) W_ij,ab = \sum_P \bar{B}^P_ij B^P_ab (screened Coulomb interaction) | |
subroutine, public | create_b (fm_mat_s_ia_bse, fm_mat_s_bar_ia_bse, fm_b, homo, virtual, dimen_ri, unit_nr, mp2_env) |
Matrix B constructed from 3c-B-matrices (cf. subroutine mult_B_with_W) B_ia,jb = α * v_ia,jb - W_ib,aj α is a spin-dependent factor v_ia,jb = \sum_P B^P_ia B^P_jb (unscreened Coulomb interaction) W_ib,aj = \sum_P \bar{B}^P_ib B^P_aj (screened Coulomb interaction) | |
subroutine, public | create_hermitian_form_of_abba (fm_a, fm_b, fm_c, fm_sqrt_a_minus_b, fm_inv_sqrt_a_minus_b, homo, virtual, unit_nr, mp2_env, diag_est) |
Construct Matrix C=(A-B)^0.5 (A+B) (A-B)^0.5 to solve full BSE matrix as a hermitian problem (cf. Eq. (A7) in F. Furche J. Chem. Phys., Vol. 114, No. 14, (2001)). We keep fm_sqrt_A_minus_B and fm_inv_sqrt_A_minus_B for print of singleparticle transitions of ABBA as described in Eq. (A10) in F. Furche J. Chem. Phys., Vol. 114, No. 14, (2001). | |
subroutine, public | diagonalize_c (fm_c, homo, virtual, homo_irred, fm_sqrt_a_minus_b, fm_inv_sqrt_a_minus_b, unit_nr, diag_est, mp2_env, qs_env, mo_coeff) |
Solving eigenvalue equation C Z^n = (Ω^n)^2 Z^n . Here, the eigenvectors Z^n relate to X^n via Eq. (A10) in F. Furche J. Chem. Phys., Vol. 114, No. 14, (2001). | |
subroutine, public | diagonalize_a (fm_a, homo, virtual, homo_irred, unit_nr, diag_est, mp2_env, qs_env, mo_coeff) |
Solving hermitian eigenvalue equation A X^n = Ω^n X^n. | |
Routines for the full diagonalization of GW + Bethe-Salpeter for computing electronic excitations.
subroutine, public bse_full_diag::create_a | ( | type(cp_fm_type), intent(in) | fm_mat_s_ia_bse, |
type(cp_fm_type), intent(in) | fm_mat_s_bar_ij_bse, | ||
type(cp_fm_type), intent(in) | fm_mat_s_ab_bse, | ||
type(cp_fm_type), intent(inout) | fm_a, | ||
real(kind=dp), dimension(:) | eigenval, | ||
integer, intent(in) | unit_nr, | ||
integer, intent(in) | homo, | ||
integer, intent(in) | virtual, | ||
integer, intent(in) | dimen_ri, | ||
type(mp2_type), intent(inout) | mp2_env, | ||
type(mp_para_env_type), intent(inout) | para_env | ||
) |
Matrix A constructed from GW energies and 3c-B-matrices (cf. subroutine mult_B_with_W) A_ia,jb = (ε_a-ε_i) δ_ij δ_ab + α * v_ia,jb - W_ij,ab ε_a, ε_i are GW singleparticle energies from Eigenval_reduced α is a spin-dependent factor v_ia,jb = \sum_P B^P_ia B^P_jb (unscreened Coulomb interaction) W_ij,ab = \sum_P \bar{B}^P_ij B^P_ab (screened Coulomb interaction)
fm_mat_S_ia_bse | ... |
fm_mat_S_bar_ij_bse | ... |
fm_mat_S_ab_bse | ... |
fm_A | ... |
Eigenval | ... |
unit_nr | ... |
homo | ... |
virtual | ... |
dimen_RI | ... |
mp2_env | ... |
para_env | ... |
Definition at line 85 of file bse_full_diag.F.
subroutine, public bse_full_diag::create_b | ( | type(cp_fm_type), intent(in) | fm_mat_s_ia_bse, |
type(cp_fm_type), intent(in) | fm_mat_s_bar_ia_bse, | ||
type(cp_fm_type), intent(inout) | fm_b, | ||
integer, intent(in) | homo, | ||
integer, intent(in) | virtual, | ||
integer, intent(in) | dimen_ri, | ||
integer, intent(in) | unit_nr, | ||
type(mp2_type), intent(inout) | mp2_env | ||
) |
Matrix B constructed from 3c-B-matrices (cf. subroutine mult_B_with_W) B_ia,jb = α * v_ia,jb - W_ib,aj α is a spin-dependent factor v_ia,jb = \sum_P B^P_ia B^P_jb (unscreened Coulomb interaction) W_ib,aj = \sum_P \bar{B}^P_ib B^P_aj (screened Coulomb interaction)
fm_mat_S_ia_bse | ... |
fm_mat_S_bar_ia_bse | ... |
fm_B | ... |
homo | ... |
virtual | ... |
dimen_RI | ... |
unit_nr | ... |
mp2_env | ... |
Definition at line 234 of file bse_full_diag.F.
subroutine, public bse_full_diag::create_hermitian_form_of_abba | ( | type(cp_fm_type), intent(in) | fm_a, |
type(cp_fm_type), intent(in) | fm_b, | ||
type(cp_fm_type), intent(inout) | fm_c, | ||
type(cp_fm_type), intent(inout) | fm_sqrt_a_minus_b, | ||
type(cp_fm_type), intent(inout) | fm_inv_sqrt_a_minus_b, | ||
integer, intent(in) | homo, | ||
integer, intent(in) | virtual, | ||
integer, intent(in) | unit_nr, | ||
type(mp2_type), intent(inout) | mp2_env, | ||
real(kind=dp), intent(in) | diag_est | ||
) |
Construct Matrix C=(A-B)^0.5 (A+B) (A-B)^0.5 to solve full BSE matrix as a hermitian problem (cf. Eq. (A7) in F. Furche J. Chem. Phys., Vol. 114, No. 14, (2001)). We keep fm_sqrt_A_minus_B and fm_inv_sqrt_A_minus_B for print of singleparticle transitions of ABBA as described in Eq. (A10) in F. Furche J. Chem. Phys., Vol. 114, No. 14, (2001).
fm_A | ... |
fm_B | ... |
fm_C | ... |
fm_sqrt_A_minus_B | ... |
fm_inv_sqrt_A_minus_B | ... |
homo | ... |
virtual | ... |
unit_nr | ... |
mp2_env | ... |
diag_est | ... |
Definition at line 324 of file bse_full_diag.F.
subroutine, public bse_full_diag::diagonalize_c | ( | type(cp_fm_type), intent(inout) | fm_c, |
integer, intent(in) | homo, | ||
integer, intent(in) | virtual, | ||
integer, intent(in) | homo_irred, | ||
type(cp_fm_type), intent(inout) | fm_sqrt_a_minus_b, | ||
type(cp_fm_type), intent(inout) | fm_inv_sqrt_a_minus_b, | ||
integer, intent(in) | unit_nr, | ||
real(kind=dp), intent(in) | diag_est, | ||
type(mp2_type), intent(inout) | mp2_env, | ||
type(qs_environment_type), pointer | qs_env, | ||
type(cp_fm_type), dimension(:), intent(in) | mo_coeff | ||
) |
Solving eigenvalue equation C Z^n = (Ω^n)^2 Z^n . Here, the eigenvectors Z^n relate to X^n via Eq. (A10) in F. Furche J. Chem. Phys., Vol. 114, No. 14, (2001).
fm_C | ... |
homo | ... |
virtual | ... |
homo_irred | ... |
fm_sqrt_A_minus_B | ... |
fm_inv_sqrt_A_minus_B | ... |
unit_nr | ... |
diag_est | ... |
mp2_env | ... |
qs_env | ... |
mo_coeff | ... |
Definition at line 443 of file bse_full_diag.F.
subroutine, public bse_full_diag::diagonalize_a | ( | type(cp_fm_type), intent(inout) | fm_a, |
integer, intent(in) | homo, | ||
integer, intent(in) | virtual, | ||
integer, intent(in) | homo_irred, | ||
integer, intent(in) | unit_nr, | ||
real(kind=dp), intent(in) | diag_est, | ||
type(mp2_type), intent(inout) | mp2_env, | ||
type(qs_environment_type), pointer | qs_env, | ||
type(cp_fm_type), dimension(:), intent(in) | mo_coeff | ||
) |
Solving hermitian eigenvalue equation A X^n = Ω^n X^n.
fm_A | ... |
homo | ... |
virtual | ... |
homo_irred | ... |
unit_nr | ... |
diag_est | ... |
mp2_env | ... |
qs_env | ... |
mo_coeff | ... |
Definition at line 566 of file bse_full_diag.F.