![]() |
(git:b77b4be)
|
Routines to calculate HFX energy and potential. More...
Functions/Subroutines | |
subroutine, public | integrate_four_center (qs_env, x_data, ks_matrix, ehfx, rho_ao, hfx_section, para_env, geometry_did_change, irep, distribute_fock_matrix, ispin) |
computes four center integrals for a full basis set and updates the Kohn-Sham-Matrix and energy. Uses all 8 eri symmetries | |
subroutine, public | coulomb4 (lib, ra, rb, rc, rd, npgfa, npgfb, npgfc, npgfd, la_min, la_max, lb_min, lb_max, lc_min, lc_max, ld_min, ld_max, nsgfa, nsgfb, nsgfc, nsgfd, sphi_a_u1, sphi_a_u2, sphi_a_u3, sphi_b_u1, sphi_b_u2, sphi_b_u3, sphi_c_u1, sphi_c_u2, sphi_c_u3, sphi_d_u1, sphi_d_u2, sphi_d_u3, zeta, zetb, zetc, zetd, primitive_integrals, potential_parameter, neighbor_cells, screen1, screen2, eps_schwarz, max_contraction_val, cart_estimate, cell, neris_tmp, log10_pmax, log10_eps_schwarz, r1_pgf, r2_pgf, pgf1, pgf2, pgf_list_ij, pgf_list_kl, pgf_product_list, nsgfl_a, nsgfl_b, nsgfl_c, nsgfl_d, sphi_a_ext, sphi_b_ext, sphi_c_ext, sphi_d_ext, ee_work, ee_work2, ee_buffer1, ee_buffer2, ee_primitives_tmp, nimages, do_periodic, p_work) |
calculates two-electron integrals of a quartet/shell using the library lib_int in the periodic case | |
Routines to calculate HFX energy and potential.
subroutine, public hfx_energy_potential::integrate_four_center | ( | type(qs_environment_type), pointer | qs_env, |
type(hfx_type), dimension(:, :), pointer | x_data, | ||
type(dbcsr_p_type), dimension(:, :), pointer | ks_matrix, | ||
real(kind=dp), intent(out) | ehfx, | ||
type(dbcsr_p_type), dimension(:, :), pointer | rho_ao, | ||
type(section_vals_type), pointer | hfx_section, | ||
type(mp_para_env_type), pointer | para_env, | ||
logical | geometry_did_change, | ||
integer | irep, | ||
logical, intent(in) | distribute_fock_matrix, | ||
integer, intent(in) | ispin | ||
) |
computes four center integrals for a full basis set and updates the Kohn-Sham-Matrix and energy. Uses all 8 eri symmetries
qs_env | ... |
x_data | ... |
ks_matrix | ... |
ehfx | energy calculated with the updated HFX matrix |
rho_ao | density matrix in ao basis |
hfx_section | input_section HFX |
para_env | ... |
geometry_did_change | flag that indicates we have to recalc integrals |
irep | Index for the HFX replica |
distribute_fock_matrix | Flag that indicates whether to communicate the new fock matrix or not |
ispin | ... |
Definition at line 134 of file hfx_energy_potential.F.
subroutine, public hfx_energy_potential::coulomb4 | ( | type(cp_libint_t) | lib, |
real(dp), dimension(3), intent(in) | ra, | ||
real(dp), dimension(3), intent(in) | rb, | ||
real(dp), dimension(3), intent(in) | rc, | ||
real(dp), dimension(3), intent(in) | rd, | ||
integer, intent(in) | npgfa, | ||
integer, intent(in) | npgfb, | ||
integer, intent(in) | npgfc, | ||
integer, intent(in) | npgfd, | ||
integer, intent(in) | la_min, | ||
integer, intent(in) | la_max, | ||
integer, intent(in) | lb_min, | ||
integer, intent(in) | lb_max, | ||
integer, intent(in) | lc_min, | ||
integer, intent(in) | lc_max, | ||
integer, intent(in) | ld_min, | ||
integer, intent(in) | ld_max, | ||
integer, intent(in) | nsgfa, | ||
integer, intent(in) | nsgfb, | ||
integer, intent(in) | nsgfc, | ||
integer, intent(in) | nsgfd, | ||
integer, intent(in) | sphi_a_u1, | ||
integer, intent(in) | sphi_a_u2, | ||
integer, intent(in) | sphi_a_u3, | ||
integer, intent(in) | sphi_b_u1, | ||
integer, intent(in) | sphi_b_u2, | ||
integer, intent(in) | sphi_b_u3, | ||
integer, intent(in) | sphi_c_u1, | ||
integer, intent(in) | sphi_c_u2, | ||
integer, intent(in) | sphi_c_u3, | ||
integer, intent(in) | sphi_d_u1, | ||
integer, intent(in) | sphi_d_u2, | ||
integer, intent(in) | sphi_d_u3, | ||
real(dp), dimension(1:npgfa), intent(in) | zeta, | ||
real(dp), dimension(1:npgfb), intent(in) | zetb, | ||
real(dp), dimension(1:npgfc), intent(in) | zetc, | ||
real(dp), dimension(1:npgfd), intent(in) | zetd, | ||
real(dp), dimension(nsgfa, nsgfb, nsgfc, nsgfd) | primitive_integrals, | ||
type(hfx_potential_type) | potential_parameter, | ||
type(hfx_cell_type), dimension(:), pointer | neighbor_cells, | ||
real(dp), dimension(2), intent(in) | screen1, | ||
real(dp), dimension(2), intent(in) | screen2, | ||
real(dp), intent(in) | eps_schwarz, | ||
real(dp), intent(in) | max_contraction_val, | ||
real(dp) | cart_estimate, | ||
type(cell_type), pointer | cell, | ||
integer(int_8) | neris_tmp, | ||
real(dp), intent(in) | log10_pmax, | ||
real(dp), intent(in) | log10_eps_schwarz, | ||
type(hfx_screen_coeff_type), dimension(:, :), pointer | r1_pgf, | ||
type(hfx_screen_coeff_type), dimension(:, :), pointer | r2_pgf, | ||
type(hfx_screen_coeff_type), dimension(:, :), pointer | pgf1, | ||
type(hfx_screen_coeff_type), dimension(:, :), pointer | pgf2, | ||
type(hfx_pgf_list), dimension(*) | pgf_list_ij, | ||
type(hfx_pgf_list), dimension(*) | pgf_list_kl, | ||
type(hfx_pgf_product_list), dimension(:), intent(inout), allocatable | pgf_product_list, | ||
integer, dimension(0:), intent(in) | nsgfl_a, | ||
integer, dimension(0:), intent(in) | nsgfl_b, | ||
integer, dimension(0:), intent(in) | nsgfl_c, | ||
integer, dimension(0:), intent(in) | nsgfl_d, | ||
real(dp), dimension(sphi_a_u1, sphi_a_u2, sphi_a_u3), intent(in) | sphi_a_ext, | ||
real(dp), dimension(sphi_b_u1, sphi_b_u2, sphi_b_u3), intent(in) | sphi_b_ext, | ||
real(dp), dimension(sphi_c_u1, sphi_c_u2, sphi_c_u3), intent(in) | sphi_c_ext, | ||
real(dp), dimension(sphi_d_u1, sphi_d_u2, sphi_d_u3), intent(in) | sphi_d_ext, | ||
real(dp), dimension(*) | ee_work, | ||
real(dp), dimension(*) | ee_work2, | ||
real(dp), dimension(*) | ee_buffer1, | ||
real(dp), dimension(*) | ee_buffer2, | ||
real(dp), dimension(*) | ee_primitives_tmp, | ||
integer, dimension(*) | nimages, | ||
logical, intent(in) | do_periodic, | ||
real(dp), dimension(:), pointer | p_work | ||
) |
calculates two-electron integrals of a quartet/shell using the library lib_int in the periodic case
lib | ... |
ra | ... |
rb | ... |
rc | ... |
rd | ... |
npgfa | ... |
npgfb | ... |
npgfc | ... |
npgfd | ... |
la_min | ... |
la_max | ... |
lb_min | ... |
lb_max | ... |
lc_min | ... |
lc_max | ... |
ld_min | ... |
ld_max | ... |
nsgfa | ... |
nsgfb | ... |
nsgfc | ... |
nsgfd | ... |
sphi_a_u1 | ... |
sphi_a_u2 | ... |
sphi_a_u3 | ... |
sphi_b_u1 | ... |
sphi_b_u2 | ... |
sphi_b_u3 | ... |
sphi_c_u1 | ... |
sphi_c_u2 | ... |
sphi_c_u3 | ... |
sphi_d_u1 | ... |
sphi_d_u2 | ... |
sphi_d_u3 | ... |
zeta | ... |
zetb | ... |
zetc | ... |
zetd | ... |
primitive_integrals | array of primitive_integrals |
potential_parameter | contains info for libint |
neighbor_cells | Periodic images |
screen1 | set based coefficients for near field screening |
screen2 | set based coefficients for near field screening |
eps_schwarz | threshold |
max_contraction_val | maximum multiplication factor for cart -> sph |
cart_estimate | maximum calculated integral value |
cell | cell |
neris_tmp | counter for calculated cart integrals |
log10_pmax | logarithm of initial p matrix max element |
log10_eps_schwarz | log of threshold |
R1_pgf | coefficients for radii of product distribution function |
R2_pgf | coefficients for radii of product distribution function |
pgf1 | schwarz coefficients pgf basid |
pgf2 | schwarz coefficients pgf basid |
pgf_list_ij | ... |
pgf_list_kl | ... |
pgf_product_list | ... |
nsgfl_a | ... |
nsgfl_b | ... |
nsgfl_c | ... |
nsgfl_d | ... |
sphi_a_ext | ... |
sphi_b_ext | ... |
sphi_c_ext | ... |
sphi_d_ext | ... |
ee_work | ... |
ee_work2 | ... |
ee_buffer1 | ... |
ee_buffer2 | ... |
ee_primitives_tmp | ... |
nimages | ... |
do_periodic | ... |
p_work | ... |
Definition at line 2242 of file hfx_energy_potential.F.