Skip to main content

Python quantum chemistry routines

Project description

PyQuante2

PyPI version Python 3.11+ License

PyQuante is an open-source suite of programs for developing quantum chemistry methods. The program is written in the Python programming language, but has many "rate-determining" modules also written in C for speed. The resulting code, though not as fast as Jaguar, NWChem, Gaussian, or MPQC, is much easier to understand and modify. The goal of this software is not necessarily to provide a working quantum chemistry program (although it will hopefully do that), but rather to provide a well-engineered set of tools so that scientists can construct their own quantum chemistry programs without going through the tedium of having to write every low-level routine.

Installation

From PyPI (recommended)

pip install pyquante2

From source

git clone https://github.com/rpmuller/pyquante2.git
cd pyquante2
pip install -e ".[dev]"

Testing

pytest --doctest-modules

The build procedure does not automatically run cython. You can rebuild the cython wrappers and routines by typing make in the cython subdirectory.

Why rewrite PyQuante?

PyQuante is a Quantum Chemistry Suite written in Python. Over the years, there are many things that I'm growing increasingly unsatisfied with:

  • I learned Python (essentially) as I was writing PyQuante, which means that I wasn't as good a programmer when I did most of the writing of the core modules as I am now.
  • Python was only at version 1.4-2.0 when I started writing. Many aspects of the language have changed substantially since then, especially the maturity of the numpy module.

I'm playing with PyQuante2 as a way of exploring more intelligent design. I'm slowly moving components over from PyQuante into PyQuante2. My goals are:

  • Clean code with a consistent style reflecting Python 2.7;
  • Easily understood code structure;
  • Much better test suite structure, use of nosetests as a matter of course.
  • Extensions
    • Written only in Cython
    • Not required for base code to function

Of course, it would be nice if this code were also much faster than PyQuante, but I'd be surprised if this happened automatically, and I'm prepared to deal with code performance at a later time.

There is an IPython notebook surveying some of the new features that can be viewed as a gist or on nbviewer.

What works so far:

  • Huzinaga and HGP integral methods, both in Python and with Cython wrappers to C
  • RHF, UHF wave functions
  • MP2 perturbation theory
  • A limited number of basis sets (STO-3G, 6-31G, 6-31G**)
  • Line and contour plotting
  • Basic IPython notebook support for some objects

Feel free to fork this if it interests you. The PyQuante code is still around, so I'm not rushing through the process, I'm just taking as much time as I feel I need to do this properly.

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

pyquante2-0.2.0.tar.gz (717.6 kB view details)

Uploaded Source

Built Distribution

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

pyquante2-0.2.0-cp313-cp313-macosx_11_0_arm64.whl (1.0 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

File details

Details for the file pyquante2-0.2.0.tar.gz.

File metadata

  • Download URL: pyquante2-0.2.0.tar.gz
  • Upload date:
  • Size: 717.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for pyquante2-0.2.0.tar.gz
Algorithm Hash digest
SHA256 cc535a3bda8c7c1de44bc180d8e4808e3f5e635e6694dc7737b80c2367a66e23
MD5 706812a6e16e97a6b36139c33ec93658
BLAKE2b-256 e823bf1a031db0363edc6d8b2fc46990fe3c45d15f47351a4a7044198cd49ef8

See more details on using hashes here.

File details

Details for the file pyquante2-0.2.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyquante2-0.2.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 60ea6abbf9393988832f671f5b81b3029d17b9ad0c819e42918a3e8ac6833701
MD5 b6ae688121431d66b6c9093bddae247c
BLAKE2b-256 8077f948397850ee643c08a83105c1ac0b44238d92bc9a3c226d0cf6c1469cc6

See more details on using hashes here.

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