Skip to main content

Light-weight tight-binding framework

Project description

This directory contains the Python API of the tblite project.

This interface provides access to the C-API of tblite via the CFFI module. The low-level CFFI interface is available in the tblite.library module and only required for implementing other interfaces. A more pythonic interface is provided in the tblite.interface module which can be used to build more specific interfaces.

from tblite.interface import Calculator
import numpy as np
numbers = np.array([1, 1, 6, 5, 1, 15, 8, 17, 13, 15, 5, 1, 9, 15, 1, 15])
positions = np.array([  # Coordinates in Bohr
    [+2.79274810283778, +3.82998228828316, -2.79287054959216],
    [-1.43447454186833, +0.43418729987882, +5.53854345129809],
    [-3.26268343665218, -2.50644032426151, -1.56631149351046],
    [+2.14548759959147, -0.88798018953965, -2.24592534506187],
    [-4.30233097423181, -3.93631518670031, -0.48930754109119],
    [+0.06107643564880, -3.82467931731366, -2.22333344469482],
    [+0.41168550401858, +0.58105573172764, +5.56854609916143],
    [+4.41363836635653, +3.92515871809283, +2.57961724984000],
    [+1.33707758998700, +1.40194471661647, +1.97530004949523],
    [+3.08342709834868, +1.72520024666801, -4.42666116106828],
    [-3.02346932078505, +0.04438199934191, -0.27636197425010],
    [+1.11508390868455, -0.97617412809198, +6.25462847718180],
    [+0.61938955433011, +2.17903547389232, -6.21279842416963],
    [-2.67491681346835, +3.00175899761859, +1.05038813614845],
    [-4.13181080289514, -2.34226739863660, -3.44356159392859],
    [+2.85007173009739, -2.64884892757600, +0.71010806424206],
])
calc = Calculator("GFN2-xTB", numbers, positions)
res = calc.singlepoint()
print(res.get("energy"))  # Results in atomic units
# => -31.716159156026254

Building the extension module

The Python bindings can be built against an existing installation of tblite or free-standing. The free-standing implementation will select a matching version of the shared library, when building against an existing tblite library the API version of the two parts must match.

Setuptools build

This project support installation with pip as an easy way to build the Python API.

  • C compiler to build the C-API and compile the extension module (the compiler name should be exported in the CC environment variable)

  • Python 3.6 or newer

  • The following Python packages are required additionally

Ensure that you can find tblite via

pkg-config --modversion tblite

Adjust the PKG_CONFIG_PATH environment variable to include the correct directories to find the installation if necessary. Alternatively, you can set the TBLITE_PREFIX environment variable to point to the installation of the library.

Make sure to have your C compiler set to the CC environment variable

export CC=gcc

Install the project with pip

pip install .

Using meson

This directory contains a separate meson build file to allow the out-of-tree build of the CFFI extension module. The out-of-tree build requires

  • C compiler to build the C-API and compile the extension module

  • meson version 0.55 or newer

  • a build-system backend, i.e. ninja version 1.7 or newer

  • Python 3.6 or newer with the CFFI package installed

To make a free-standing build you can provide the main repository as subproject to the Python bindings without having to build the shared library first. This can be done for example by symlinking the main repository to the subprojects directory.

mkdir subprojects
ln -s $(realpath ..) subprojects/tblite

Note that this step is not needed if you built against an existing tblite installation.

Setup a build with

meson setup _build -Dpython_version=$(which python3) --prefix=/path/to/install

The Python version can be used to select a different Python version, it defaults to 'python3'. Python 2 is not supported with this project, the Python version key is meant to select between several local Python 3 versions.

Compile the project with

meson compile -C _build

The extension module is now available in _build/tblite/_libtblite.*.so. You can install as usual with

meson install -C _build

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

tblite-0.2.1.tar.gz (508.8 kB view details)

Uploaded Source

Built Distributions

tblite-0.2.1-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (15.7 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.12+ x86-64

tblite-0.2.1-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (15.7 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.12+ x86-64

tblite-0.2.1-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (15.7 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.12+ x86-64

tblite-0.2.1-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (15.7 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.12+ x86-64

File details

Details for the file tblite-0.2.1.tar.gz.

File metadata

  • Download URL: tblite-0.2.1.tar.gz
  • Upload date:
  • Size: 508.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.7

File hashes

Hashes for tblite-0.2.1.tar.gz
Algorithm Hash digest
SHA256 c75f111fae963309f0ad9300bb45433b319f2b4f41176fb082f7bb8927ef3528
MD5 8170a35b9f1ca2a68f857d4fdcd7e8ba
BLAKE2b-256 6b7f0639f4c5f51e0f8a357679ffccd4616169e455127fec9b888e8fb1e0cbb0

See more details on using hashes here.

File details

Details for the file tblite-0.2.1-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for tblite-0.2.1-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 d68007f1f85cf5bc51ce4cd25663d7035e14a7c970753591fbaff39861607ab6
MD5 8d9e1b0849ca2a42df3c9f103bea659e
BLAKE2b-256 33d0fc66d529dba0b488ec4731102232bb3dd87e8e6de07eec0efb5c96b9d05d

See more details on using hashes here.

File details

Details for the file tblite-0.2.1-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for tblite-0.2.1-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 6484027d99fed2579cdb054581992faaa0f47fc2819bf3b4fa3bd73f2c6b5112
MD5 fa004c59a00abb355b0315017db84ab4
BLAKE2b-256 e906aa2cc44cf2a88d888965731ae2523b86876339f491ec768b22a8d51e7576

See more details on using hashes here.

File details

Details for the file tblite-0.2.1-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for tblite-0.2.1-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 8b6c573e3f5f2135b67a5d100033bebdab47417708c9759897e8ab4eb254f3d8
MD5 b52d21677976fb18d5410cafdc8beb4f
BLAKE2b-256 cfe43e9cab4afc0b897546bcfd77e291fc46661de422f5f38aaa1b20109878fd

See more details on using hashes here.

File details

Details for the file tblite-0.2.1-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for tblite-0.2.1-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 570e0b71785f29a4bdb366581f0f69b58611db5cd5dbb03ef23cb23845e80c7e
MD5 fd271c0d483c1c746f14dc672dfca8ff
BLAKE2b-256 dd1753d842ead7cea57ed87d7f3b277149eacfe9a84d5c5f6a831b1b2535233e

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