![]() |
(git:1f9fd2c)
|
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 |
Routines for optimizing load balance between processes in HFX calculations.
| 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.
| [in,out] | bra | Pointer to the Bra_t structure to allocate. |
| [in] | max_npgf | Maximum number of primitives per shell. |
| [in] | max_ncell | Maximum number of neighbor cells. |
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.
| 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
| [in] | npgfa | Number of primitives in shell A |
| [in] | npgfb | Number of primitives in shell B |
| [out] | bra | Pointer to Bra_t structure to populate |
| [in] | screen1 | Screening coeffiecients for the AB pair based on most diffuse pgf |
| [in] | screen2 | Screening coeffiecients for the CD pair based on most diffuse pgf |
| [in] | pgf | Screening coeeficents for primitive gaussians |
| [in] | log10_pmax | Log10 of maximum integral prefactor |
| [in] | log10_eps_schwarz | Log10 of Schwarz screening threshold |
| [in] | ra | Cartesian coordinates of center A |
| [in] | rb | Cartesian coordinates of center B |
| [out] | nelements | Total number of valid primitives found |
| [in] | neighbor_cells | Array of lattice vectors |
| [in] | do_periodic | Logical flag for periodic boundary conditions on B |
Definition at line 115 of file hfx_pair_list_methods.F.
| 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 | ||
| ) |
...
| 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.
| 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 | ||
| ) |
...
| 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.
| 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 | ||
| ) |
...
| 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.
| 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 | ||
| ) |
...
| 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.
| 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 | ||
| ) |
...
| 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.
| integer, save, public hfx_pair_list_methods::pgf_product_list_size = 128 |
Definition at line 48 of file hfx_pair_list_methods.F.