HankelTransform#

HankelTransform is the low-level sampled radial transform used internally by HarmonicTransform. It is public for specialist calculations that already have one radial profile and an explicit momentum grid. Most four-center workflows should use HarmonicTransform.

class quartic2d.HankelTransform(nu, q, f_r, r, *, r_cutoff=None, method='simpson', interpolator='cubic', subdivisions=2, N=2048, h=None)#

Hankel transform of a sampled radial profile.

The convention is

\[F_\nu(q) = \int_0^\infty r f(r) J_\nu(qr)\,dr.\]
Parameters:
  • nu (int) – Angular-harmonic order of the transform. Only abs(nu) enters the Bessel function; the sign is retained so negative PETAL2D harmonics use the package’s phase convention consistently.

  • q (array_like) – Momentum values at which the transform is evaluated directly. They must be finite, non-negative, and strictly increasing.

  • f_r (array_like) – Sampled radial profile to transform. f_r[i] is the value at r[i].

  • r (array_like) – Real-space radial coordinates of f_r. These are the physical input samples; quadrature refinement interpolates between them but does not create new input information.

  • r_cutoff (float or None, optional) – Largest radius included in the represented profile. Samples beyond it are ignored. None uses the entire supplied radial interval.

  • method ({'trapezoid', 'simpson', 'gl4', 'gl8', 'ogata'}, default='simpson') – Numerical rule used to evaluate the radial integral. Simpson is the release default. Method-specific convergence and validation behavior is documented separately from this constructor contract.

  • interpolator ({'linear', 'cubic', 'pchip'}, default='cubic') – How the sampled radial profile is evaluated between input grid points during quadrature. Cubic interpolation is the benchmarked default.

  • subdivisions (int, default=2) – Refinement of each original radial interval for finite-grid methods. With subdivisions=2, each original radial interval is split once before composite integration. Larger values increase radial integration resolution at approximately linear additional cost.

  • N (int, default=2048) – Number of Ogata nodes when method='ogata'. It is ignored by the finite-grid methods.

  • h (float or None, optional) – Ogata spacing/resolution parameter. None uses pi/N. It is ignored by finite-grid methods.

F_q#

Transform values on q.

Type:

ndarray

Methods#

set_method(method, *[, subdivisions, N, h])

Select the radial quadrature and recompute the transform.

set_interpolator(interpolator)

Select the radial interpolator and recompute the transform.

converge(*[, rtol, atol, subdivisions, ...])

Refine the active radial quadrature on the current input grids.