(git:f7b9015)
Loading...
Searching...
No Matches
four_center_integral_methods Module Reference

Prepare and evaluate screened four-center Gaussian integrals and derivatives. More...

Functions/Subroutines

pure real(dp) function, public min_image_gap_sq (r, hmat)
 Smallest increase of |r|**2 when r is moved to any other periodic image of an orthorhombic, fully periodic cell, i.e. min over n /= 0 of |r - hmat*n|**2 - |r|**2. Exact if r is a minimum-image vector (|r(i)| <= |hmat(i,i)|/2); negative otherwise.
subroutine, public coulomb4 (context, 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)
 calculates two-electron integrals of a quartet/shell using the library lib_int in the periodic case
subroutine, public forces4 (context, 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, ede_work, ede_work2, ede_work_forces, ede_buffer1, ede_buffer2, ede_primitives_tmp, nimages, do_periodic, use_virial, ede_work_virial, ede_work2_virial, ede_primitives_tmp_virial, primitive_integrals_virial, cart_estimate_virial)
 ...

Variables

integer, save, public pgf_product_list_size = 128

Detailed Description

Prepare and evaluate screened four-center Gaussian integrals and derivatives.

Function/Subroutine Documentation

◆ min_image_gap_sq()

pure real(dp) function, public four_center_integral_methods::min_image_gap_sq ( real(dp), dimension(3), intent(in) r,
real(dp), dimension(3, 3), intent(in) hmat )

Smallest increase of |r|**2 when r is moved to any other periodic image of an orthorhombic, fully periodic cell, i.e. min over n /= 0 of |r - hmat*n|**2 - |r|**2. Exact if r is a minimum-image vector (|r(i)| <= |hmat(i,i)|/2); negative otherwise.

Parameters
rdisplacement vector
hmatcell matrix; its diagonal entries are signed cell-vector components
Returns
the squared-distance gap to the nearest other periodic image

Definition at line 329 of file four_center_integral_methods.F.

◆ coulomb4()

subroutine, public four_center_integral_methods::coulomb4 ( type(four_center_integral_context_type) context,
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(coulomb_operator_type) potential_parameter,
type(eri4_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(eri4_screen_coeff_type), dimension(:, :), pointer r1_pgf,
type(eri4_screen_coeff_type), dimension(:, :), pointer r2_pgf,
type(eri4_screen_coeff_type), dimension(:, :), pointer pgf1,
type(eri4_screen_coeff_type), dimension(:, :), pointer pgf2,
type(eri4_pgf_pair_type), dimension(*) pgf_list_ij,
type(eri4_pgf_pair_type), dimension(*) pgf_list_kl,
type(eri4_pgf_product_type), 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 )

calculates two-electron integrals of a quartet/shell using the library lib_int in the periodic case

Parameters
contextfour-center integral context
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_integralsarray of primitive_integrals
potential_parametercontains info for libint
neighbor_cellsPeriodic images
screen1set based coefficients for near field screening
screen2set based coefficients for near field screening
eps_schwarzthreshold
max_contraction_valmaximum multiplication factor for cart -> sph
cart_estimatemaximum calculated integral value
cellcell
neris_tmpcounter for calculated cart integrals
log10_pmaxlogarithm of initial p matrix max element
log10_eps_schwarzlog of threshold
R1_pgfcoefficients for radii of product distribution function
R2_pgfcoefficients for radii of product distribution function
pgf1schwarz coefficients pgf basid
pgf2schwarz 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...
History
11.2006 created [Manuel Guidon] 02.2009 completely rewritten screening part [Manuel Guidon]
Author
Manuel Guidon

Definition at line 420 of file four_center_integral_methods.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ forces4()

subroutine, public four_center_integral_methods::forces4 ( type(four_center_integral_context_type) context,
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, 12) primitive_integrals,
type(coulomb_operator_type) potential_parameter,
type(eri4_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(eri4_screen_coeff_type), dimension(:, :), pointer r1_pgf,
type(eri4_screen_coeff_type), dimension(:, :), pointer r2_pgf,
type(eri4_screen_coeff_type), dimension(:, :), pointer pgf1,
type(eri4_screen_coeff_type), dimension(:, :), pointer pgf2,
type(eri4_pgf_pair_type), dimension(*) pgf_list_ij,
type(eri4_pgf_pair_type), dimension(*) pgf_list_kl,
type(eri4_pgf_product_type), 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(*) ede_work,
real(dp), dimension(*) ede_work2,
real(dp), dimension(*) ede_work_forces,
real(dp), dimension(*) ede_buffer1,
real(dp), dimension(*) ede_buffer2,
real(dp), dimension(*) ede_primitives_tmp,
integer, dimension(*) nimages,
logical, intent(in) do_periodic,
logical, intent(in) use_virial,
real(dp), dimension(*) ede_work_virial,
real(dp), dimension(*) ede_work2_virial,
real(dp), dimension(*) ede_primitives_tmp_virial,
real(dp), dimension(nsgfa, nsgfb, nsgfc, nsgfd, 12, 3) primitive_integrals_virial,
real(dp) cart_estimate_virial )

...

Parameters
contextfour-center integral context
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...
ede_work...
ede_work2...
ede_work_forces...
ede_buffer1...
ede_buffer2...
ede_primitives_tmp...
nimages...
do_periodic...
use_virial...
ede_work_virial...
ede_work2_virial...
ede_primitives_tmp_virial...
primitive_integrals_virial...
cart_estimate_virial...

Definition at line 643 of file four_center_integral_methods.F.

Here is the call graph for this function:
Here is the caller graph for this function:

Variable Documentation

◆ pgf_product_list_size

integer, save, public four_center_integral_methods::pgf_product_list_size = 128

Definition at line 42 of file four_center_integral_methods.F.