Python library for density matrix quantum Monte Carlo
Project description
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pydmqmc-0.1.0.post1.tar.gz.
File metadata
- Download URL: pydmqmc-0.1.0.post1.tar.gz
- Upload date:
- Size: 39.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d88eb18fdd13b75b59345b17ce244ff314f250c8bcddb98f80dafc53971124dc
|
|
| MD5 |
6080127a7f9a7ca859ad670a7a08a5f8
|
|
| BLAKE2b-256 |
6336f519d1b9b9892bb7bc82b885aa1bedc38a83daf7bbdbe31b84b3b7b1fc86
|
Provenance
The following attestation bundles were made for pydmqmc-0.1.0.post1.tar.gz:
Publisher:
python-publish.yml on shepherd-group/pydmqmc
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pydmqmc-0.1.0.post1.tar.gz -
Subject digest:
d88eb18fdd13b75b59345b17ce244ff314f250c8bcddb98f80dafc53971124dc - Sigstore transparency entry: 1353148492
- Sigstore integration time:
-
Permalink:
shepherd-group/pydmqmc@99b3bc5a69e473a00ca0c12a62125fa097be1142 -
Branch / Tag:
refs/tags/v0.1.0.post1 - Owner: https://github.com/shepherd-group
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@99b3bc5a69e473a00ca0c12a62125fa097be1142 -
Trigger Event:
release
-
Statement type:
File details
Details for the file pydmqmc-0.1.0.post1-py3-none-any.whl.
File metadata
- Download URL: pydmqmc-0.1.0.post1-py3-none-any.whl
- Upload date:
- Size: 46.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7ec266ff3b57daaf020283cdebaeb51ae1449b955658a77c47c14af4ec0c443f
|
|
| MD5 |
97c1ef9aa49ade70460b6fb253da1d3b
|
|
| BLAKE2b-256 |
bfa8689195fae78cffdb0d39ecb47c3e841c2187cdca7439e716f3de095d590f
|
Provenance
The following attestation bundles were made for pydmqmc-0.1.0.post1-py3-none-any.whl:
Publisher:
python-publish.yml on shepherd-group/pydmqmc
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pydmqmc-0.1.0.post1-py3-none-any.whl -
Subject digest:
7ec266ff3b57daaf020283cdebaeb51ae1449b955658a77c47c14af4ec0c443f - Sigstore transparency entry: 1353148592
- Sigstore integration time:
-
Permalink:
shepherd-group/pydmqmc@99b3bc5a69e473a00ca0c12a62125fa097be1142 -
Branch / Tag:
refs/tags/v0.1.0.post1 - Owner: https://github.com/shepherd-group
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@99b3bc5a69e473a00ca0c12a62125fa097be1142 -
Trigger Event:
release
-
Statement type: