Metadata-Version: 2.2
Name: turbx
Version: 1.0.0
Summary: Extensible toolkit for analyzing turbulent flow datasets
Author: Jason A
Maintainer: Jason A
License: MIT
Keywords: turbulence,fluid mechanics,DNS,MPI,HPC
Classifier: License :: OSI Approved :: MIT License
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Science/Research
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Topic :: Scientific/Engineering :: Physics
Classifier: Topic :: System :: Distributed Computing
Classifier: Topic :: Database
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: mpi4py>=4.0
Requires-Dist: numpy>=2.0
Requires-Dist: scipy>=1.14
Requires-Dist: h5py>=3.11
Requires-Dist: matplotlib>=3.9
Requires-Dist: tqdm>=4.66
Requires-Dist: psutil>=6.0
Provides-Extra: dev
Requires-Dist: ruff>=0.6; extra == "dev"
Requires-Dist: pytest>=8.0; extra == "dev"
Requires-Dist: pyright>=1.1; extra == "dev"

# turbx
[![PyPI version](https://badge.fury.io/py/turbx.svg)](https://badge.fury.io/py/turbx)
[![Downloads](https://pepy.tech/badge/turbx)](https://pepy.tech/project/turbx)
<!---
[![pipeline status](https://gitlab.iag.uni-stuttgart.de/transi/turbx/badges/master/pipeline.svg)](https://gitlab.iag.uni-stuttgart.de/transi/turbx/-/commits/master)
-->

## About

`turbx` is a package for processing turbulent flow datasets. Primary data access classes are `super()`ed wrappers of `h5py.File` that make data & metadata access simple.

## Installation

Install directly from [PyPI](https://pypi.org/project/turbx)
```
pip install --upgrade turbx
```

The `--user` flag can be added to install to `~/.local/lib/pythonX.Y/site-packages` rather than `site-packages` of the python installation itself. This often required for HPC environments where the system `python3` is used.

`turbx` can also be installed from source in `editable` mode (see [setuptools docs](https://setuptools.pypa.io/en/latest/userguide/development_mode.html)) from the project root folder:

```
pip install --upgrade -e .
```

## Dependencies

While most of the codebase can be transparently run on a single process, `turbx` is designed to use parallel `HDF5` (wrapped by `h5py`) for high-performance collective MPI-IO with `mpi4py`. This requires:

- An MPI implementation such as `OpenMPI` or `MPICH` and `mpi4py`
- A parallel `HDF5` installation and `h5py` built with `HDF5_MPI="ON"`; see [h5py docs](https://docs.h5py.org/en/stable/mpi.html)
