Changelog
This document provides a brief summary of changes in each released version of pyqg-jax. More information and release builds are also available on the GitHub releases page.
v0.9.0 (Unreleased)
Add enstrophy spectrum calculation
ens_spec_vals()Improve some error messages (include additional details)
Precisionenum members now have attributesdtype_realanddtype_complexstoring the dtypes used at each precision level.Update
AB3StepperandEulerStepperto ensure consistent behavior regardless of thedtparameter’s precision and preventing errors when it does not have weak type (i.e. when it is not a Pythonfloat).Breaking: Require Python 3.10 or later
Note
In this release, state class __init__ parameters are now
keyword-only. If you are obtaining these
from model classes as recommended this should require no changes.
However if you construct these classes manually, make sure all
arguments are passed as keyword arguments. This affects
PseudoSpectralState,
FullPseudoSpectralState,
ParameterizedModelState and
StepperState.
v0.8.1
Resolve deprecation warnings from
jax.numpy.linalg.solve()added in JAX v0.4.25
v0.8.0
Add
EulerStepperAdd
pyqg_jax.diagnosticsmodule (see documentation and associated example for more information)New
Gridclass for use with diagnosticsFix incompatibility with JAX v0.4.24
Fix shape errors for models with non-square states (this setting is still less well-tested and not recommended)
Note
This release adds an internal, hidden static field to the
PseudoSpectralState class. This field is
an implementation detail, and if all instances are constructed from
model classes (model.create_initial_state) this shouldn’t
cause issues and should require no attention. However, if you were
constructing these objects manually using their constructors this
will be a breaking change.
v0.7.0
Add implementation of
SQGModelfrom PyQGIntegrate with JAX pytree key paths
Improved summary formatting of built-in Python collections
Breaking: Drop support for Python 3.8
Breaking: Remove uq and vq attributes from
FullPseudoSpectralState
v0.6.0
Clearer error messages when using model states with the wrong shape
Add implementation of
BTModelfrom PyQG
v0.5.1
v0.5.0
Fix bug that caused
q_parameterization()decorator to drop the auxiliary stateAdd
backscatter biharmonicparameterization from PyQG
v0.4.0
Add docstrings to most public API
Rename
ParametrizedModeltoParameterizedModelRename
ParametrizedModelStatetoParameterizedModelState
v0.3.0
Add
__repr__methods to most classes showing nested states and modelsAdd a no-op
noopparameterization
v0.2.0
Parameterizations now receive the “partial” model state, and call
model.get_full_stateto expand itFix propagation and unwrapping of parameterization states during time-stepping
Move
NoStepValueinto steppers moduleRemove repeated names from parameterization functions
v0.1.0
Initial release