pydmqmc
The pydmqmc package let’s you quickly assemble finite-temperature many-electron calculations. It serves as library with which your own scripts can be written and executed.
pydmqmc was inspired by the HANDE code.
Installation
The pydmqmc package is available via PyPI:
pip install pydmqmc
Any necessary dependencies will be installed automatically!
Development Version
First, clone this repository and set the branch:
git clone https://github.com/shepherd-group/pydmqmc.git
cd pydmqmc
Next, set up a Python environment. If you use Conda to manage your Python environments, you can set up a full development environment using the provided environment.yml:
conda env create -f environment.yml
If you prefer to build with pip, you can skip to building pydmqmc and all dependencies should be installed automatically.
The final step is to build the pydmqmc Python package. Since this project is in early development,
it's advisable to build with the --editable or -e flag:
pip install -e .
You can test your installation is working by running the test suite:
pytest
Parallel Tests
Note that, by default, pytest is configured to skip tests for the parallel (MPI) infrastructure.
This is because the way pytest prefers to natively run these tests (i.e., using forking) fails on some version
of MPI, such as OpenMPI on Ubuntu (see the documentation for mpi-pytest for more details).
To run these parallel tests with OpenMPI, please run the following:
pytest # serial tests
bash tests/run_parallel_tests.sh # parallel tests
For all other versions of MPI, you may run:
pytest # serial tests
pytest -m parallel # parallel tests
Building the Documentation
The environment.yml file includes everything you need to build the documentation yourself.
To do so, run the following:
cd docs
make html
The documentation will then be available in pydmqmc/docs/build/html.
Open pydmqmc/docs/build/html/index.html to browse the
documentation like a webpage!
Navigate to the Quickstart page to get started with pydmqmc!
Citing this software
Please cite this software using the following DOI: 10.5281/zenodo.19614801.
Depending on the methods used in your work, please also cite the following method papers (DOIs provided):
- DMQMC: 10.1103/PhysRevB.89.245124
- IP-DMQMC: 10.1063/1.4927434
Developer Notes
Please be advised that pydmqmc is in a alpha release state and is still being
actively developed. Some features may be missing and the API is subject to change.
You are welcome to submit comments and requests to the lead developer (Claire Kopenhafer, kopenhaf@msu.edu),
ideally as issues on the pydmqmc GitHub page (though Slack and email messages also work).
The following are notes from Claire about unfinished work, future planned work, and possible changes.
Unfinished Work
- Functions
random_bitarray_symspace()andgenerate_renorm_excitation()in theIntegralclass need unit tests. - Internal
Integralmethods_set_reference,_set_symmetry, and_symmetry_checkstill need verification. - The
report_registrycould have more functions available to it.
Future Work
- Create a speed/scaling page that also compares with HANDE
- Add more
Methodsfrom Will's original code.
Possible API Changes
- The
MethodcategoriesIterativeandAnalyticrepresent a false dichotomy.Analyticmay becomeDirect, orIterativecould becomeStochastic. It depends on what otherMethodtypes get added topydmqmc.
Metadata
Release files for pydmqmc 0.1.0.post1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pydmqmc-0.1.0.post1.tar.gz | 39.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pydmqmc-0.1.0.post1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 85.9 kB
Release files / pydmqmc-0.1.0.post1.tar.gz
| Download URL | pydmqmc-0.1.0.post1.tar.gz |
|---|---|
| Size | 39.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d88eb18fdd13b75b59345b17ce244ff314f250c8bcddb98f80dafc53971124dc
|
|
BLAKE2b-256 checksum How to use checksums |
6336f519d1b9b9892bb7bc82b885aa1bedc38a83daf7bbdbe31b84b3b7b1fc86
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 21, 2026.
Transparency logRelease files / pydmqmc-0.1.0.post1-py3-none-any.whl
| Download URL | pydmqmc-0.1.0.post1-py3-none-any.whl |
|---|---|
| Size | 46.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7ec266ff3b57daaf020283cdebaeb51ae1449b955658a77c47c14af4ec0c443f
|
|
BLAKE2b-256 checksum How to use checksums |
bfa8689195fae78cffdb0d39ecb47c3e841c2187cdca7439e716f3de095d590f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 21, 2026.
Transparency log