(git:1f9fd2c)
Loading...
Searching...
No Matches
hfx_pair_list_methods Module Reference

Routines for optimizing load balance between processes in HFX calculations. More...

Data Types

type  bra_t
 

Functions/Subroutines

subroutine, public allocate_bra (bra, max_npgf, max_ncell)
 Allocates all arrays within a Bra_t structure.
 
subroutine, public build_pair_list_pbc_pgf (npgfa, npgfb, bra, screen1, screen2, pgf, log10_pmax, log10_eps_schwarz, ra, rb, nelements, neighbor_cells, do_periodic)
 Builds a screened list of primitives from centers A and B, intersecting with another shell.
 
subroutine, public build_pgf_product_list (list1, list2, product_list, nproducts, log10_pmax, log10_eps_schwarz, neighbor_cells, cell, potential_parameter, m_max, do_periodic)
 ...
 
subroutine, public build_pair_list_pgf (npgfa, npgfb, list, zeta, zetb, screen1, screen2, pgf, r_pgf, log10_pmax, log10_eps_schwarz, ra, rb, nelements, neighbor_cells, nimages, do_periodic)
 ...
 
subroutine, public build_pair_list (natom, list, set_list, i_start, i_end, j_start, j_end, kind_of, basis_parameter, particle_set, do_periodic, coeffs_set, coeffs_kind, coeffs_kind_max0, log10_eps_schwarz, cell, pmax_blocks, atomic_pair_list)
 ...
 
subroutine, public build_atomic_pair_list (natom, atomic_pair_list, kind_of, basis_parameter, particle_set, do_periodic, coeffs_kind, coeffs_kind_max0, log10_eps_schwarz, cell, blocks)
 ...
 
subroutine, public build_pair_list_mp2 (natom, list, set_list, i_start, i_end, j_start, j_end, kind_of, basis_parameter, particle_set, do_periodic, coeffs_set, coeffs_kind, coeffs_kind_max0, log10_eps_schwarz, cell, pmax_blocks, atomic_pair_list, skip_atom_symmetry)
 ...
 

Variables

integer, save, public pgf_product_list_size = 128
 

Detailed Description

Routines for optimizing load balance between processes in HFX calculations.

History
04.2008 created [Manuel Guidon] 11.2019 fixed initial value for potential_id (A. Bussy)
Author
Manuel Guidon

Function/Subroutine Documentation

◆ allocate_bra()

subroutine, public hfx_pair_list_methods::allocate_bra ( type(bra_t), pointer  bra,
integer  max_npgf,
integer  max_ncell 
)

Allocates all arrays within a Bra_t structure.

This subroutine ensures that a given Bra_t pointer has allocated memory for storing primitive Gaussian pair indices, screening data, and cell indices. Existing allocations are safely deallocated first.

Parameters
[in,out]braPointer to the Bra_t structure to allocate.
[in]max_npgfMaximum number of primitives per shell.
[in]max_ncellMaximum number of neighbor cells.
Note
The arrays are allocated as follows:
  • pgf_idx(3, max_npgf^2 * max_ncell)
  • pgf_scr(5, max_npgf^2 * max_ncell)
  • cell_idx(3, max_ncell)

Definition at line 76 of file hfx_pair_list_methods.F.

Here is the caller graph for this function:

◆ build_pair_list_pbc_pgf()

subroutine, public hfx_pair_list_methods::build_pair_list_pbc_pgf ( integer, intent(in)  npgfa,
integer, intent(in)  npgfb,
type(bra_t), pointer  bra,
real(dp), dimension(2), intent(in)  screen1,
real(dp), dimension(2), intent(in)  screen2,
type(hfx_screen_coeff_type), dimension(:, :), pointer  pgf,
real(dp), intent(in)  log10_pmax,
real(dp), intent(in)  log10_eps_schwarz,
real(dp), dimension(3), intent(in)  ra,
real(dp), dimension(3), intent(in)  rb,
integer, intent(out)  nelements,
type(hfx_cell_type), dimension(:), pointer  neighbor_cells,
logical, intent(in)  do_periodic 
)

Builds a screened list of primitives from centers A and B, intersecting with another shell.

