Skip to content

Commit

Permalink
Laplace MP2| Small bug fix with stress tensor + refactoring
Browse files Browse the repository at this point in the history
  • Loading branch information
abussy committed May 6, 2022
1 parent 4eb5f9a commit c9160ba
Show file tree
Hide file tree
Showing 9 changed files with 241 additions and 200 deletions.
4 changes: 0 additions & 4 deletions src/mp2_cphf.F
Original file line number Diff line number Diff line change
Expand Up @@ -1411,7 +1411,6 @@ SUBROUTINE update_mp2_forces(qs_env)
END IF

IF (dft_control%do_admm) THEN
IF (use_virial) h_stress = virial%pv_virial
IF (debug_forces) THEN
deb = force(1)%overlap_admm(1:3, 1)
IF (use_virial) e_dummy = third_tr(virial%pv_virial)
Expand All @@ -1429,7 +1428,6 @@ SUBROUTINE update_mp2_forces(qs_env)
IF (iounit > 0) WRITE (iounit, "(T3,A,T33,F16.8)") "DEBUG VIRIAL:: KADMM*S' ", e_dummy
END IF
END IF
IF (use_virial) virial%pv_exc = virial%pv_exc + (virial%pv_virial - h_stress)
ALLOCATE (matrix_ks_aux(nspins))
DO ispin = 1, nspins
Expand Down Expand Up @@ -1502,7 +1500,6 @@ SUBROUTINE update_mp2_forces(qs_env)
CALL dbcsr_add(rho_ao(ispin)%matrix, p_env%p1(ispin)%matrix, 1.0_dp, 1.0_dp)
END DO
IF (use_virial) h_stress = virial%pv_virial
IF (debug_forces) THEN
deb = force(1)%overlap_admm(1:3, 1)
IF (use_virial) e_dummy = third_tr(virial%pv_virial)
Expand All @@ -1519,7 +1516,6 @@ SUBROUTINE update_mp2_forces(qs_env)
IF (iounit > 0) WRITE (iounit, "(T3,A,T33,F16.8)") "DEBUG VIRIAL:: VADMM*S' ", e_dummy
END IF
END IF
IF (use_virial) virial%pv_exc = virial%pv_exc + (virial%pv_virial - h_stress)
DO ispin = 1, nspins
CALL dbcsr_add(rho_ao(ispin)%matrix, p_env%p1(ispin)%matrix, 1.0_dp, -1.0_dp)
Expand Down
3 changes: 2 additions & 1 deletion src/mp2_eri_gpw.F
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,8 @@ MODULE mp2_eri_gpw
CHARACTER(len=*), PARAMETER, PRIVATE :: moduleN = 'mp2_eri_gpw'

PUBLIC :: mp2_eri_2c_integrate_gpw, mp2_eri_3c_integrate_gpw, calc_potential_gpw, cleanup_gpw, prepare_gpw, &
integrate_potential_forces_2c, integrate_potential_forces_3c_1c, integrate_potential_forces_3c_2c
integrate_potential_forces_2c, integrate_potential_forces_3c_1c, integrate_potential_forces_3c_2c, &
virial_gpw_potential

CONTAINS

