![]() |
(git:f7b9015)
|
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_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) |
| ... | |
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. |
Definition at line 65 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 104 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 189 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 284 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 370 of file hfx_pair_list_methods.F.