(git:3add494)
hfx_screening_methods Module Reference

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 More...
 
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 More...
 
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 More...
 

Detailed Description

Several screening methods used in HFX calcualtions.

History
04.2008 created [Manuel Guidon]
Author
Manuel Guidon

Function/Subroutine Documentation

◆ update_pmax_mat()

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

Parameters
pmax_setbuffer 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...
History
09.2007 created [Manuel Guidon]
Author
Manuel Guidon
Note
  • updates for each pair of shells the maximum absolute value of p

Definition at line 134 of file hfx_screening_methods.F.

Here is the caller graph for this function:

◆ calc_screening_functions()

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

Parameters
qs_envqs_env
basis_parameter...
libstructure to libint
potential_parametercontains infos on potential
coeffs_setset based coefficients
coeffs_kindkind based coefficients
coeffs_pgfpgf based coefficients
radii_pgfcoefficients for long-range screening
max_setMaximum Number of basis set sets in the system
max_pgfMaximum Number of basis set pgfs in the system
n_threads...
i_threadThread ID of current task
p_work...
History
02.2009 created [Manuel Guidon]
Author
Manuel Guidon
Note
This routine calculates (ab|ab) for different distances Rab = |a-b| and uses the powell optimiztion routines in order to fit the results in the following form:
       (ab|ab) = (ab|ab)(Rab) = c2*Rab^2 + c0
The 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.

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

◆ calc_pair_dist_radii()

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

Parameters
qs_envqs_env
basis_parameter...
radii_pgfpgf based coefficients
max_setMaximum Number of basis set sets in the system
max_pgfMaximum Number of basis set pgfs in the system
eps_schwarz...
n_threads...
i_threadThread ID of current task
History
02.2009 created [Manuel Guidon]
Author
Manuel Guidon
Note
This routine calculates the pair-distribution radius of a product Gaussian and uses the powell optimiztion routines in order to fit the results in the following form:
       (ab| = (ab(Rab) = c2*Rab^2 + c0

Definition at line 657 of file hfx_screening_methods.F.

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