Skip to main content

A simulation toolbox for ODE and DAE systems, with focus on systems biology applications.

Project description

SUND toolbox

SUND logo

SUND (Simulation Using Nonlinear Dynamic models) is a Python package for high‑level, object‑oriented modeling and fast simulation of ODE/DAE systems with complex time‑dependent inputs and hierarchical model structures. Models compile against a SUNDIALS backend for performance and can be seamlessly connected by declaring inputs and outputs.

Supported Python: 3.10–3.14 on Linux (x86_64), Windows (x86_64) and macOS (Intel & ARM).

Requirements

A C++ compiler (GCC, Clang, or MSVC) is required to install SUND and to compile models for efficient simulations. Pre-built wheels are not provided, as model compilation is performed locally. Ensure your system has a working C++ compiler before installing.

Install

From PyPI (recommended once published) or local source:

pip install sund   # or: uv add sund

Not on PyPI yet?

While the project is pending publication on PyPI you can install directly from the release archives hosted at:

https://isbgroup.eu/sund-toolbox/releases/

Latest build:

pip install https://isbgroup.eu/sund-toolbox/releases/sund-latest.tar.gz

Specific version (example):

pip install https://isbgroup.eu/sund-toolbox/releases/sund-2.0.0.tar.gz

Install from a built local source distribution (after uv build --sdist):

pip install dist/sund-<version>.tar.gz

Quick start

Create, install and simulate a trivial model:

import sund

# 1. Generate a template model file
sund.save_model_template("example_model.txt", model_name="Example")

# 2. Install (compiles → C extension module under sund/models)
sund.install_model("example_model.txt")

# 3. Load an instance
model = sund.load_model("Example")

# 4. Simulate (time vector in model time unit; default from template is 's')
sim = sund.Simulation(models=[model], time_vector=[0, 1, 2, 3], time_unit=model.time_unit)
sim.simulate()

print(sim.feature_values)  # numpy array of outputs/features

See the docs for activities (time‑varying inputs), multiple models, events, validation.

Documentation

Full user & API docs: https://isbgroup.eu/sund-toolbox (versioned; latest alias always points to newest release).

Model validation (optional)

Validate a model file or content before installing:

import sund
results = sund.validate_model_file("example_model.txt", verbose=True)

Development

Developer & maintainer details (architecture, CI publishing, docs versioning, release steps) live in DEVELOPMENT.md.

History

Origins, milestones, and design context: see docs/history.md (versioned site History page).

License

MIT License (see LICENSE.md). Includes bundled SUNDIALS (BSD 3‑Clause) – see license file for details.

Citation

If you use SUND in academic work, please cite the project (formal citation text will be added once available).

Getting help

Open an issue or start a discussion on the project GitLab. Bug reports with a minimal reproducer and model snippet are appreciated.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sund-2.0.0.tar.gz (362.7 kB view details)

Uploaded Source

File details

Details for the file sund-2.0.0.tar.gz.

File metadata

  • Download URL: sund-2.0.0.tar.gz
  • Upload date:
  • Size: 362.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for sund-2.0.0.tar.gz
Algorithm Hash digest
SHA256 0dddf728f3aeee87817229414153bed28ea0d75e379b59c63e2b0383ff55def1
MD5 72be2ce034a2912ef238ca68dc4edbe3
BLAKE2b-256 d5000d69baacce2cf8b667a41a31e88150d30f7b74b834a6c7bffaaaa5cba8c1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page