Metadata-Version: 2.4
Name: bdfqmmm
Version: 0.1.2
Summary: BDF QM/MM toolkit
Author: BDF QM/MM Toolkit Developers
License: MIT License
        
        Copyright (c) 2026 BDF QM/MM Toolkit Developers
        
        Permission is hereby granted, free of charge, to any person obtaining a copy
        of this software and associated documentation files (the "Software"), to deal
        in the Software without restriction, including without limitation the rights
        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
        copies of the Software, and to permit persons to whom the Software is
        furnished to do so, subject to the following conditions:
        
        The above copyright notice and this permission notice shall be included in all
        copies or substantial portions of the Software.
        
        THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
        SOFTWARE.
        
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
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
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`.
