(git:08825b9)
Loading...
Searching...
No Matches
upf_local_integrals Module Reference

Local UPF matrix elements from the original radial potential. The Gaussian core electrostatics supplies -Z erf(sqrt(alpha)*r)/r. Its complement is integrated with analytic angles and radial quadrature. Gaussian products, center derivatives and RI integrals share this operator. More...

Data Types

type  upf_local_type

Functions/Subroutines

subroutine, public upf_local_init (pot, alpha, degree, local, eps)
 Prepare the short-range local potential outside parallel regions.
subroutine, public upf_local_matrix (local, la, alpha, lb, beta, rab, rac, v, da, db)
 Evaluate primitive three-center local integrals by the Gaussian product theorem.
subroutine, public upf_local_ri (local, la, zeta, rac, v, dv)
 Local potential against a single Cartesian Gaussian for RI.

Detailed Description

Local UPF matrix elements from the original radial potential. The Gaussian core electrostatics supplies -Z erf(sqrt(alpha)*r)/r. Its complement is integrated with analytic angles and radial quadrature. Gaussian products, center derivatives and RI integrals share this operator.

Function/Subroutine Documentation

◆ upf_local_init()

subroutine, public upf_local_integrals::upf_local_init ( type(atom_upfpot_type), intent(in) pot,
real(kind=dp), intent(in) alpha,
integer, intent(in) degree,
type(upf_local_type), intent(inout) local,
real(kind=dp), intent(in), optional eps )

Prepare the short-range local potential outside parallel regions.

Parameters
potOriginal UPF data, with PP_LOCAL already converted to Hartree.
alphaGaussian core-charge exponent, not its screening radius.
degreeLargest Gaussian product degree, including derivatives or moments.
localImmutable integration data. Reinitialization retains its threshold.
epsOptional threshold for estimating the potential's neighbor-list radius. This is NOT an integration tolerance: EPS_PPL is normally 1e-2. All original radial samples, including the tail, enter the quadrature.

Definition at line 51 of file upf_local_integrals.F.

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

◆ upf_local_matrix()

subroutine, public upf_local_integrals::upf_local_matrix ( type(upf_local_type), intent(in) local,
integer, intent(in) la,
real(kind=dp), dimension(:), intent(in) alpha,
integer, intent(in) lb,
real(kind=dp), dimension(:), intent(in) beta,
real(kind=dp), dimension(3), intent(in) rab,
real(kind=dp), dimension(3), intent(in) rac,
real(kind=dp), dimension(:, :), intent(out) v,
real(kind=dp), dimension(:, :, :), intent(out), optional da,
real(kind=dp), dimension(:, :, :), intent(out), optional db )

Evaluate primitive three-center local integrals by the Gaussian product theorem.

Parameters
localPrepared radial potential.
laLargest Cartesian degree at A; all degrees 0..la are returned.
alphaPrimitive exponents at A.
lbLargest Cartesian degree at B; all degrees 0..lb are returned.
betaPrimitive exponents at B.
rabB minus A.
racPotential center C minus A.
vMatrix elements in primitive-major Cartesian order.
daOptional derivatives with respect to A, at fixed B and C.
dbOptional derivatives with respect to B, at fixed A and C. The derivative with respect to C is -(da+db).

Definition at line 114 of file upf_local_integrals.F.

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

◆ upf_local_ri()

subroutine, public upf_local_integrals::upf_local_ri ( type(upf_local_type), intent(in) local,
integer, intent(in) la,
real(kind=dp), dimension(:), intent(in) zeta,
real(kind=dp), dimension(3), intent(in) rac,
real(kind=dp), dimension(:), intent(out) v,
real(kind=dp), dimension(:, :), intent(out), optional dv )

Local potential against a single Cartesian Gaussian for RI.

Parameters
localPrepared radial potential.
laLargest Cartesian degree.
zetaPrimitive exponents.
racPotential center minus Gaussian center.
vPrimitive-major Cartesian integrals.
dvOptional Gaussian-center derivatives, in x,y,z order.

Definition at line 238 of file upf_local_integrals.F.

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