Metadata-Version: 2.4
Name: plumeswift
Version: 0.1.0a4
Summary: Research tools for 3D wind fields, particle dispersion, and liquid hydrogen release
License-Expression: GPL-3.0-only AND LGPL-2.1-or-later
Project-URL: Repository, https://github.com/lyullee/plumeswift
Project-URL: Issues, https://github.com/lyullee/plumeswift/issues
Project-URL: Documentation, https://github.com/lyullee/plumeswift#readme
Project-URL: Historical QESx archive, https://doi.org/10.5281/zenodo.24073832
Project-URL: Upstream, https://github.com/UtahEFD/QES-Public
Keywords: QES,dispersion,wind,liquid hydrogen,Lagrangian
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Science/Research
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Scientific/Engineering :: Atmospheric Science
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
License-File: LICENSE.LGPL-2.1
License-File: NOTICE.md
Requires-Dist: numpy>=1.24
Requires-Dist: scipy<1.16,>=1.15
Requires-Dist: netCDF4>=1.6
Provides-Extra: fast
Requires-Dist: numba<0.69,>=0.68; extra == "fast"
Provides-Extra: thermo
Requires-Dist: CoolProp>=7; extra == "thermo"
Provides-Extra: test
Requires-Dist: pytest>=8; extra == "test"
Provides-Extra: gis
Requires-Dist: pyshp<4,>=2.3; extra == "gis"
Requires-Dist: rasterio>=1.3; extra == "gis"
Requires-Dist: fiona<2,>=1.9; extra == "gis"
Provides-Extra: cuda11
Requires-Dist: cupy-cuda11x<14,>=13.4; extra == "cuda11"
Provides-Extra: plot
Requires-Dist: matplotlib>=3.6; extra == "plot"
Provides-Extra: visual
Requires-Dist: plotly<7,>=6.0; extra == "visual"
Requires-Dist: scikit-image<1,>=0.23; extra == "visual"
Provides-Extra: ffi
Requires-Dist: pypdf[crypto]<7,>=6; extra == "ffi"
Dynamic: license-file

# PlumeSwift

An independently maintained Python port of QES v2.3.1, previously released
as QESx. It implements public QES algorithms for 3D wind
fields, Lagrangian particle dispersion and fire-related workflows. The Python
API also includes experimental liquid hydrogen thermodynamics, buoyancy and
drag coupling. This alpha has partial upstream coverage and has been compared
against selected original QES cases and FFI concentration measurements.

## Install

```shell
python -m pip install --pre plumeswift
plumeswift --help
plumeswift runtime-info
```

Run the bundled synthetic liquid hydrogen example and open its interactive 3D
concentration plot in a browser:

```shell
python -m pip install "plumeswift[visual]==0.1.0a4"
plumeswift lh2-demo --output lh2-result --open
```

Use `plumeswift lh2-demo --write-input lh2-case.json` to export the editable input.
See the repository README for the input fields and output file layout.

Download FFI-RAPPORT 20/03101 from the [FFI publication page](https://www.ffi.no/en/publications-archive/large-scale-leakage-of-liquid-hydrogen-lh2-tests-related-to-bunkering-and-maritime-use-of-liquid-hydrogen)
and save it as `ffi-report.pdf`. PlumeSwift reads the sensor means from the local
PDF and links the comparisons and interactive 3D plumes in the result index.

```shell
python -m pip install "plumeswift[fast,visual,ffi]==0.1.0a4"
plumeswift lh2-ffi --report ffi-report.pdf --workers 5 --output ffi-results --open
```

Use `--tests 3` for a single experiment or `--no-3d` for sensor comparisons alone.

The optional `fast` extra adds Numba for the physical-coordinate interpolation,
voxel-wall traversal and 3×3 GLE solve. The `thermo` extra adds CoolProp.
The package exposes the `plumeswift` command and Python module. The original
command interfaces are available as subcommands, for example `plumeswift qesWinds`.

The source repository documents supported options, research limitations,
provenance and the experimental status of the LH₂ model. The current evidence
does not establish the model's suitability for determining safety distances.

The QES-derived code is GPL-3.0-only. The glibc-derived numerical components
retain LGPL-2.1-or-later. See the included license files and NOTICE.
