Metadata-Version: 2.4
Name: bdfqmmm
Version: 0.1.3
Summary: BDF QM/MM toolkit
Author: BDF QM/MM Toolkit Developers
License-Expression: MIT AND CECILL-2.0 AND LGPL-3.0-or-later
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Science/Research
Classifier: Operating System :: MacOS
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3
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 :: Chemistry
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
License-File: THIRD_PARTY_NOTICES.md
License-File: external/pdynamo2/Licence_CeCILL_V2-en.txt
Requires-Dist: PyYAML>=6
Provides-Extra: test
Requires-Dist: pytest; extra == "test"
Provides-Extra: build
Requires-Dist: build; extra == "build"
Dynamic: license-file

# BDF QM/MM Toolkit

`bdfqmmm` is a Python toolkit for building BDF-based QM/MM workflows.

The Python package name is `bdfqmmm`; the command line entry point is:

```bash
bdf-qmmm
```

## Development

Install the project in editable mode:

```bash
python3 -m pip install -e .
```

Check the command line interface:

```bash
bdf-qmmm --help
```

## Pip Installation

Install from a source checkout:

```bash
python3 -m pip install .
```

By default this builds the bundled pDynamo runtime with CMake and installs it
into the wheel alongside `bdfqmmm`. The build uses the bundled BLAS/LAPACK code
and disables OpenMP by default to keep source installs portable.

Extra CMake options can be passed with:

```bash
BDFQMMM_PDYNAMO_CMAKE_ARGS="-DPDYNAMO_USE_OPENMP=ON" python3 -m pip install .
```

For a quick Python-only install during documentation or CLI development:

```bash
BDFQMMM_SKIP_PDYNAMO_BUILD=1 python3 -m pip install .
```

This mode does not install pDynamo and should not be used for production QM/MM
workflows.

## BDF Configuration

After installing `bdfqmmm`, record the `bdfrc` file generated by the BDF
installation:

```bash
bdf-qmmm config set-bdfrc /path/to/bdfrc
```

Show the resolved BDF runtime configuration:

```bash
bdf-qmmm config show
```

Validate the configured paths:

```bash
bdf-qmmm config check
```

The default user configuration file is:

```text
~/.config/bdfqmmm/config.toml
```

Configuration priority is:

```text
environment variables > bdfqmmm config file > bdfrc values
```

Supported environment variables are `BDFHOME`, `BDF_TMPDIR`, `BDF_MPIRUN`,
`BDF_MPIROOT`, `BDFRC`, and `BDFQMMM_CONFIG`.

## Project Layout

```text
bdfqmmm/
├── src/
│   └── bdfqmmm/        # BDF QM/MM toolkit source code
├── external/
│   └── pdynamo2/       # Vendored pDynamo2 runtime source and parameters
├── tests/              # Lightweight package tests only
├── docs/
└── pyproject.toml
```

Third-party packages that are checked into this repository should live under
`external/`. Project-owned Python code should stay under `src/bdfqmmm/`.

Large QM/MM examples, BDF examples, functional tests, benchmarks, trajectories,
and reference outputs should live in a separate repository such as
`bdfqmmm-tests`.

## License

Project-owned `bdfqmmm` code is licensed under the MIT License.

This source distribution also bundles third-party pDynamo2 code under
`external/pdynamo2`, which remains under its original license terms, including
CeCILL v2 and LGPL-3.0-or-later notices in selected bundled sources. See
`LICENSE`, `THIRD_PARTY_NOTICES.md`, and
`external/pdynamo2/Licence_CeCILL_V2-en.txt`.
