Skip to main content

A library for quantum chemistry

Project description

Open Computational Chemistry (OCC)

Build & Test DOI

A next generation quantum chemistry and crystallography program and library.

Note: occ is in early development, and is undergoing substantial changes regularly - it is not stable, and features are being added & developed rapidly.

Features

Quantum chemistry

Occ is already a fairly fully featured program for ground-state single point calculations in quantum chemistry, including:

  • Hartree-Fock (Restricted, Unrestricted and General Spinorbitals)
  • Density-Functional Theory (Restricted & Unrestricted Spinorbitals)
    • The LDA, GGA and meta-GGA approximations are supported
    • Global hybrid functionals (range-separated will be added in the future)
  • Density fitting (RI-JK) using an auxiliary basis for all above methods
  • Implicit solvation via SMD

Seminumerical exchange (i.e. chain of spheres/COSX) has been implemented, but the performance is not yet good enough to be useful.

Property calculations that are currently available

  • Molecular and atomic multipole moments up to hexadecapole (only Mulliken partitioning is implemented)
  • Electrostatic potential calculations
  • Electron density (of course)
  • CHELPG charges

I've recently added an implementation of the XDM dispersion model, which will be properly interfaced and made convenient to use in the future.

Not yet implemented:

  • Gradients (and optimization of geometries)
  • Perturbation theory (e.g. MP2)
  • Coupled-cluster methods

Crystal structures

  • Reading CIF files (via gemmi)
  • Fast periodic bond detection, generation of symmetry unique molecules, dimers and more...
  • CrystalExplorer model energies
  • Automatic direct space summation of lattice energies for neutral molecular crystals including Wolf summation.
  • Hirshfeld surfaces, and promolecule surfaces

Misc

  • Spherical harmonic transforms using FFTs
  • Molecular point group detection/determination
  • Reading/writing Gaussian fchk files (including MO normalization and reordering of basis functions)
  • Reading molden files (including MO normalization and reordering of basis functions)
  • Writing numpy .npy arrays
  • Reading QCSchema formatted JSON files.
  • Reading basic Gaussian input files
  • Marching cubes
  • Morton codes for linear-hashed octrees
  • Electronegativity equilibration method for charges

First steps have been taken, with a proof of concept python interface for convenience & scripting using pybind11.

Compilation

occ requires a compliant C++17 compiler e.g. GCC-10 or newer.

Dependencies

occ makes use of the the following open source libraries:

And for the library tests/benchmarks:

Getting the source code

First clone the repository:

git clone https://github.com/peterspackman/occ.git

Getting dependencies

Most of the dependencies can be downloaded and compiled via CPM, but you may wish to use system installed dependencies for libxc and eigen3 which will be searched for by default. Note occ requires eigen version 3.4 or newer, which most operating systems do not package by default.

Caching dependency downloads

If you wish to download and compile all dependencies, but you're a developer or want to avoid downloading the dependencies every new build, I'd recommend setting up a source cache for CPM via the environment variable CPM_SOURCE_CACHE e.g. adding the following to your environment.

export CPM_SOURCE_CACHE="$HOME/.cache/cpm"

For building the repository I highly recommend using ninja rather than make.

Once the dependencies are installed, start an out-of-source build e.g.

mkdir build && cd build
cmake .. -GNinja

OR, if you'd rather download all dependencies you could call cmake with:

cmake .. -GNinja \
    -DUSE_SYSTEM_LIBXC=OFF \
    -DUSE_SYSTEM_EIGEN=OFF

Generally, speedups can be achieved by allowing the compiler to optimize for your platform using -march=native or similar flags.

Finally, to build the binary occ, running

ninja occ

will result in the binary being built under the bin directory wherever your build directory is located

Usage

All following usage is a work in progress, expect significant changes constantly for the time-being while the exact input format is decided.

occ

By default occ -h will print out its usage options, but basic usage given a geometry e.g. h2o.xyz format would be:

occ scf h2o.xyz b3lyp 6-31g

Basis set locations

note The path the occ will use to search for basis sets can be configured with the OCC_DATA_PATH environment variable, or you can simply make the basis set available in your working directory.

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

occpy-0.6.2-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (26.8 MB view details)

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

occpy-0.6.2-cp312-abi3-macosx_11_0_arm64.whl (21.9 MB view details)

Uploaded CPython 3.12+ macOS 11.0+ ARM64

occpy-0.6.2-cp312-abi3-macosx_10_15_universal2.whl (44.4 MB view details)

Uploaded CPython 3.12+ macOS 10.15+ universal2 (ARM64, x86-64)

