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