Skip to main content

PyBEST: Pythonic Black-box Electronic Structure Tool.

Project description

PyBEST is a Pythonic Black-box Electronic Structure Tool, written primarily in the Python programming language with additional parts written in C++ (interfaced using nanobind.

PyBEST is a fully-fledged modern electronic-structure software package, developed at NCU in Torun, released under the GNU General Public License. The package provides an efficient and reliable platform for electronic structure calculations at the interface of chemistry and physics using unique electronic structure methods. PyBEST is easy to use and easy to code in.

For more information, see our official homepage. You will also find there various versions of PyBEST to download and install including the most recent version of this documentation.

Graphical User Interface

A graphical user interface (GUI) is available to simplify the creation of PyBEST input files. The GUI is designed for intuitive interaction and facilitates setting up calculations without requiring manual file editing.

The GUI is publicly available on Zenodo.

Main Features

Compatibility

  • Integrating the LibInt2 library.

  • Adapting a modular structure to easily combine PyBEST with custom developments.

  • GPU-accelerated computing using the Cupy library

Electronic Structure Methods

  • Hamiltonians (various one- and two-electron integrals)

    • The electronic Schrödinger Hamiltonian in atom-centered Gaussian basis sets

      • One- and two-electron integrals computed with LibInt2

        • overlap, kinetic energy, nuclear, multipole, electron repulsion integrals (ERI)
      • pVp integrals

      • Cholesky-decomposed ERI

      • Douglas-Kroll-Hess Hamiltonian (DKH2)

      • eXact 2-Component (X2C) scalar relativistic Hamiltonian

      • Point-charge integrals

      • Static embedding potential integrals

    • Model Hamiltonians

      • 1-dimensional Hubbard model Hamiltonian (with and without periodic boundary conditions)

      • 1-dimensional contact interactions in an arbitrary external potential

      • Huckel and TB Hamiltonian

      • PPP Hamiltonian

    • User-provided Hamiltonians

      • Molpro's FCIDUMP format
  • Hartree-Fock theory:

    • Restricted and unrestricted orbitals

    • Various DIIS algorithms

  • Configuration Interaction methods

    • Configuration Interaction Singles (CIS)

    • Configuration Interaction Doubles (CID)

    • Configuration Interaction Singles and Doubles (CISD)

  • Coupled Cluster-type methods

    • pair-Coupled Cluster Doubles (pCCD), also known as the Antisymmetry Product of 1 reference-orbital Geminals (AP1roG)

    • Linearized Coupled Cluster Doubles (LCCD)

    • Linearized Coupled Cluster Singles and Doubles (LCCSD)

    • pCCD-LCCD (pCCD with an LCCD correction on top of it)

    • pCCD-LCCSD (pCCD with an LCCSD correction on top of it)

    • pCCD-CCS (pCCD with a Coupled Cluster Singles correction on top of it)

    • Coupled Cluster Doubles (CCD) in any restricted orbital basis

    • Coupled Cluster Singles and Doubles (CCSD) in any restricted orbital basis

    • Frozen-pair Coupled Cluster and Doubles (fpCCD)

    • Frozen-pair Coupled Cluster Singles and Doubles (fpCCSD)

    • Tailored Couples Cluster Singles Doubles (tCCSD)

  • Perturbation theory

    • Moller-Plesset Perturbation Theory of second order (MP2)

    • Symmetry Adapted Perturbation Theory (SAPT)

      • the SAPT0 un-coupled flavour for spin-restricted HF orbitals
    • Various Perturbation Theory models of second order with an pCCD reference function

      • PT2SDd (diagonal zero-order Hamiltonian, single determinant as dual state) with Doubles and Singles and Doubles

      • PT2MDd (diagonal zero-order Hamiltonian, pCCD as dual state) with Doubles and Singles and Doubles

      • PT2SDo (off-diagonal zero-order Hamiltonian, single determinant as dual state) with Doubles and Singles and Doubles

      • PT2MDo (off-diagonal zero-order Hamiltonian, pCCD as dual state) with Doubles and Singles and Doubles

      • PT2b (off-diagonal zero-order Hamiltonian, pCCD as dual state, full Hamiltonian as perturbation operator) with Doubles and Singles and Doubles including/excluding electron pairs

  • Equation of Motion Coupled Cluster methods

    • Equation of Motion CCS (EOM-CCS equivalent to CIS)

    • EOM-pCCD

    • EOM-pCCD+S (single excitation are included in the EOM ansatz only, while the CC ansatz is restricted to pCCD)

    • EOM-pCCD-CCS

    • EOM-LCCD

    • EOM-LCCSD

    • EOM-pCCD-LCCD

    • EOM-pCCD-LCCSD

    • EOM-CCD

    • EOM-CCSD

  • Ionization Potential Equation of Motion Coupled Cluster methods

    • IP-pCCD with 1 hole and 2 hole 1 particle operators ($S_z = 0.5, 1.5$)

    • IP-CCD with 1 hole and 2 hole 1 particle operators ($S_z = 0.5, 1.5$)

    • IP-CCSD with 1 hole and 2 hole 1 particle operators ($S_z = 0.5, 1.5$)

    • IP-LCCD with 1 hole and 2 hole 1 particle operators ($S_z = 0.5, 1.5$)

    • IP-LCCSD with 1 hole and 2 hole 1 particle operators ($S_z = 0.5, 1.5$)

    • IP-fpCCD with 1 hole and 2 hole 1 particle operators ($S_z = 0.5, 1.5$)

    • IP-fpCCSD with 1 hole and 2 hole 1 particle operators ($S_z = 0.5, 1.5$)

    • IP-pCCD-LCCD with 1 hole and 2 hole 1 particle operators ($S_z = 0.5, 1.5$)

    • IP-pCCD-LCCSD with 1 hole and 2 hole 1 particle operators ($S_z = 0.5, 1.5$)

    • DIP-pCCD with 2 hole and 3 hole 1 particle operators ($S_z = 0.0, 1.0, 2.0$)

    • DIP-CCD with 2 hole and 3 hole 1 particle operators ($S_z = 0.0$)

    • DIP-CCSD with 2 hole and 3 hole 1 particle operators ($S_z = 0.0$)

    • DIP-LCCD with 2 hole and 3 hole 1 particle operators ($S_z = 0.0$)

    • DIP-LCCSD with 2 hole and 3 hole 1 particle operators ($S_z = 0.0$)

    • DIP-fpCCD with 2 hole and 3 hole 1 particle operators ($S_z = 0.0$)

    • DIP-fpCCSD with 2 hole and 3 hole 1 particle operators ($S_z = 0.0$)

    • DIP-fpLCCD with 2 hole and 3 hole 1 particle operators ($S_z = 0.0$)

    • DIP-fpLCCSD with 2 hole and 3 hole 1 particle operators ($S_z = 0.0$)

  • Electron Attachment Equation of Motion Coupled Cluster methods

    • EA-pCCD with 1 particle and 2 particle 1 hole operators (:$S_z = 0.5, 1.5$)

    • EA-CCD with 1 particle and 2 particle 1 hole operators ($S_z = 0.5$)

    • EA-CCSD with 1 particle and 2 particle 1 hole operators ($S_z = 0.5$)

    • EA-fpCCD with 1 particle and 2 particle 1 hole operators ($S_z = 0.5$)

    • EA-fpCCSD with 1 particle and 2 particle 1 hole operators ($S_z = 0.5$)

    • EA-LCCD with 1 particle and 2 particle 1 hole operators ($S_z = 0.5$)

    • EA-LCCSD with 1 particle and 2 particle 1 hole operators ($S_z = 0.5$)

    • EA-fpLCCD with 1 particle and 2 particle 1 hole operators ($S_z = 0.5$)

    • EA-fpLCCSD with 1 particle and 2 particle 1 hole operators ($S_z = 0.5$)

    • DEA-pCCD with 2 particle and 3 particle 1 hole operators ($S_z = 0.0, 1.0, 2.0$)

  • Reversed Spin Flip Equation of Motion Coupled Cluster methods

    • RSF-CCD creating four unpaired electrons ($S_z = 2$)

    • RSF-CCSD creating four unpaired electrons ($S_z = 2$)

    • RSF-LCCD creating four unpaired electrons ($S_z = 2$)

    • RSF-LCCSD creating four unpaired electrons ($S_z = 2$)

    • RSF-fpCCD creating four unpaired electrons ($S_z = 2$)

    • RSF-fpCCSD creating four unpaired electrons ($S_z = 2$)

    • RSF-fpLCCD creating four unpaired electrons ($S_z = 2$)

    • RSF-fpLCCSD creating four unpaired electrons ($S_z = 2$)

Post-Processing

  • Orbital entanglement and correlation analysis

    • for a pCCD reference function

    • for a pCCD-LCC reference function

  • Orbital localization

    • Pipek-Mezey orbital localization
  • Property calculations

    • Dipole moment with HF, pCCD, pCCD-LCC wavefunctions

    • Quadrupole moment with HF, pCCD, pCCD-LCC wavefunctions

Citing PyBEST

Please, refer to PyBEST as follows:

Saman Behjou, Filip Brzęk, Rahul Chakraborty, Kacper Cieślak, Antonina Dobrowolska, Seyedehdelaram Jahani, Zahra Karimi, Michał Kopczyński, Aleksandra Leszczyk, Artur Nowak, Ram Dhari Pandey, Emil Sujkowski, Julian Świerczyński, Julia Szczuczko, Lena Szczuczko, Somayeh Ahmadkhani, Katharina Boguslawski, Iulia Brumboiu, Marta Gałyńska, Dariusz Kędziera, Maximilian H. Kriebel, Paweł Tecmer, Piotr Szymon Żuchowski, PyBEST 2.1.0, 2025

If you use PyBEST, please cite the following:

Katharina Boguslawski, Filip Brzęk, Rahul Chakraborty, Kacper Cieślak, Seyedehdelaram Jahani, Aleksandra Leszczyk, Artur Nowak, Emil Sujkowski, Julian Świerczyński, Somayeh Ahmadkhani, Dariusz Kędziera, Maximilian H. Kriebel, Piotr Szymon Żuchowski, Paweł Tecmer, "PyBEST: Improved functionality and enhanced performance", Computer Physics Communications, 297, 2024, https://doi.org/10.1016/j.cpc.2023.109049.

Katharina Boguslawski, Aleksandra Leszczyk, Artur Nowak, Filip Brzęk, Piotr Szymon Żuchowski, Dariusz Kędziera, Paweł Tecmer, "Pythonic Black-box Electronic Structure Tool (PyBEST). An open-source Python platform for electronic structure calculations at the interface between chemistry and physics", Computer Physics Communications, 264, 2021, https://doi.org/10.1016/j.cpc.2021.107933.

Contact Information

If you have questions, please send them to our developer e-mail address pybest@umk.pl

Alternatively, you may directly contact the authors of a specific part of PyBEST.

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

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

pybest-2.1.0-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (73.0 MB view details)

Uploaded CPython 3.12+manylinux: glibc 2.17+ x86-64

pybest-2.1.0-cp312-abi3-macosx_14_0_arm64.whl (125.5 MB view details)

Uploaded CPython 3.12+macOS 14.0+ ARM64

pybest-2.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (73.0 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

pybest-2.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (73.0 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

pybest-2.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (73.0 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

File details

Details for the file pybest-2.1.0-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pybest-2.1.0-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 057777cc1efefa062ad2b207f9f8bb62aa4eb7732328ba9f19bd16c417f15b47
MD5 6b499e91900aa488daee20eb262dfae8
BLAKE2b-256 2ce4dbdd52c7ca894738cbd669d666109c92b4a6de4c7d434bd721c296256d8b

See more details on using hashes here.

File details

Details for the file pybest-2.1.0-cp312-abi3-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for pybest-2.1.0-cp312-abi3-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 57191ae27721e84e4a957fc11289c101ca611d214d1e0286af9e496d45d54c05
MD5 d86477334a8ed78af091d176c5be7e82
BLAKE2b-256 96a978ddb6c5720f95e8ae9bf486204ddf80650961ae5ebcf05908e55249292d

See more details on using hashes here.

File details

Details for the file pybest-2.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pybest-2.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3862821976fcd7edb8f65a6fc57e736d6819c15c4d1dab85188fe02c90e9a133
MD5 7b08605b7846ab3bf58d51b4535b821d
BLAKE2b-256 8f6f4c7a2a62f3a525b49e69245952635bc18e370ef9d61b5f44cbad7432346d

See more details on using hashes here.

File details

Details for the file pybest-2.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pybest-2.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0aa73d34f09310e3d256d749ffb235fd6cf583d4d8455e42d1a242e7b96a2708
MD5 e10b454f52c80ec9cbfb9ef460296c57
BLAKE2b-256 93602f87930275cce0d2772eb22ba67538ab08023da201c4cab181233547a432

See more details on using hashes here.

File details

Details for the file pybest-2.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pybest-2.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9cc36aa79cc533880af4b93bccd00e63ddb2d680e6dd1c09513ef5120db7d131
MD5 7161d01b21a3f33c46e3f1f4d606c4de
BLAKE2b-256 6dcfcfb69c9afd9adef8b3fc6f6462f17cd5668e6fbacc5820100e01432d53cb

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