This subroutine populates the Bra_t structure with indices and screening data for primitive Gaussian pairs (ipgf,jpgf,n3) that pass the Schwarz screening criterion

Parameters
[in]npgfaNumber of primitives in shell A
[in]npgfbNumber of primitives in shell B
[out]braPointer to Bra_t structure to populate
[in]screen1Screening coeffiecients for the AB pair based on most diffuse pgf
[in]screen2Screening coeffiecients for the CD pair based on most diffuse pgf
[in]pgfScreening coeeficents for primitive gaussians
[in]log10_pmaxLog10 of maximum integral prefactor
[in]log10_eps_schwarzLog10 of Schwarz screening threshold
[in]raCartesian coordinates of center A
[in]rbCartesian coordinates of center B
[out]nelementsTotal number of valid primitives found
[in]neighbor_cellsArray of lattice vectors
[in]do_periodicLogical flag for periodic boundary conditions on B
Note
Loops over all cells, shifting the B shell position accordingly Only pairs satisfying the screening condition are stored.
Each valid cell contributes a block of pairs stored contiguously in brapgf_idx, with cell metadata stored in bracell_idx
screening primitive pairs (ipgf, jpgf) using both coarse and fine screening thresholds

Definition at line 115 of file hfx_pair_list_methods.F.

Here is the caller graph for this function:

◆ build_pgf_product_list()

