Skip to content

Changelog

0.0.39 (2026-03-24)

Features

  • expose functional boundary helpers for wall, padding, and corners (19312bf)
  • expose functional boundary helpers for wall, padding, and corners (#152) (0d7277a)
  • expose raw face fluxes as public functional API (6298323)
  • expose raw face fluxes as public functional API (#143) (291be3b)
  • expose reconstruction pipeline as public functional API (47748d4)
  • expose reconstruction pipeline as public functional API (#151) (945f15d)

Bug Fixes

0.0.38 (2026-03-24)

Features

  • upgrade spectraldiffx dependency to >=0.0.10 (af8c9a8)
  • upgrade spectraldiffx to >=0.0.10 (336e7a2)

Bug Fixes

  • address PR review comments (3871618)
  • address PR review comments on advection tests (8d873f3)
  • nyström preconditioner false convergence with low rank (#187) (91080d2)
  • Nyström preconditioner full-rank correction for low-rank usage (#187) (a0517ea)
  • use non-trivial mask in Nystrom masked-domain test (61b749f)
  • weno7/9 right-biased reconstruction for negative flow (c906949)
  • WENO7/9 right-biased reconstruction for negative flow (ad07fa6), closes #191

0.0.37 (2026-03-20)

Features

  • docs: add three advection tutorial notebooks (1e12210)

Bug Fixes

  • address PR #184 review comments (afe7428)
  • address PR #184 review comments (round 2) (8eaa904)
  • advection: correct right-biased WENO reconstruction for negative flow (db5b079)
  • docs: add notebook symlinks so mkdocs-jupyter can find them (5d9fecf)
  • docs: correct image paths — use ../../images/ for mkdocs-jupyter (ef0f18b)
  • docs: embed all figures as markdown images for non-executed rendering (98c776b)
  • docs: enable MathJax rendering in mkdocs-jupyter notebooks (42cf22d)
  • docs: move notebooks to docs/ and embed figures for mkdocs rendering (81be84d)
  • docs: remove restrictive MathJax class filter breaking notebook math (1549298)
  • docs: use constrained_layout for masked advection plots (b91a05b)

0.0.36 (2026-03-19)

Bug Fixes

  • address PR review feedback (a7484b0)
  • resolve docs build failure and reorganize API reference (0a01584)
  • resolve docs build failure from spectraldiffx re-exports (30969d4)

0.0.35 (2026-03-18)

Features

  • add spherical compound operators (divergence, vorticity, laplacian) (d96505f)
  • add SphericalArakawaCGrid2D and SphericalArakawaCGrid3D (d66186c)
  • add SphericalDifference2D/3D and extract _safe_div_cos utility (0cb35a6)
  • export spherical operators and fix CI issues (820f3e0)
  • introduce spherical Arakawa C-grid operators (d277ead)

Bug Fixes

  • zero z-ghost slices in 3D spherical operators (bff01e9)

0.0.34 (2026-03-17)

Bug Fixes

  • export interior() and fix 1D jaxtyping shape strings (06bdede)

0.0.33 (2026-03-17)

Bug Fixes

  • correct _interp_T_to_X stencil to match Interpolation2D.T_to_X (4852194)
  • remove unrelated files accidentally committed (116a640)
  • zero z-ghost slices in Vorticity3D.relative_vorticity (f5a3d44)

0.0.32 (2026-03-17)

Features

  • add QG/SWM convenience utilities (d7cf5bc)
  • add QG/SWM convenience utilities (closes #153) (4c749ca)
  • add shallow-water PV from prognostic variables (db73d3e)

Bug Fixes

  • address PR review comments on docstrings (4e619b5)

0.0.31 (2026-03-13)

Bug Fixes

  • resolve ty 0.0.23 invalid-argument-type errors in upwind_flux callers (f94d008)

0.0.30 (2026-03-13)

Features

  • solvers: add geometric multigrid Helmholtz solver (f33c687), closes #71

Bug Fixes

  • docs: configure MathJax equation rendering with $ delimiters (51313c9)
  • solvers: add QR orthogonalization to Nyström preconditioner (981312d)
  • solvers: address PR review comments on multigrid (c37166e)

0.0.29 (2026-03-13)

Features

  • solvers: add convenience wrappers and refactor elliptic module (8b9d233), closes #87
  • solvers: add elliptic solver wrappers and modularize solver package (78b0d4d)
  • solvers: add preconditioners module with spectral and Nyström methods (b1e60fb)

Bug Fixes

  • solvers: address PR review comments on elliptic module (014bf95)
  • solvers: make _spectral_solve vmap-safe by using Helmholtz dispatch unconditionally (a19f5ca)
  • tests: make Nyström CG test robust to convergence edge cases (62f3f34)

0.0.28 (2026-03-12)

Features

  • elliptic: make spectral Helmholtz solvers vmap-compatible (9b6d51d), closes #86
  • elliptic: make spectral solvers vmap-compatible (248ac5d)
  • solvers: add tridiagonal (TDMA) solver (6d9e485)
  • solvers: add tridiagonal (TDMA) solver wrapping lineax (1802ea6), closes #85

Bug Fixes

  • elliptic: guard only (0,0) null mode, not full spectrum (3c9f24e)
  • tridiagonal: document lineax throw=True error handling for singular systems (60a0814)

0.0.27 (2026-03-12)

Features

  • add time integration module (Epic #111) (443d571)
  • timestepping: add diffrax Butcher tableau solvers and solve_ocean_pde (95657c6)
  • timestepping: add pure functional time integrators (c9c7c03)
  • timestepping: export all time integration symbols from finitevolx (1ae8f0c)

Bug Fixes

  • address PR review comments for time integration module (735a3b8)
  • timestepping: resolve ty type checker errors in diffrax solvers (d9c0c2d)

0.0.26 (2026-03-12)

Features

  • scripts: add eta output and spinup phase to QG model (ada93ea)

Bug Fixes

  • correct double-gyre script physics and BCs (0432d2a)
  • scripts: address PR review comments (2495633)
  • scripts: correct wind sign and switch SWM to closed-basin BCs (d526fc2)

0.0.25 (2026-03-12)

Features

  • add diagnostic and geographic operators (fe71938)
  • diagnostics: add strain, enstrophy, QG PV, and conservation operators (040079d)
  • export diagnostic and geographic operators from package (2b4f7af)
  • operators: add spherical geographic operators (83f6274)

Bug Fixes

  • geographic: add pole guard and address PR review comments (77fdb10)

0.0.24 (2026-03-11)

Bug Fixes

  • masks: correct psi_irrbound index offset and x/y swap (add4d36)
  • masks: correct vorticity boundary adjacency at w-points (648099f)
  • notebooks: use correct from_interior API (Lx/Ly not dx/dy) (a158663)
  • tests: replace ambiguous multiplication sign with ASCII x (84332db)

0.0.23 (2026-03-11)

Features

  • bc: add Robin and Extrapolation boundary conditions (9c1fec3)
  • bc: add Robin and Extrapolation boundary conditions (36ea563)

0.0.22 (2026-03-11)

Features

  • add mask parameter to Advection2D and Advection3D (4545060)

Bug Fixes

  • add input validation and NaN-safe blending to upwind_flux (87357c4)

0.0.21 (2026-03-11)

Features

  • add multilayer() vmap helper to lift 2D operators over layer/mode batch axis (0848cfd)
  • add multilayer() vmap helper, tests, and docs page (e1f8c8b)

Bug Fixes

  • address review comments on multilayer helper (20bd2ba)

0.0.20 (2026-03-11)

Features

  • add biharmonic (∇⁴) diffusion operator for C-grid staggered models (80c22ad)
  • add Coriolis force operator for staggered C-grid models (9ce3f8d)
  • add Coriolis force operator for staggered C-grid models (b0d70b6)
  • add harmonic and biharmonic (∇⁴) diffusion operators for C-grid staggered models (6a31f5d)
  • add horizontal diffusion operator (flux-form) for C-grid staggered models (319ce69)
  • add horizontal diffusion operator (flux-form) for C-grid staggered models (44c0638)
  • merge main (PR #97) — reconcile with Diffusion2D/3D/diffusion_2d (1a3408d)

Bug Fixes

  • address PR review comments on diffusion module (d8d9390)
  • address PR review comments on diffusion operator (8442ead)

0.0.19 (2026-03-11)

Features

  • add Arakawa (1966) Jacobian operator for energy- and enstrophy-conserving advection (beb6e9a)
  • add Arakawa (1966) Jacobian operator for energy- and enstrophy-conserving advection (c7610f6)
  • add energy-conserving momentum advection operator for C-grid models (8ea2a21)
  • add energy-conserving momentum advection operator for C-grid models (db36273)
  • add multi-layer vertical coupling matrix and layer↔mode transforms (8cdafe9)
  • add vertical coupling matrix (A) and layer↔mode transforms (aa45bcc)

Bug Fixes

  • address PR review - JAX-jittable vertical modes, fix annotations and docstring (8fbf23a)
  • address PR review comments - fix jaxtyping shape annotation and test import path (3ed8077)
  • resolve I001 import-sort error in tests and run ruff check on full repo (9316961)
  • resolve ruff lint errors in test_momentum.py (6faa3a2)
  • restrict momentum advection write region and enable x64 in tests (3686fae)

0.0.18 (2026-03-11)

Features

  • add grad_perp operator to Difference2D for geostrophic velocity (09ecb96)
  • add grad_perp operator to Difference2D for geostrophic velocity (fad6966)
  • add Slip1D — free/no/partial-slip boundary condition for tangential velocity (591a551)
  • add SlipBC1D boundary condition for tangential velocity at solid walls (8e7a9fa)
  • add standalone Divergence2D / divergence_2d operator (56e4f0f)
  • add standalone Divergence2D / divergence_2d operator (522c98b)

Bug Fixes

  • address PR review - noflux 4-wall BC, dtype promotion, transform coverage (940035b)
  • use direct stencil in grad_perp to avoid ghost-cell contamination (1d80ccc)

0.0.17 (2026-03-10)

Features

  • add WENO7 and WENO9 advection schemes (6fd9ebc)

0.0.16 (2026-03-10)

Features

  • replace static PNG comparison plots with animated GIFs (ebf4b18)
  • replace static PNG comparison plots with animated GIFs (9d813d1)

Bug Fixes

  • address reviewer feedback on GIF animation changes (94ebc36)

0.0.15 (2026-03-10)

Features

  • add TVD flux limiters, masked TVD schemes, and advection method support (863b3ac)
  • flux limiters and masked advection schemes (7fc7654)

Bug Fixes

  • correct inaccurate comment on TVD stencil size in tvd_x_masked (39db0c2)
  • keep jaxtyping shape strings compatible with ruff and ty (263f491)

0.0.14 (2026-03-10)

Bug Fixes

  • correct physical formulation in all three double-gyre example scripts (3bafe48)
  • correct QG 1.5-layer PV formulation, drag, beta term, and forcing amplitude (758c377)
  • correct wind sign, nonlinear SWM Bernoulli double-counting, and Coriolis staggering (4adb0eb)

0.0.13 (2026-03-08)

Bug Fixes

  • convert QG example from periodic beta-plane to closed-basin double-gyre (b132e8e)
  • convert QG example from periodic beta-plane to closed-basin double-gyre (10a253d)

0.0.12 (2026-03-07)

Bug Fixes

  • address operator dtype and fixture review feedback (e2d6afc)
  • Advection3D ghost flux bug; add U/V/X ghost cell tests; update instructions and figures (a4ca415)
  • correct Arakawa C-grid operators, ghost-cell tests for all staggered types, and agent instructions (d0c3c8c)
  • correct operators, add non-constant tests, document C-grid discretization (5a1e831)
  • rewrite kinetic_energy and bernoulli_potential for Arakawa C-grid same-size convention (06d8c9a)

0.0.11 (2026-03-07)

Features

  • modernize double gyre example scripts (1189ede)

Bug Fixes

  • address example script review feedback (c09953d)
  • tune double gyre example diagnostics (65c0fe6)
  • use corner-based qg geostrophic mapping (e6f995d)

0.0.10 (2026-03-07)

Features

  • add per-side boundary condition API for 2D ghost-ring fields (928e0b5)

Bug Fixes

  • correct Neumann face signs and exports (b08cdfa)

0.0.9 (2026-03-07)

Features

  • add capacitance matrix solver and preconditioned CG (3b96918)
  • add spectral transforms and core elliptic solvers (DST/DCT/FFT) (3674204)
  • integrate JAX spectral transforms, elliptic solvers, capacitance matrix method, and lineax-based PCG into finitevolX (e8f0191)

Bug Fixes

  • handle lambda_=0 in solve_helmholtz_dct and solve_helmholtz_fft (72ec96b)
  • resolve ruff lint errors in test files (RUF059, RUF003) (cc9400a)

0.0.8 (2026-03-03)

Features

  • adopt pypackage_template standards and best practices (71afd3e)

Bug Fixes

  • correct API reference documentation to use actual exported functions (4dc1804)

0.0.7 (2026-03-01)

Features

  • add mask-aware reconstruction methods to Reconstruction2D and Reconstruction3D (35442d0)
  • add mask-aware WENO5/WENOZ5 reconstruction to Reconstruction2D and Reconstruction3D (ef39e9f)

0.0.6 (2026-03-01)

Bug Fixes

  • move operator tests to tests/ directory per AGENTS.md (5b74582)
  • use lazy import for finitediffx in operators.py (fe0b5f8)

0.0.5 (2026-03-01)

Bug Fixes

  • cgrid_mask: define Nirr type alias to resolve ty check error on Python 3.13 (caa558b)

0.0.4 (2026-03-01)

Features

  • add unified ArakawaCGridMask; remove legacy MaskGrid/FaceMask/NodeMask/CenterMask (d11b995)

Bug Fixes

  • add missing quotes around Nirr in jaxtyping annotations (fdd4ef6)

0.0.3 (2026-03-01)

Bug Fixes

  • apply ruff format to reconstruction.py (560a766)

0.0.2 (2026-03-01)

Features

  • composable arakawa c-grid operators, modernize packaging, and fix linting (3b3e94d)

Bug Fixes

  • adjust advection write region to avoid ghost-ring fluxes, add upwind2/3 value tests (da4958a)
  • correct advection flux indexing and simplify upwind2 negative flow test (6bdc730)
  • correct upwind2/upwind3 boundary fallback in reconstruction methods (6da7971)
  • fix ty invalid-argument-type errors properly (79dd5fa)
  • rename param u->v in Difference3D.diff_y_V_to_T; fix grid docstring coordinates (ca05743)
  • replace JAX array assertions with np.testing and handle division by zero in PV (83dcdd2)
  • resolve remaining ruff linting errors (unused vars, format strings) (6a71085)
  • resolve ruff and ty linting issues, remove coverage constraints (e520f4f)
  • suppress ty invalid-argument-type errors in pyproject.toml (cde1a59)
  • suppress ty invalid-argument-type errors in pyproject.toml (84bfddb)
  • widen step_size type in difference() and convert test arrays to jnp (ab38caa)

Changelog