![]() |
(git:b77b4be)
|
Several screening methods used in HFX calcualtions. More...
Functions/Subroutines | |
subroutine, public | update_pmax_mat (pmax_set, map_atom_to_kind_atom, set_offset, atomic_block_offset, pmax_atom, full_density_alpha, full_density_beta, natom, kind_of, basis_parameter, nkind, is_assoc_atomic_block) |
updates the maximum of the density matrix in compressed form for screening purposes | |
subroutine, public | calc_screening_functions (qs_env, basis_parameter, lib, potential_parameter, coeffs_set, coeffs_kind, coeffs_pgf, radii_pgf, max_set, max_pgf, n_threads, i_thread, p_work) |
calculates screening functions for schwarz screening | |
subroutine, public | calc_pair_dist_radii (qs_env, basis_parameter, radii_pgf, max_set, max_pgf, eps_schwarz, n_threads, i_thread) |
calculates radius functions for longrange screening | |
Several screening methods used in HFX calcualtions.
subroutine, public hfx_screening_methods::update_pmax_mat | ( | type(hfx_p_kind), dimension(:), pointer | pmax_set, |
integer, dimension(:), pointer | map_atom_to_kind_atom, | ||
integer, dimension(:, :, :, :), pointer | set_offset, | ||
integer, dimension(:, :), pointer | atomic_block_offset, | ||
real(dp), dimension(:, :), pointer | pmax_atom, | ||
real(dp), dimension(:, :), pointer | full_density_alpha, | ||
real(dp), dimension(:, :), pointer | full_density_beta, | ||
integer, intent(in) | natom, | ||
integer, dimension(*) | kind_of, | ||
type(hfx_basis_type), dimension(:), pointer | basis_parameter, | ||
integer | nkind, | ||
integer, dimension(:, :) | is_assoc_atomic_block | ||
) |
updates the maximum of the density matrix in compressed form for screening purposes
pmax_set | buffer to store matrix |
map_atom_to_kind_atom | ... |
set_offset | ... |
atomic_block_offset | ... |
pmax_atom | ... |
full_density_alpha | ... |
full_density_beta | ... |
natom | ... |
kind_of | ... |
basis_parameter | ... |
nkind | ... |
is_assoc_atomic_block | ... |
Definition at line 134 of file hfx_screening_methods.F.
subroutine, public hfx_screening_methods::calc_screening_functions | ( | type(qs_environment_type), pointer | qs_env, |
type(hfx_basis_type), dimension(:), pointer | basis_parameter, | ||
type(cp_libint_t) | lib, | ||
type(hfx_potential_type) | potential_parameter, | ||
type(hfx_screen_coeff_type), dimension(:, :, :, :), pointer | coeffs_set, | ||
type(hfx_screen_coeff_type), dimension(:, :), pointer | coeffs_kind, | ||
type(hfx_screen_coeff_type), dimension(:, :, :, :, :, :), pointer | coeffs_pgf, | ||
type(hfx_screen_coeff_type), dimension(:, :, :, :, :, :), pointer | radii_pgf, | ||
integer, intent(in) | max_set, | ||
integer, intent(in) | max_pgf, | ||
integer, intent(in) | n_threads, | ||
integer, intent(in) | i_thread, | ||
real(dp), dimension(:), pointer | p_work | ||
) |
calculates screening functions for schwarz screening
qs_env | qs_env |
basis_parameter | ... |
lib | structure to libint |
potential_parameter | contains infos on potential |
coeffs_set | set based coefficients |
coeffs_kind | kind based coefficients |
coeffs_pgf | pgf based coefficients |
radii_pgf | coefficients for long-range screening |
max_set | Maximum Number of basis set sets in the system |
max_pgf | Maximum Number of basis set pgfs in the system |
n_threads | ... |
i_thread | Thread ID of current task |
p_work | ... |
(ab|ab) = (ab|ab)(Rab) = c2*Rab^2 + c0The missing linear term assures that the functions is monotonically decaying such that c2 can be used as upper bound when applying the Minimum Image Convention in the periodic case. Furthermore it seems to be a good choice to fit the logarithm of the (ab|ab) The fitting takes place at several levels: kind, set and pgf within the corresponding ranges of the prodiuct charge distributions Doing so, we only need arrays of size nkinds^2*2 instead of big screening matrices
Definition at line 300 of file hfx_screening_methods.F.
subroutine, public hfx_screening_methods::calc_pair_dist_radii | ( | type(qs_environment_type), pointer | qs_env, |
type(hfx_basis_type), dimension(:), pointer | basis_parameter, | ||
type(hfx_screen_coeff_type), dimension(:, :, :, :, :, :), pointer | radii_pgf, | ||
integer, intent(in) | max_set, | ||
integer, intent(in) | max_pgf, | ||
real(dp) | eps_schwarz, | ||
integer, intent(in) | n_threads, | ||
integer, intent(in) | i_thread | ||
) |
calculates radius functions for longrange screening
qs_env | qs_env |
basis_parameter | ... |
radii_pgf | pgf based coefficients |
max_set | Maximum Number of basis set sets in the system |
max_pgf | Maximum Number of basis set pgfs in the system |
eps_schwarz | ... |
n_threads | ... |
i_thread | Thread ID of current task |
(ab| = (ab(Rab) = c2*Rab^2 + c0
Definition at line 657 of file hfx_screening_methods.F.