subroutine, public hfx_pair_list_methods::build_pgf_product_list ( type(hfx_pgf_list list1,
type(hfx_pgf_list list2,
type(hfx_pgf_product_list), dimension(:), intent(inout), allocatable  product_list,
integer, intent(out)  nproducts,
real(dp), intent(in)  log10_pmax,
real(dp), intent(in)  log10_eps_schwarz,
type(hfx_cell_type), dimension(:), pointer  neighbor_cells,
type(cell_type), pointer  cell,
type(hfx_potential_type potential_parameter,
integer, intent(in)  m_max,
logical, intent(in)  do_periodic 
)

...

Parameters
list1...
list2...
product_list...
nproducts...
log10_pmax...
log10_eps_schwarz...
neighbor_cells...
cell...
potential_parameter...
m_max...
do_periodic...

Definition at line 193 of file hfx_pair_list_methods.F.

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

◆ build_pair_list_pgf()

subroutine, public hfx_pair_list_methods::build_pair_list_pgf ( integer, intent(in)  npgfa,
integer, intent(in)  npgfb,
type(hfx_pgf_list), dimension(npgfa*npgfb)  list,
real(dp), dimension(1:npgfa), intent(in)  zeta,
real(dp), dimension(1:npgfb), intent(in)  zetb,
real(dp), dimension(2), intent(in)  screen1,
real(dp), dimension(2), intent(in)  screen2,
type(hfx_screen_coeff_type), dimension(:, :), pointer  pgf,
type(hfx_screen_coeff_type), dimension(:, :), pointer  r_pgf,
real(dp), intent(in)  log10_pmax,
real(dp), intent(in)  log10_eps_schwarz,
real(dp), dimension(3), intent(in)  ra,
real(dp), dimension(3), intent(in)  rb,
integer, intent(out)  nelements,
type(hfx_cell_type), dimension(:), pointer  neighbor_cells,
integer, dimension(npgfa*npgfb)  nimages,
logical, intent(in)  do_periodic 
)

...

Parameters
npgfa...
npgfb...
list...
zeta...
zetb...
screen1...
screen2...
pgf...
R_pgf...
log10_pmax...
log10_eps_schwarz...
ra...
rb...
nelements...
neighbor_cells...
nimages...
do_periodic...

Definition at line 469 of file hfx_pair_list_methods.F.

Here is the caller graph for this function:

◆ build_pair_list()

subroutine, public hfx_pair_list_methods::build_pair_list ( integer, intent(in)  natom,
type(pair_list_type), intent(inout)  list,
type(pair_set_list_type), dimension(:), intent(out)  set_list,
integer, intent(in)  i_start,
integer, intent(in)  i_end,
integer, intent(in)  j_start,
integer, intent(in)  j_end,
integer, dimension(*), intent(in)  kind_of,
type(hfx_basis_type), dimension(:), intent(in), pointer  basis_parameter,
type(particle_type), dimension(:), intent(in), pointer  particle_set,
logical, intent(in)  do_periodic,
type(hfx_screen_coeff_type), dimension(:, :, :, :), intent(in), pointer  coeffs_set,
type(hfx_screen_coeff_type), dimension(:, :), intent(in)  coeffs_kind,
real(kind=dp), intent(in)  coeffs_kind_max0,
real(kind=dp), intent(in)  log10_eps_schwarz,
type(cell_type), pointer  cell,
real(dp), intent(in)  pmax_blocks,
logical, dimension(natom, natom), intent(in)  atomic_pair_list 
)

...

Parameters
natom...
list...
set_list...
i_start...
i_end...
j_start...
j_end...
kind_of...
basis_parameter...
particle_set...
do_periodic...
coeffs_set...
coeffs_kind...
coeffs_kind_max0...
log10_eps_schwarz...
cell...
pmax_blocks...
atomic_pair_list...

Definition at line 588 of file hfx_pair_list_methods.F.

Here is the caller graph for this function:

◆ build_atomic_pair_list()

subroutine, public hfx_pair_list_methods::build_atomic_pair_list ( integer, intent(in)  natom,
logical, dimension(natom, natom)  atomic_pair_list,
integer, dimension(*), intent(in)  kind_of,
type(hfx_basis_type), dimension(:), intent(in), pointer  basis_parameter,
type(particle_type), dimension(:), intent(in), pointer  particle_set,
logical, intent(in)  do_periodic,
type(hfx_screen_coeff_type), dimension(:, :), intent(in)  coeffs_kind,
real(kind=dp), intent(in)  coeffs_kind_max0,
real(kind=dp), intent(in)  log10_eps_schwarz,
type(cell_type), pointer  cell,
type(hfx_block_range_type), dimension(:), intent(in), pointer  blocks 
)

...

Parameters
natom...
atomic_pair_list...
kind_of...
basis_parameter...
particle_set...
do_periodic...
coeffs_kind...
coeffs_kind_max0...
log10_eps_schwarz...
cell...
blocks...

Definition at line 683 of file hfx_pair_list_methods.F.

Here is the caller graph for this function:

◆ build_pair_list_mp2()

subroutine, public hfx_pair_list_methods::build_pair_list_mp2 ( integer, intent(in)  natom,
type(pair_list_type_mp2), intent(inout)  list,
type(pair_set_list_type), dimension(:), intent(out)  set_list,
integer, intent(in)  i_start,
integer, intent(in)  i_end,
integer, intent(in)  j_start,
integer, intent(in)  j_end,
integer, dimension(*), intent(in)  kind_of,
type(hfx_basis_type), dimension(:), intent(in), pointer  basis_parameter,
type(particle_type), dimension(:), intent(in), pointer  particle_set,
logical, intent(in)  do_periodic,
type(hfx_screen_coeff_type), dimension(:, :, :, :), intent(in), pointer  coeffs_set,
type(hfx_screen_coeff_type), dimension(:, :), intent(in)  coeffs_kind,
real(kind=dp), intent(in)  coeffs_kind_max0,
real(kind=dp), intent(in)  log10_eps_schwarz,
type(cell_type), pointer  cell,
real(dp), intent(in)  pmax_blocks,
logical, dimension(natom, natom), intent(in)  atomic_pair_list,
logical, intent(in), optional  skip_atom_symmetry 
)

...

Parameters
natom...
list...
set_list...
i_start...
i_end...
j_start...
j_end...
kind_of...
basis_parameter...
particle_set...
do_periodic...
coeffs_set...
coeffs_kind...
coeffs_kind_max0...
log10_eps_schwarz...
cell...
pmax_blocks...
atomic_pair_list...
skip_atom_symmetry...

Definition at line 769 of file hfx_pair_list_methods.F.

Here is the caller graph for this function:

Variable Documentation

◆ pgf_product_list_size

integer, save, public hfx_pair_list_methods::pgf_product_list_size = 128

Definition at line 48 of file hfx_pair_list_methods.F.