Metadata-Version: 2.1
Name: clode
Version: 0.4.1
Summary: A Python package for solving ordinary differential equations on the GPU using OpenCL
Author-email: Patrick Fletcher <patrick.allen.fletcher@gmail.com>
Maintainer-email: Patrick Fletcher <patrick.allen.fletcher@gmail.com>, Wolf Byttner <wolf@byttner.org>
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: POSIX
Classifier: Environment :: GPU
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: C++
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Scientific/Engineering :: Mathematics
Classifier: Topic :: Scientific/Engineering :: Physics
Classifier: Topic :: Software Development :: Libraries
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE

# clODE - an OpenCL based tool for solving ordinary differential equations (ODEs)

clODE is a tool for solving ordinary differential equations (ODEs) using OpenCL. It is tailored to numerically solving many instances of a given ODE system in parallel, each with different parameter sets and/or initial conditions.

The ODE solver runs entirely on the OpenCL device, supporting independent solver state per simulation (e.g., adaptive timesteps). clODE can return the full trajectories, though this is somewhat memory intensive. Alternatively, clODE supports computing features of the ODE trajectory (e.g., oscillation period) on the fly without storing the trajectory itself, enabling much larger parameter sweeps to be run with significant speedup over serial computation.

clODE is written in C++ and OpenCL, and can be used directly in C++ programs or via the provided Python interface. The library is compiled using bazel and bazelisk, and it runs on Linux, Windows and MacOS.

## Installation

See [installation](docs/install.md) for instructions on how to install CLODE.

## Getting Started

See [Getting Started](docs/getting_started.md) for an example of clODE usage.

## Source

The source code is available on [GitHub](https://github.com/patrickfletcher/clODE).
