Metadata-Version: 2.4
Name: zoomy-server
Version: 0.2.1
Summary: FastAPI solver server for Zoomy — submits and manages simulation jobs.
Author-email: Ingo Steldermann <steldermann@mbd.rwth-aachen.de>
License: LGPL-3.0-or-later
Project-URL: Homepage, https://github.com/ZoomyLab/Zoomy
Project-URL: Documentation, https://zoomylab.github.io/Zoomy
Project-URL: Source, https://github.com/ZoomyLab/Zoomy
Project-URL: Issues, https://github.com/ZoomyLab/Zoomy/issues
Keywords: simulation,server,zoomy,solver
Requires-Python: >=3.11
Description-Content-Type: text/markdown
Requires-Dist: fastapi>=0.100
Requires-Dist: uvicorn[standard]>=0.20
Requires-Dist: pydantic
Requires-Dist: numpy
Requires-Dist: h5py
Requires-Dist: zoomy-core>=0.2.17
Requires-Dist: zoomy-prepost>=0.1.0
Provides-Extra: jax
Requires-Dist: zoomy-jax; extra == "jax"

# zoomy-server

FastAPI solver server for [Zoomy](https://github.com/ZoomyLab/Zoomy) — submits and manages simulation jobs across multiple backends.

## Installation

```bash
pip install zoomy-server
```

## Usage

```bash
zoomy-server --adapter numpy --port 8000
```

## Backends

A case folder with a `run.py` runs as the GUI runs the case: model.py, mesh.py, settings.json and
run.py in one namespace (`zoomy_server.case_run`; a folder with only a `run.py`, e.g. a coupling,
runs that script); without one, the settings run the case on the symbolic solvers
(`zoomy_server.symbolic`):

- **NumPy** — `SymbolicHyperbolicSolverNumpy` / `SymbolicChorinSolverNumpy`, in-process
- **JAX** — `SymbolicHyperbolicSolverJax` / `SymbolicChorinSolverJax` (CPU or GPU)
- **AMReX** — `SymbolicHyperbolicSolverAmrex` on the uniform Cartesian grid; built and run natively in the AMReX image
- **OpenFOAM** — `SymbolicHyperbolicSolverFoam`; built and run natively in the OpenFOAM image
- **DMPlex**, **Firedrake** — their own solvers (not ported)
