Metadata-Version: 2.1
Name: pigreads
Version: 0.4.8.dev0
Summary: Python-integrated GPU-enabled reaction-diffusion solver
Author-Email: Desmond Kabus <desmond@kabus.eu>
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: GPU
Classifier: Intended Audience :: Science/Research
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: C
Classifier: Programming Language :: C++
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Scientific/Engineering :: Physics
Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
Classifier: Typing :: Typed
Project-URL: Homepage, https://gitlab.com/pigreads/pigreads
Project-URL: Documentation, https://pigreads.readthedocs.io
Project-URL: Bug Tracker, https://gitlab.com/pigreads/pigreads/-/issues
Project-URL: Discussions, https://gitlab.com/pigreads/pigreads/-/issues
Project-URL: Changelog, https://gitlab.com/pigreads/pigreads/-/releases
Requires-Python: >=3.10
Requires-Dist: numpy>=2.0
Requires-Dist: pyyaml>=6.0
Requires-Dist: pydantic>=2.10
Provides-Extra: plot
Requires-Dist: matplotlib>=3.10; extra == "plot"
Requires-Dist: tqdm>=4.67; extra == "plot"
Provides-Extra: cli
Requires-Dist: pigreads[plot]; extra == "cli"
Requires-Dist: click>=8.1; extra == "cli"
Provides-Extra: all
Requires-Dist: pigreads[cli]; extra == "all"
Provides-Extra: test
Requires-Dist: pigreads[all]; extra == "test"
Requires-Dist: pytest>=6; extra == "test"
Requires-Dist: pytest-cov>=3; extra == "test"
Requires-Dist: myokit>=1.37; extra == "test"
Provides-Extra: dev
Requires-Dist: pigreads[test]; extra == "dev"
Provides-Extra: docs
Requires-Dist: pigreads[all]; extra == "docs"
Requires-Dist: sphinx>=7.0; extra == "docs"
Requires-Dist: myst_parser>=0.13; extra == "docs"
Requires-Dist: sphinx_copybutton; extra == "docs"
Requires-Dist: sphinx_autodoc_typehints; extra == "docs"
Requires-Dist: sphinx-click>=6.0.0; extra == "docs"
Requires-Dist: sphinx_lfs_content>=1.1; extra == "docs"
Requires-Dist: furo>=2023.08.17; extra == "docs"
Description-Content-Type: text/markdown

# Pigreads

[![Pipeline Status][pipeline-badge]][pipeline-link]
[![Coverage Report][coverage-badge]][coverage-link]
[![Documentation Status][rtd-badge]][rtd-link]

[![Latest Release][release-badge]][release-link]
[![PyPI platforms][pypi-platforms]][pypi-link]
[![PyPI version][pypi-version]][pypi-link]

<!-- SPHINX-START -->

Pigreads stands for **Python-integrated GPU-enabled reaction-diffusion solver**.

## Getting started

### Requirements

Pigreads uses OpenCL for calculations on the graphics cards. OpenCL is usually
included in the drivers for your graphics card. The following pages may help
installing and accessing OpenCL:

- [ArchWiki: OpenCL on Arch Linux][guide-arch]
- [OpenCL-Guide: OpenCL on Ubuntu Linux][guide-ubuntu]
- [OpenCL-Guide: OpenCL on Windows][guide-windows]

You can use [`clinfo`][clinfo] to verify you have an OpenCL platform installed.

If instead of the GPU, you want to use CPUs, you can [install PoCL][pocl] as an
OpenCL platform to compute on the main processors.

To compile and use the module, you may also need to install the following tools:

- [Python][python] with the `pip` package manager
- [CMake][cmake]
- [GNU Make][make]
- [GNU C++ compiler][gcc]

### Installation

Install this Python package in the standard way using `pip`, for instance from
[PyPI][pypi-link] or from a local copy of this repository, see [the Python
documentation for details][py-install]. For the command line interface (CLI),
also install the optional dependency `cli`:

```
$ pip install pigreads[cli] # from PyPI
$ pip install .[cli] # from current directory
```

### Usage

Simulations can be performed via calls to the Python module (API) or using the
CLI. See the API and CLI sections in the [documentation for annotated
examples][rtd-link], or the examples directory in the [Pigreads
repository][repo].

<!-- prettier-ignore-start -->
[repo]:           https://gitlab.com/pigreads/pigreads
[coverage-badge]: https://gitlab.com/pigreads/pigreads/badges/main/coverage.svg
[coverage-link]:  https://gitlab.com/pigreads/pigreads/-/commits/main
[pipeline-badge]: https://gitlab.com/pigreads/pigreads/badges/main/pipeline.svg
[pipeline-link]:  https://gitlab.com/pigreads/pigreads/-/pipelines
[pypi-link]:      https://pypi.org/project/pigreads/
[pypi-platforms]: https://img.shields.io/pypi/pyversions/pigreads
[pypi-version]:   https://img.shields.io/pypi/v/pigreads
[release-badge]:  https://gitlab.com/pigreads/pigreads/-/badges/release.svg
[release-link]:   https://gitlab.com/pigreads/pigreads/-/releases
[rtd-badge]:      https://readthedocs.org/projects/pigreads/badge/?version=latest
[rtd-link]:       https://pigreads.readthedocs.io/en/latest/?badge=latest
[python]:         https://www.python.org/
[py-install]:     https://packaging.python.org/en/latest/tutorials/installing-packages/
[guide-arch]:     https://wiki.archlinux.org/title/OpenCL
[guide-ubuntu]:   https://github.com/KhronosGroup/OpenCL-Guide/blob/main/chapters/getting_started_linux.md
[guide-windows]:  https://github.com/KhronosGroup/OpenCL-Guide/blob/main/chapters/getting_started_windows.md
[clinfo]:         https://github.com/Oblomov/clinfo
[pocl]:           https://portablecl.org/docs/html/install.html
[gcc]:            https://gcc.gnu.org/
[make]:           https://www.gnu.org/software/make/
[cmake]:          https://cmake.org/
<!-- prettier-ignore-end -->
