(git:f2099e5)
Loading...
Searching...
No Matches
gw_ri_rs_utils Module Reference

Common setup operations used by the periodic and non-periodic GW RI-RS implementations. More...

Functions/Subroutines

subroutine, public precompute_ri_rs_radii (bs_env)
 Compute per-atom AO and RI basis radii from the most diffuse Gaussian primitive in the AO ("ORB") and RI auxiliary ("RI_AUX") basis sets. Stores results in bs_envri_rsradius_ao_per_atom(:) and bs_envri_rsradius_ri_per_atom(:) and prints a per-atom table. Radius: r_kind = sqrt(-log(eps)/alpha_min_kind), with eps = eps_filter.
subroutine, public filter_grid_to_voronoi (points, icenter_atom, particle_set, mask, atom_indices)
 Retain source-grid points inside the Voronoi volume of one atom.
subroutine, public get_rirs_cluster_atoms (particle_set, cell, icenter_atom, radius, atom_indices)
 Form C_A from nuclei within the specified radius, in global atom order.
subroutine, public evaluate_ao_on_points (phi, grid_points, iatom, particle_set, qs_kind_set, cell, dphi, cutoff_squared)
 Evaluate contracted spherical AOs, and optionally their grid-coordinate derivatives.
subroutine, public evaluate_ao_basis_on_points (phi, grid_points, basis, source_position, cell, dphi, cutoff_squared)
 Evaluate one explicitly supplied contracted Gaussian basis on Cartesian points.

Detailed Description

Common setup operations used by the periodic and non-periodic GW RI-RS implementations.

Function/Subroutine Documentation

◆ precompute_ri_rs_radii()

subroutine, public gw_ri_rs_utils::precompute_ri_rs_radii ( type(post_scf_bandstructure_type), pointer bs_env)

Compute per-atom AO and RI basis radii from the most diffuse Gaussian primitive in the AO ("ORB") and RI auxiliary ("RI_AUX") basis sets. Stores results in bs_envri_rsradius_ao_per_atom(:) and bs_envri_rsradius_ri_per_atom(:) and prints a per-atom table. Radius: r_kind = sqrt(-log(eps)/alpha_min_kind), with eps = eps_filter.

Parameters
bs_envBand-structure environment containing GW parameters.

Definition at line 44 of file gw_ri_rs_utils.F.

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

◆ filter_grid_to_voronoi()

subroutine, public gw_ri_rs_utils::filter_grid_to_voronoi ( real(kind=dp), dimension(:, :), intent(inout), allocatable points,
integer, intent(in) icenter_atom,
type(particle_type), dimension(:), pointer particle_set,
logical, dimension(:), intent(out), optional mask,
integer, dimension(:), intent(in), optional atom_indices )

Retain source-grid points inside the Voronoi volume of one atom.

Parameters
pointsSource-grid coordinates on entry and Voronoi-filtered coordinates on return.
icenter_atomAtom whose Voronoi volume is retained.
particle_setMolecular atom positions.
maskOptional membership mask; if present, leave points unchanged.
atom_indicesOptional subset of nuclei defining the Voronoi partition.

Definition at line 122 of file gw_ri_rs_utils.F.

Here is the caller graph for this function:

◆ get_rirs_cluster_atoms()

subroutine, public gw_ri_rs_utils::get_rirs_cluster_atoms ( type(particle_type), dimension(:), pointer particle_set,
type(cell_type), pointer cell,
integer, intent(in) icenter_atom,
real(kind=dp), intent(in) radius,
integer, dimension(:), intent(out), allocatable atom_indices )

Form C_A from nuclei within the specified radius, in global atom order.

Parameters
particle_setMolecular nuclei.
cellSimulation cell.
icenter_atomCentral atom A.
radiusCluster radius.
atom_indicesCluster atom indices including A.

Definition at line 184 of file gw_ri_rs_utils.F.

Here is the caller graph for this function:

◆ evaluate_ao_on_points()

subroutine, public gw_ri_rs_utils::evaluate_ao_on_points ( real(kind=dp), dimension(:, :), intent(inout) phi,
real(kind=dp), dimension(:, :), intent(in) grid_points,
integer, intent(in) iatom,
type(particle_type), dimension(:), pointer particle_set,
type(qs_kind_type), dimension(:), pointer qs_kind_set,
type(cell_type), pointer cell,
real(kind=dp), dimension(:, :, :), intent(inout), optional dphi,
real(kind=dp), intent(in), optional cutoff_squared )

Evaluate contracted spherical AOs, and optionally their grid-coordinate derivatives.

For atom A and displacement d(alpha)=r_l(alpha)-R_A(alpha), the value is

ϕ_μ(r_l) = Σ_(p,c) S_(pc,μ) d_x^lx d_y^ly d_z^lz exp(-ζ_p |d|^2).

The optional derivative is evaluated analytically as

d ϕ_μ(r_l)/d r_(l,α) = sum_(p,c) S_(pc,mu) exp(-zeta_p |d|^2) [d polynomial_c/d d_alpha - 2 zeta_p d_alpha polynomial_c].

Parameters
phiAO values, accumulated into phi(l,mu).
grid_pointsCartesian grid points, indexed (alpha,l).
iatomSource atom whose contracted AOs are evaluated.
particle_setMolecular particles.
qs_kind_setQuickstep atomic kinds containing the ORB bases.
cellSimulation cell used for the minimum-image displacement.
dphiOptional AO derivatives, accumulated into dphi(alpha,l,mu).
cutoff_squaredOptional squared AO cutoff radius.

Definition at line 227 of file gw_ri_rs_utils.F.

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

◆ evaluate_ao_basis_on_points()

subroutine, public gw_ri_rs_utils::evaluate_ao_basis_on_points ( real(kind=dp), dimension(:, :), intent(inout) phi,
real(kind=dp), dimension(:, :), intent(in) grid_points,
type(gto_basis_set_type), pointer basis,
real(kind=dp), dimension(3), intent(in) source_position,
type(cell_type), pointer cell,
real(kind=dp), dimension(:, :, :), intent(inout), optional dphi,
real(kind=dp), intent(in), optional cutoff_squared )

Evaluate one explicitly supplied contracted Gaussian basis on Cartesian points.

Parameters
phiAO values, accumulated into phi(l,mu).
grid_pointsCartesian grid points, indexed (alpha,l).
basisContracted Gaussian basis to evaluate.
source_positionCentre of the basis.
cellSimulation cell used for the minimum-image displacement.
dphiOptional AO derivatives, accumulated into dphi(alpha,l,mu).
cutoff_squaredOptional squared AO cutoff radius.

Definition at line 274 of file gw_ri_rs_utils.F.

Here is the caller graph for this function: