Metadata-Version: 2.5
Name: panda-md
Version: 0.0.1
Summary: PANDA: contact angle and interface shape of confined liquids from 1D density profiles of molecular simulations
Project-URL: Repository, https://github.com/Ilya-Garanov-WorkingAcc/PANDA_2.0
Author: Ilya Garanov
License-Expression: MIT
License-File: LICENSE
Keywords: contact angle,density profile,molecular dynamics,nanopores,wetting
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Science/Research
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
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: Topic :: Scientific/Engineering :: Chemistry
Classifier: Topic :: Scientific/Engineering :: Physics
Classifier: Typing :: Typed
Requires-Python: >=3.10
Requires-Dist: numpy>=1.26
Requires-Dist: scipy>=1.11
Description-Content-Type: text/markdown

# PANDA

**P**redicting **AN**gle from nanoscale **D**ensity **A**nalysis — a Python library that determines the
contact angle and the interface shape of liquids confined in pores from one-dimensional density profiles
of molecular simulations.

> **Status: pre-alpha.** Version 0.0.1 only reserves the package name and fixes the project layout.
> The library is being rewritten for release; the API described in `docs/` is not implemented yet.

## Method

Two immiscible liquids in a pore form one of a few interface shapes (droplet, doughnut, worm, roll,
perforation, layer). For each shape the density profile across the pore is known analytically as a
function of the contact angle θ, the wetting-layer thickness δ and the volume fraction φ. PANDA fits this
analytical profile to the profile measured in a simulation, so the position of the interface never has to
be located explicitly.

References:

- A. Semenchuk, N. Kondratyuk, I. Kopanichuk, *PANDA: Predicting angle from nanoscale density analysis*,
  Colloids Surf. A 708 (2025) 135994. https://doi.org/10.1016/j.colsurfa.2024.135994
- A. Semenchuk, N. Kondratyuk, K. Gerke, I. Kopanichuk, *Towards reproducible wetting studies: Automated
  contact angle determination by molecular simulations*, Colloids Surf. A 725 (2025) 137586.
  https://doi.org/10.1016/j.colsurfa.2025.137586

## Installation

```bash
pip install panda-md
```

```python
import panda_md
print(panda_md.__version__)
```

## Development

The project is managed with [uv](https://docs.astral.sh/uv/).

```bash
make install     # create .venv with the package and the dev tools
make check       # black + ruff + mypy + pytest (the same checks CI runs)
make test-env    # run tests in a separate clean environment (package + test group only)
make build       # build sdist and wheel into dist/
make wheel-check # install the built wheel into an isolated environment and import it
make help        # all commands
```

Dependency groups in `pyproject.toml`: `test` (pytest), `lint` (black, ruff, mypy), `dev` (both, installed by
default). They are not part of the published package.

## Repository layout

```
src/panda_md/   the package (typed, ships py.typed)
tests/          pytest tests
docs/           design documents: audit of the previous version, architecture specification
smoke/          exploratory scripts run against the previous PANDA version
ROADMAP.md      project plan
```

## Previous version

The original research code lives at https://github.com/FlufffyMelon/PANDA.

## License

MIT, see [LICENSE](LICENSE).
