pvtend.helmholtz.laplacian_spherical_fft

pvtend.helmholtz.laplacian_spherical_fft(phi: ndarray, lat: ndarray, dy: float, dlon_rad: float, R_earth: float = 6371000.0) ndarray[source]

Apply the spherical Laplacian using the SAME stencil as the Poisson solver.

Computes \(\nabla^2 \phi\) using the conservative-form spherical Laplacian identical to the one in solve_poisson_spherical_fft():

\[\nabla^2 \phi = \frac{1}{a^2 \cos^2\varphi} \frac{\partial^2 \phi}{\partial \lambda^2} + \frac{1}{a^2 \cos\varphi} \frac{\partial}{\partial \varphi} \left(\cos\varphi \frac{\partial \phi}{\partial \varphi}\right)\]

This function is the analysis (forward) operator conjugate to the Poisson solver, so laplacian_spherical_fft(solve_poisson(..., f), ...) == f to machine precision (interior points).

Parameters:
  • phi – Scalar field, shape (nlat, nlon).

  • lat – Latitude in degrees, shape (nlat,).

  • dy – Meridional grid spacing \(a \Delta\varphi\) [m].

  • dlon_rad – Longitudinal grid spacing \(\Delta\lambda\) [radians].

  • R_earth – Earth radius [m].

Returns:

\(\nabla^2 \phi\), shape (nlat, nlon). Boundary rows (j=0 and j=-1) are set to zero (Dirichlet).