Expand Down
11 changes: 7 additions & 4 deletions src/mp2_gpw.F
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ MODULE mp2_gpw
USE cp_fm_struct, ONLY: cp_fm_struct_type
USE cp_fm_types, ONLY: cp_fm_get_info,&
cp_fm_p_type,&
cp_fm_release,&
cp_fm_type
USE cp_log_handling, ONLY: &
cp_add_default_logger, cp_get_default_logger, cp_logger_create, &
Expand Down Expand Up @@ -165,6 +166,7 @@ SUBROUTINE mp2_gpw_main(qs_env, mp2_env, Emp2, Emp2_Cou, Emp2_EX, Emp2_S, Emp2_T
TYPE(cp_fm_p_type), DIMENSION(:), POINTER :: mo_coeff
TYPE(cp_fm_p_type), DIMENSION(:, :), POINTER :: fm_matrix_L_RI_metric, &
fm_matrix_Sinv_Vtrunc_Sinv
TYPE(cp_fm_type), POINTER :: fm_matrix_PQ
TYPE(cp_logger_type), POINTER :: logger, logger_sub
TYPE(cp_para_env_type), POINTER :: para_env_sub
TYPE(dbcsr_p_type) :: mat_munu, mat_P_global
Expand Down Expand Up @@ -378,8 +380,8 @@ SUBROUTINE mp2_gpw_main(qs_env, mp2_env, Emp2, Emp2_Cou, Emp2_EX, Emp2_S, Emp2_T
CALL mp2_ri_gpw_compute_in( &
BIb_C, BIb_C_gw, BIb_C_bse_ij, BIb_C_bse_ab, gd_array, gd_B_virtual, dimen_RI, dimen_RI_red, qs_env, &
para_env, para_env_sub, color_sub, cell, particle_set, &
atomic_kind_set, qs_kind_set, mo_coeff, fm_matrix_L_RI_metric, fm_matrix_Sinv_Vtrunc_Sinv, nmo, homo, &
mat_munu, sab_orb_sub, &
atomic_kind_set, qs_kind_set, mo_coeff, fm_matrix_PQ, fm_matrix_L_RI_metric, fm_matrix_Sinv_Vtrunc_Sinv, &
nmo, homo, mat_munu, sab_orb_sub, &
mo_coeff_o, mo_coeff_v, mo_coeff_all, mo_coeff_gw, &
mp2_env%mp2_gpw%eps_filter, unit_nr, &
mp2_env%mp2_memory, mp2_env%calc_PQ_cond_num, calc_forces, blacs_env_sub, my_do_gw .AND. .NOT. do_im_time, &
Expand All @@ -394,7 +396,7 @@ SUBROUTINE mp2_gpw_main(qs_env, mp2_env, Emp2, Emp2_Cou, Emp2_EX, Emp2_S, Emp2_T
CALL mp2_ri_gpw_compute_in(BIb_C, BIb_C_gw, BIb_C_bse_ij, BIb_C_bse_ab, gd_array, gd_B_virtual, &
dimen_RI, dimen_RI_red, qs_env, para_env, para_env_sub, &
color_sub, cell, particle_set, &
atomic_kind_set, qs_kind_set, mo_coeff, &
atomic_kind_set, qs_kind_set, mo_coeff, fm_matrix_PQ, &
fm_matrix_L_RI_metric, fm_matrix_Sinv_Vtrunc_Sinv, nmo, homo, &
mat_munu, sab_orb_sub, &
mo_coeff_o, mo_coeff_v, mo_coeff_all, mo_coeff_gw, &
Expand Down Expand Up @@ -534,7 +536,7 @@ SUBROUTINE mp2_gpw_main(qs_env, mp2_env, Emp2, Emp2_Cou, Emp2_EX, Emp2_S, Emp2_T
CALL rpa_ri_compute_en(qs_env, Emp2, mp2_env, BIb_C, BIb_C_gw, BIb_C_bse_ij, BIb_C_bse_ab, &
para_env, para_env_sub, color_sub, &
gd_array, gd_B_virtual, gd_B_all, gd_B_occ_bse, gd_B_virt_bse, &
mo_coeff, fm_matrix_L_RI_metric, fm_matrix_Sinv_Vtrunc_Sinv, kpoints, &
mo_coeff, fm_matrix_PQ, fm_matrix_L_RI_metric, fm_matrix_Sinv_Vtrunc_Sinv, kpoints, &
Eigenval, nmo, homo, dimen_RI, dimen_RI_red, gw_corr_lev_occ, gw_corr_lev_virt, &
unit_nr, my_do_ri_sos_laplace_mp2, my_do_gw, do_im_time, do_bse, matrix_s, &
mat_munu, mat_P_global, &
Expand All @@ -550,6 +552,7 @@ SUBROUTINE mp2_gpw_main(qs_env, mp2_env, Emp2, Emp2_Cou, Emp2_EX, Emp2_S, Emp2_T
DEALLOCATE (mat_P_global%matrix)

CALL cp_libint_static_cleanup()
IF (calc_forces) CALL cp_fm_release(fm_matrix_PQ)
END IF

! Release some memory for AXK
Expand Down
10 changes: 6 additions & 4 deletions src/mp2_integrals.F
Original file line number Diff line number Diff line change
Expand Up @@ -140,6 +140,7 @@ MODULE mp2_integrals
!> \param atomic_kind_set ...
!> \param qs_kind_set ...
!> \param mo_coeff ...
!> \param fm_matrix_PQ ...
!> \param fm_matrix_L_RI_metric ...
!> \param fm_matrix_Sinv_Vtrunc_Sinv ...
!> \param nmo ...
Expand Down Expand Up @@ -180,8 +181,8 @@ MODULE mp2_integrals
SUBROUTINE mp2_ri_gpw_compute_in(BIb_C, BIb_C_gw, BIb_C_bse_ij, BIb_C_bse_ab, gd_array, gd_B_virtual, &
dimen_RI, dimen_RI_red, qs_env, para_env, para_env_sub, color_sub, &
cell, particle_set, atomic_kind_set, qs_kind_set, mo_coeff, &
fm_matrix_L_RI_metric, fm_matrix_Sinv_Vtrunc_Sinv, nmo, homo, &
mat_munu, &
fm_matrix_PQ, fm_matrix_L_RI_metric, fm_matrix_Sinv_Vtrunc_Sinv, &
nmo, homo, mat_munu, &
sab_orb_sub, mo_coeff_o, mo_coeff_v, mo_coeff_all, &
mo_coeff_gw, eps_filter, unit_nr, &
mp2_memory, calc_PQ_cond_num, calc_forces, blacs_env_sub, my_do_gw, do_bse, &
Expand All @@ -208,6 +209,7 @@ SUBROUTINE mp2_ri_gpw_compute_in(BIb_C, BIb_C_gw, BIb_C_bse_ij, BIb_C_bse_ab, gd
TYPE(atomic_kind_type), DIMENSION(:), POINTER :: atomic_kind_set
TYPE(qs_kind_type), DIMENSION(:), POINTER :: qs_kind_set
TYPE(cp_fm_p_type), DIMENSION(:), INTENT(IN) :: mo_coeff
TYPE(cp_fm_type), POINTER :: fm_matrix_PQ
TYPE(cp_fm_p_type), DIMENSION(:, :), POINTER :: fm_matrix_L_RI_metric, &
fm_matrix_Sinv_Vtrunc_Sinv
INTEGER, INTENT(IN) :: nmo
Expand Down Expand Up @@ -346,8 +348,8 @@ SUBROUTINE mp2_ri_gpw_compute_in(BIb_C, BIb_C_gw, BIb_C_bse_ij, BIb_C_bse_ab, gd
END IF

CALL get_2c_integrals(qs_env, eri_method, eri_param, para_env, para_env_sub, para_env_L, mp2_memory, &
fm_matrix_L, fm_matrix_V, ngroup, color_sub, dimen_RI, dimen_RI_red, kpoints, mo_coeff(1)%matrix, &
my_group_L_size, my_group_L_start, my_group_L_end, &
fm_matrix_L, fm_matrix_V, fm_matrix_PQ, ngroup, color_sub, dimen_RI, dimen_RI_red, &
kpoints, mo_coeff(1)%matrix, my_group_L_size, my_group_L_start, my_group_L_end, &
gd_array, calc_PQ_cond_num .AND. .NOT. do_svd, cond_num, do_svd, &
num_small_eigen, qs_env%mp2_env%potential_parameter, ri_metric, &
fm_matrix_L_RI_metric, fm_matrix_Sinv_Vtrunc_Sinv, &
Expand Down

0 comments on commit c9160ba

Please sign in to comment.