Metadata-Version: 2.2
Name: pyOFTools
Version: 0.2.0
Summary: Python tools for OpenFOAM
Keywords: OpenFOAM,simulation,CFD
Author-Email: Henning Scheufler <henning.scheufler@web.de>
License: GPL-3.0-or-later
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: End Users/Desktop
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: Natural Language :: English
Classifier: Programming Language :: C++
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering
Project-URL: Homepage, https://github.com/HenningScheufler/pyOFTools
Project-URL: Repository, https://github.com/HenningScheufler/pyOFTools.git
Project-URL: Issues, https://github.com/HenningScheufler/pyOFTools/issues
Requires-Python: >=3.8
Requires-Dist: pybFoam>=0.1.7
Requires-Dist: typer
Provides-Extra: dev
Requires-Dist: pytest>=6.0; extra == "dev"
Requires-Dist: pytest-cov; extra == "dev"
Requires-Dist: pytest-xdist; extra == "dev"
Requires-Dist: black; extra == "dev"
Requires-Dist: flake8; extra == "dev"
Requires-Dist: isort; extra == "dev"
Requires-Dist: mypy; extra == "dev"
Requires-Dist: pandas>=2.0.0; extra == "dev"
Requires-Dist: poethepoet>=0.30.0; extra == "dev"
Requires-Dist: ruff>=0.14.2; extra == "dev"
Requires-Dist: pre-commit; extra == "dev"
Requires-Dist: pandas-stubs; extra == "dev"
Provides-Extra: docs
Requires-Dist: sphinx>=4.0; extra == "docs"
Requires-Dist: myst-parser; extra == "docs"
Requires-Dist: sphinx-sitemap; extra == "docs"
Requires-Dist: furo; extra == "docs"
Requires-Dist: sphinxcontrib-mermaid; extra == "docs"
Provides-Extra: test
Requires-Dist: pytest; extra == "test"
Provides-Extra: viz
Requires-Dist: seaborn>=0.13.2; extra == "viz"
Provides-Extra: all
Requires-Dist: pyOFTools[dev,docs,test]; extra == "all"
Description-Content-Type: text/markdown

[![Docs](https://img.shields.io/badge/docs-GitHub%20Pages-blue)](https://henningscheufler.github.io/pyOFTools/)
[![CI](https://github.com/HenningScheufler/pyOFTools/actions/workflows/ci.yaml/badge.svg)](https://github.com/HenningScheufler/pyOFTools/actions/workflows/ci.yaml)
[![Codecov](https://codecov.io/gh/HenningScheufler/pyOFTools/branch/main/graph/badge.svg)](https://codecov.io/gh/HenningScheufler/pyOFTools)



# pyOFTools

Python tools and utilities for OpenFOAM

Currently in the pre-alpha release state.

## Description

pyOFTools is a collection of Python utilities for working with OpenFOAM simulations. It provides:

- Region selection and geometry tools
- Field manipulation functions
- Post-processing utilities
- Time series analysis
- Dictionary handling

## Installation

### Prerequisites

- Python 3.8 or higher
- OpenFOAM of2012 or higher (for OpenFOAM integration features)
- Required Python packages: numpy, pydantic

### Install from PyPI (when available)

```bash
pip install pyOFTools
```

### Install from source

```bash
git clone https://github.com/DLR-RY/pyOFTools.git
cd pyOFTools
pip install -e .
```

### Development installation

```bash
git clone https://github.com/DLR-RY/pyOFTools.git
cd pyOFTools
pip install -e ".[dev]"
```

## Usage

```python
import pyOFTools

# Use region selection tools
from pyOFTools import Box, Sphere

# Create geometric regions
box = Box(min=(0, 0, 0), max=(1, 1, 1))
sphere = Sphere(center=(0.5, 0.5, 0.5), radius=0.3)

# Combine regions
region = box & sphere  # intersection
```

## OpenFOAM Integration

The project also includes CMake build system for embedding Python into OpenFOAM as function objects. The CMake build is separate from the Python package installation.

## Testing

Run the test suite:

```bash
pytest
```

## Documentation

Documentation is work in progress and will be available at the project homepage.

## License

GPL-3.0-or-later
