Skip to main content

Python library for density matrix quantum Monte Carlo

Project description

Test Status Coverage Status Documentation Status DOI

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):

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() and generate_renorm_excitation() in the Integral class need unit tests.
  • Internal Integral methods _set_reference, _set_symmetry, and _symmetry_check still need verification.
  • The report_registry could have more functions available to it.

Future Work

  • Create a speed/scaling page that also compares with HANDE
  • Add more Methods from Will's original code.

Possible API Changes

  • The Method categories Iterative and Analytic represent a false dichotomy. Analytic may become Direct, or Iterative could become Stochastic. It depends on what other Method types get added to pydmqmc.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pydmqmc-0.1.0.post1.tar.gz (39.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pydmqmc-0.1.0.post1-py3-none-any.whl (46.7 kB view details)

Uploaded Python 3

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

Hashes for pydmqmc-0.1.0.post1.tar.gz
Algorithm Hash digest
SHA256 d88eb18fdd13b75b59345b17ce244ff314f250c8bcddb98f80dafc53971124dc
MD5 6080127a7f9a7ca859ad670a7a08a5f8
BLAKE2b-256 6336f519d1b9b9892bb7bc82b885aa1bedc38a83daf7bbdbe31b84b3b7b1fc86

See more details on using hashes here.

Provenance

The following attestation bundles were made for pydmqmc-0.1.0.post1.tar.gz:

Publisher: python-publish.yml on shepherd-group/pydmqmc

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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

Hashes for pydmqmc-0.1.0.post1-py3-none-any.whl
Algorithm Hash digest
SHA256 7ec266ff3b57daaf020283cdebaeb51ae1449b955658a77c47c14af4ec0c443f
MD5 97c1ef9aa49ade70460b6fb253da1d3b
BLAKE2b-256 bfa8689195fae78cffdb0d39ecb47c3e841c2187cdca7439e716f3de095d590f

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page