occpy-0.6.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (26.8 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

occpy-0.6.2-cp311-cp311-macosx_11_0_arm64.whl (21.9 MB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

occpy-0.6.2-cp311-cp311-macosx_10_15_universal2.whl (44.4 MB view details)

Uploaded CPython 3.11 macOS 10.15+ universal2 (ARM64, x86-64)

occpy-0.6.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (26.8 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

occpy-0.6.2-cp310-cp310-macosx_11_0_arm64.whl (21.9 MB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

occpy-0.6.2-cp310-cp310-macosx_10_15_universal2.whl (44.4 MB view details)

Uploaded CPython 3.10 macOS 10.15+ universal2 (ARM64, x86-64)

occpy-0.6.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (26.8 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

occpy-0.6.2-cp39-cp39-macosx_11_0_arm64.whl (21.9 MB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

occpy-0.6.2-cp39-cp39-macosx_10_15_universal2.whl (44.4 MB view details)

Uploaded CPython 3.9 macOS 10.15+ universal2 (ARM64, x86-64)

File details

Details for the file occpy-0.6.2-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for occpy-0.6.2-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6998dde89846d86d8eaaec70679b3a37ca60f10d0f0db70579e52e1018c2fe94
MD5 fb0f3f5f9c17ed91ded0c15b9a1adfc3
BLAKE2b-256 b84919306df40e5b1157d44187810f8a4c233c272353ce6410d063dc33de56d7

See more details on using hashes here.

File details

Details for the file occpy-0.6.2-cp312-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for occpy-0.6.2-cp312-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 aad0bbd87d22f010d9b8f0569679762d0089a35cf79b0cdc55a5be0abfc41827
MD5 020ae4230712a16a8a51500ded633380
BLAKE2b-256 f6ee0d3fd2575bd7155252fb3fdd78c15256bf26bf4917d3b02f6a1e32e0d502

See more details on using hashes here.

File details

Details for the file occpy-0.6.2-cp312-abi3-macosx_10_15_universal2.whl.

File metadata

File hashes

Hashes for occpy-0.6.2-cp312-abi3-macosx_10_15_universal2.whl
Algorithm Hash digest
SHA256 9093984225f12238d0ceaa59df333eb02a25ded2ea1693292bf073440e383a17
MD5 2d0fe9642af2bd36b9f80dc9b33a6f5b
BLAKE2b-256 9c8e5c0b8cbb9f97df99e76b6554aefb16876b3d198a38fd785328e1fbb1f544

See more details on using hashes here.

File details

Details for the file occpy-0.6.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for occpy-0.6.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 52f6a15c7385ab9c4787639d7ec638fded2adb639eae44afc7e7ef5f0ba2ead6
MD5 ea64db5c43435b943d6b914368050e46
BLAKE2b-256 15cddb090d64d8a027e6896d261e29f1f83fa341041eebff2030c4cb52ee9ee1

See more details on using hashes here.

File details

Details for the file occpy-0.6.2-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for occpy-0.6.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0ec71463aa3df77a3aa3351e57ab2d5f15711b951a8d65576f46f61aac299158
MD5 7257ac271572735b13d48afd0c526d5e
BLAKE2b-256 23180ca10a7ea69e12e8ce13cc34895427895f0e658f653498f5ce50aaac512c

See more details on using hashes here.

File details

Details for the file occpy-0.6.2-cp311-cp311-macosx_10_15_universal2.whl.

File metadata

File hashes

Hashes for occpy-0.6.2-cp311-cp311-macosx_10_15_universal2.whl
Algorithm Hash digest
SHA256 40c9f4df70e0b809fd47a190295e41b627a99a0f0f8f9919317684709b187fc2
MD5 a0751ec1ffe8f898837cc655a46063b3
BLAKE2b-256 0f85f22cb81dc4b83f39b955d7f9a55fccf9ad8e6d2227ad3c33d171bc100491

See more details on using hashes here.

File details

Details for the file occpy-0.6.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for occpy-0.6.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e2e31230a81a8b236e64843447624e521d34d268be22d2ecd94252ed92deb459
MD5 bd8a205f1659a054054abb2995722736
BLAKE2b-256 734de8599a28cc399394c6e8ca35bc113f80fea438d230a2bd1a79f3d2a18ce8

See more details on using hashes here.

File details

Details for the file occpy-0.6.2-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for occpy-0.6.2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1fea3a7e2b0c364e87fdf2b803a63ba794670d506051ba9c609cc16b5917af60
MD5 d0d1d3380a7d38f24d4cf5d93912348e
BLAKE2b-256 d8b02675be70177826e6d342827a1b82ecd7d6f790a8af0ccab509a1aa463c4a

See more details on using hashes here.

File details

Details for the file occpy-0.6.2-cp310-cp310-macosx_10_15_universal2.whl.

File metadata

File hashes

Hashes for occpy-0.6.2-cp310-cp310-macosx_10_15_universal2.whl
Algorithm Hash digest
SHA256 61af8cbe702f812527406ac4296d2f128079808b666bcc3cdb4eeadfad8e830f
MD5 bdf0829c9adeaef8c746ba4cf0f263e8
BLAKE2b-256 77d25b6f7a6e4e4a1f8f49a4629a613c8a3151fb060ad191fb8ca131167a432d

See more details on using hashes here.

File details

Details for the file occpy-0.6.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for occpy-0.6.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 df8fc9f59272c043d4e50e920d98fb7974ef91df728807bf40857c9b6547f497
MD5 4be84bd682f51bc980c21a0d57642336
BLAKE2b-256 aeb16c0d1b438f869b82acb7b2556153d04341755d449edb6fa6d07da887dae7

See more details on using hashes here.

File details

Details for the file occpy-0.6.2-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for occpy-0.6.2-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f6c0ab942ea231285126d2ec75750b6cd13dfe7b40473d9162f45641c2d0b2e4
MD5 36faa6c9c0a90272e3e42f78821f7809
BLAKE2b-256 64ab550bdf84a8303eee39da95c7bd23c3e543a3054e9c5ef170b32ce6aa8662

See more details on using hashes here.

File details

Details for the file occpy-0.6.2-cp39-cp39-macosx_10_15_universal2.whl.

File metadata

File hashes

Hashes for occpy-0.6.2-cp39-cp39-macosx_10_15_universal2.whl
Algorithm Hash digest
SHA256 61f45fec736468e1b0e8399b64bd4228e6efc66cbc11b0de126015b09b232c33
MD5 ad3bc970ba1d6b8edcf653cec907c5c1
BLAKE2b-256 000ffab98e7d26cbace6c5b4fe97fdd4581289fad003a0621f32427948f62db5

See more details on using hashes here.

Supported by

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