dynamodels
Dynamical-system models with pre-allocated history tracking and pluggable time integrators — the modelling core split out of romda so it can be reused on its own. Torch-free; depends only on numpy, scipy, matplotlib, typeguard and multiprocess.
Install
pip install dynamodels
Quickstart
from dynamodels.physical import Lorenz63
model = Lorenz63(rho=28., dt=0.01)
psi, t = model.time_integrate(Nt=1000) # (Nt, Nphi, m) states, (Nt,) times
model.update_history(psi, t)
y = model.get_observable_hist() # (Nt, Nq, m) observables
model.visualize_history()
model.close() # release the integrator's pool
A model composes a HistoryTracker (state/time buffer behind hist, hist_t,
update_history()) with an Integrator strategy; subclasses supply
obs_labels plus either time_derivative(t, psi, **params) (continuous) or
time_step(Nt) (discrete map). m-member ensembles are supported natively
(init_ensemble). Included physical models (dynamodels.physical): Lorenz63,
Lorenz96, VdP, Rijke, Annular, KS — the lorenz63, lorenz96 and rijke
modules carry measured dominant-Lyapunov tables (module-level _LAM1_MEASURED;
_LAM1_MEASURED_NX10 for Lorenz96) from which instances set t_lyap.
Ecosystem
ntsa— nonlinear time-series analysis for any dynamodels-style model (docs).- romda — bias-aware ensemble data assimilation built on top.
Development
pip install -e ".[dev]"
python -m pytest tests/
ruff check dynamodels/ tests/
Releases: bump version in pyproject.toml, then git tag vX.Y.Z && git push --tags
(publishes to PyPI).
License
MIT
Metadata
Release files for dynamodels 0.5.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| dynamodels-0.5.0.tar.gz | 59.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| dynamodels-0.5.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 121.5 kB
Release files / dynamodels-0.5.0.tar.gz
| Download URL | dynamodels-0.5.0.tar.gz |
|---|---|
| Size | 59.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
24ff9d5dd7dad6722431cc1ddfef20ac9bb5eadfc0d95924b04ae34d7f2c567c
|
|
BLAKE2b-256 checksum How to use checksums |
f709c138836799cc7178e18e299e17ceffcf1187c38ff96bcc606528d1f9dfe7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 8, 2026.
Transparency logRelease files / dynamodels-0.5.0-py3-none-any.whl
| Download URL | dynamodels-0.5.0-py3-none-any.whl |
|---|---|
| Size | 62.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d43d77f4cabd7ca4d39a6160038cd0479d774e43783607b8f990c3cc01892439
|
|
BLAKE2b-256 checksum How to use checksums |
36c3a978027afd5291221e3401a3aedcfec856c2af2fdd22eb89fe851598c429
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 8, 2026.
Transparency log