(git:9ccafda)
Loading...
Searching...
No Matches
ai_cartesian_operators Module Reference

Coordinate and basis-center derivative ladders for Cartesian Gaussian integrals. Derivatives act on a basis function with the integral operator held fixed. Electronic-coordinate derivatives have the opposite sign. More...

Data Types

interface  cartesian_ladder
interface  apply_cartesian_1d

Functions/Subroutines

subroutine, public cartesian_ladder_map (lmax, lmin, axis, map, source_lmin)
 Construct base, raised, lowered and degree indices for a Cartesian ladder.
subroutine, public apply_cartesian_operator (la_max, la_min, npgfa, lb_max, lb_min, npgfb, ab, values, right, derivative, exponents, origin)
 Apply a Cartesian operator on either side of a primitive integral block. The input includes one extra shell on both sides. Coordinate multiplication uses the supplied shell-range layout; derivative inputs extend the lowest shell by one on the selected side for lowering. Screened primitive blocks must be zero in the input, including their raised and lowered functions.
subroutine, public cartesian_polynomial_1d (source, values, la_max, lb_max, powers, origin)
 Form requested coordinate powers from separable Cartesian integral tables. Only requested powers are stored. With the origin on A, each power is a direct shift of the bra degree; other origins use the binomial expansion.

Detailed Description

Coordinate and basis-center derivative ladders for Cartesian Gaussian integrals. Derivatives act on a basis function with the integral operator held fixed. Electronic-coordinate derivatives have the opposite sign.

Function/Subroutine Documentation

◆ cartesian_ladder_map()

subroutine, public ai_cartesian_operators::cartesian_ladder_map ( integer, intent(in) lmax,
integer, intent(in) lmin,
integer, intent(in) axis,
integer, dimension(:, :), intent(out) map,
integer, intent(in), optional source_lmin )

Construct base, raised, lowered and degree indices for a Cartesian ladder.

Parameters
lmaxhighest output shell or one-dimensional degree
lminlowest output shell (zero for one-dimensional tables)
axisCartesian axis, or zero for a one-dimensional table
maprows contain base, raised, lowered and degree indices
source_lminoptional lowest input shell; defaults to lmin for Cartesian blocks

Definition at line 45 of file ai_cartesian_operators.F.

Here is the caller graph for this function:

◆ apply_cartesian_operator()

subroutine, public ai_cartesian_operators::apply_cartesian_operator ( integer, intent(in) la_max,
integer, intent(in) la_min,
integer, intent(in) npgfa,
integer, intent(in) lb_max,
integer, intent(in) lb_min,
integer, intent(in) npgfb,
real(kind=dp), dimension(:, :), intent(in) ab,
real(kind=dp), dimension(:, :, :), intent(out) values,
logical, intent(in) right,
logical, intent(in) derivative,
real(kind=dp), dimension(:), intent(in), optional exponents,
real(kind=dp), dimension(3), intent(in), optional origin )

Apply a Cartesian operator on either side of a primitive integral block. The input includes one extra shell on both sides. Coordinate multiplication uses the supplied shell-range layout; derivative inputs extend the lowest shell by one on the selected side for lowering. Screened primitive blocks must be zero in the input, including their raised and lowered functions.

Parameters
la_maxhighest output shell on A
la_minlowest output shell on A
npgfanumber of primitives on A
lb_maxhighest output shell on B
lb_minlowest output shell on B
npgfbnumber of primitives on B
abinput integral block with raised shells
valuesthree Cartesian components in the output shell-range layout
rightact on the ket rather than the bra
derivativeselect a basis-center derivative
exponentsGaussian exponents on the selected side, required for derivatives
origindisplacement of the selected center from the coordinate reference point

Definition at line 190 of file ai_cartesian_operators.F.

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

◆ cartesian_polynomial_1d()

subroutine, public ai_cartesian_operators::cartesian_polynomial_1d ( real(kind=dp), dimension(0:, 0:, :), intent(in) source,
real(kind=dp), dimension(0:, 0:, 0:, :), intent(out) values,
integer, intent(in) la_max,
integer, intent(in) lb_max,
integer, dimension(0:), intent(in) powers,
real(kind=dp), dimension(3), intent(in) origin )

Form requested coordinate powers from separable Cartesian integral tables. Only requested powers are stored. With the origin on A, each power is a direct shift of the bra degree; other origins use the binomial expansion.

Parameters
sourceinput tables with enough raised bra degrees for the largest power
valuestables indexed by bra degree, ket degree, requested power and axis
la_maxhighest output degree on A
lb_maxhighest output degree on B
powersnonnegative coordinate powers to evaluate
origindisplacement of A from the coordinate reference point

Definition at line 321 of file ai_cartesian_operators.F.

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