(git:0a7030e)
Loading...
Searching...
No Matches
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
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

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: