Routines to calculate EXX in RPA and energy correction methods.
More...
|
subroutine, public | calculate_exx (qs_env, unit_nr, hfx_sections, x_data, do_gw, do_admm, calc_forces, reuse_hfx, do_im_time, E_ex_from_GW, E_admm_from_GW, t3) |
| ... More...
|
|
subroutine, public | add_exx_to_rhs (rhs, qs_env, ext_hfx_section, x_data, recalc_integrals, do_admm, do_ec, do_exx, reuse_hfx) |
| Add the EXX contribution to the RHS of the Z-vector equation, namely the HF Hamiltonian. More...
|
|
subroutine, public | calc_exx_admm_xc_contributions (qs_env, matrix_prim, matrix_aux, x_data, exc, exc_aux_fit, calc_forces, use_virial) |
| Calculate the RI_RPAHF / EC_ENVHF ADMM XC contributions to the KS matrices and the respective energies. More...
|
|
subroutine, public | exx_pre_hfx (ext_hfx_section, x_data, reuse_hfx) |
| Prepare the external x_data for integration. Simply change the HFX fraction in case the qs_envx_data is reused. More...
|
|
subroutine, public | exx_post_hfx (qs_env, x_data, reuse_hfx) |
| Revert back to the proper HFX fraction in case qs_envx_data is reused. More...
|
|
Routines to calculate EXX in RPA and energy correction methods.
- History
- 07.2020 separated from mp2.F [F. Stein, code by Jan Wilhelm] 06.2022 EXX contribution to the forces [A. Bussy] 03.2023 Generalized for energy correction methods
- Author
- Jan Wilhelm, Frederick Stein, Augustin Bussy, Fabian Belleflamme
◆ calculate_exx()
subroutine, public hfx_exx::calculate_exx |
( |
type(qs_environment_type), pointer |
qs_env, |
|
|
integer, intent(in) |
unit_nr, |
|
|
type(section_vals_type), pointer |
hfx_sections, |
|
|
type(hfx_type), dimension(:, :), pointer |
x_data, |
|
|
logical, intent(in) |
do_gw, |
|
|
logical, intent(in) |
do_admm, |
|
|
logical, intent(in) |
calc_forces, |
|
|
logical, intent(in) |
reuse_hfx, |
|
|
logical, intent(in) |
do_im_time, |
|
|
real(kind=dp), intent(in) |
E_ex_from_GW, |
|
|
real(kind=dp), dimension(2), intent(in) |
E_admm_from_GW, |
|
|
real(kind=dp), intent(in) |
t3 |
|
) |
| |
...
- Parameters
-
qs_env | ... |
unit_nr | ... |
hfx_sections | ... |
x_data | ... |
do_gw | ... |
do_admm | ... |
calc_forces | ... |
reuse_hfx | ... |
do_im_time | ... |
E_ex_from_GW | ... |
E_admm_from_GW | ... |
t3 | ... |
Definition at line 103 of file hfx_exx.F.
◆ add_exx_to_rhs()
subroutine, public hfx_exx::add_exx_to_rhs |
( |
type(dbcsr_p_type), dimension(:), intent(in) |
rhs, |
|
|
type(qs_environment_type), pointer |
qs_env, |
|
|
type(section_vals_type), pointer |
ext_hfx_section, |
|
|
type(hfx_type), dimension(:, :), pointer |
x_data, |
|
|
logical, intent(in), optional |
recalc_integrals, |
|
|
logical, intent(in), optional |
do_admm, |
|
|
logical, intent(in), optional |
do_ec, |
|
|
logical, intent(in), optional |
do_exx, |
|
|
logical, intent(in), optional |
reuse_hfx |
|
) |
| |
Add the EXX contribution to the RHS of the Z-vector equation, namely the HF Hamiltonian.
- Parameters
-
rhs | ... |
qs_env | ... |
ext_hfx_section | ... |
x_data | ... |
recalc_integrals | ... |
do_admm | ... |
do_ec | ... |
do_exx | ... |
reuse_hfx | ... |
Definition at line 323 of file hfx_exx.F.
◆ calc_exx_admm_xc_contributions()
subroutine, public hfx_exx::calc_exx_admm_xc_contributions |
( |
type(qs_environment_type), pointer |
qs_env, |
|
|
type(dbcsr_p_type), dimension(:), pointer |
matrix_prim, |
|
|
type(dbcsr_p_type), dimension(:), pointer |
matrix_aux, |
|
|
type(hfx_type), dimension(:, :), pointer |
x_data, |
|
|
real(dp), intent(inout) |
exc, |
|
|
real(dp), intent(inout) |
exc_aux_fit, |
|
|
logical, intent(in) |
calc_forces, |
|
|
logical, intent(in) |
use_virial |
|
) |
| |
Calculate the RI_RPAHF / EC_ENVHF ADMM XC contributions to the KS matrices and the respective energies.
- Parameters
-
qs_env | ... |
matrix_prim | ... |
matrix_aux | ... |
x_data | ... |
exc | ... |
exc_aux_fit | ... |
calc_forces | ... |
use_virial | ... |
Definition at line 627 of file hfx_exx.F.
◆ exx_pre_hfx()
subroutine, public hfx_exx::exx_pre_hfx |
( |
type(section_vals_type), pointer |
ext_hfx_section, |
|
|
type(hfx_type), dimension(:, :), pointer |
x_data, |
|
|
logical |
reuse_hfx |
|
) |
| |
Prepare the external x_data for integration. Simply change the HFX fraction in case the qs_envx_data is reused.
- Parameters
-
ext_hfx_section | ... |
x_data | ... |
reuse_hfx | ... |
Definition at line 734 of file hfx_exx.F.
◆ exx_post_hfx()
subroutine, public hfx_exx::exx_post_hfx |
( |
type(qs_environment_type), pointer |
qs_env, |
|
|
type(hfx_type), dimension(:, :), pointer |
x_data, |
|
|
logical |
reuse_hfx |
|
) |
| |
Revert back to the proper HFX fraction in case qs_envx_data is reused.
- Parameters
-
qs_env | ... |
x_data | ... |
reuse_hfx | ... |
Definition at line 759 of file hfx_exx.F.