tad-libcint


Nametad-libcint JSON
Version 0.1.0 PyPI version JSON
download
home_pagehttps://github.com/tad-mctc/tad-libcint/
Summary"Torch Autodiff Libcint Interface"
upload_time2024-06-28 14:39:21
maintainerNone
docs_urlNone
author"Marvin Friede"
requires_python<3.13,>=3.8
licenseApache-2.0
keywords tight-binding quantum-chemistry integrals library
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # PyTorch-based Libcint Interface

<table>
  <tr>
    <td>Compatibility:</td>
    <td>
      <img src="https://img.shields.io/badge/Python-3.8%20|%203.9%20|%203.10%20|%203.11%20|%203.12-blue.svg" alt="Python Versions"/>
      <img src="https://img.shields.io/badge/PyTorch-%3E=1.11.0-blue.svg" alt="PyTorch Versions"/>
      <img src="https://img.shields.io/badge/OS-Linux-blue.svg" alt="Operating Systems">
    </td>
  </tr>
  <tr>
    <td>Availability:</td>
    <td>
      <a href="https://github.com/tad-mctc/tad-libcint/releases/latest">
        <img src="https://img.shields.io/github/v/release/tad-mctc/tad-libcint?color=orange" alt="Release"/>
      </a>
      <a href="https://pypi.org/project/tad-libcint/">
        <img src="https://img.shields.io/pypi/v/tad-libcint?color=orange" alt="PyPI"/>
      </a>
      <a href="http://www.apache.org/licenses/LICENSE-2.0">
        <img src="https://img.shields.io/badge/License-Apache%202.0-orange.svg" alt="Apache-2.0"/>
      </a>
    </td>
  </tr>
  <tr>
    <td>Status:</td>
    <td>
      <a href="https://github.com/tad-mctc/tad-libcint/actions/workflows/ubuntu.yaml">
        <img src="https://github.com/tad-mctc/tad-libcint/actions/workflows/ubuntu.yaml/badge.svg" alt="Tests Ubuntu"/>
      </a>
      <a href="https://github.com/tad-mctc/tad-libcint/actions/workflows/release.yaml">
        <img src="https://github.com/tad-mctc/tad-libcint/actions/workflows/release.yaml/badge.svg" alt="Build Status"/>
      </a>
      <a href="https://tad-libcint.readthedocs.io">
        <img src="https://readthedocs.org/projects/tad-libcint/badge/?version=latest" alt="Documentation Status"/>
      </a>
      <a href="https://results.pre-commit.ci/latest/github/tad-mctc/tad-libcint/main">
        <img src="https://results.pre-commit.ci/badge/github/tad-mctc/tad-libcint/main.svg" alt="pre-commit.ci Status"/>
      </a>
      <a href="https://codecov.io/gh/tad-mctc/tad-libcint">
        <img src="https://codecov.io/gh/tad-mctc/tad-libcint/branch/main/graph/badge.svg?token=9faLOhisRx" alt="Coverage"/>
      </a>
    </td>
  </tr>
</table>


## Content

This package contains a PyTorch-based interface to the *[libcint](https://github.com/sunqm/libcint)* high-performance integral library (check version [here](https://github.com/tad-mctc/libcint/blob/dxtb/README.rst)).
The interface facilitates automatic differentiation with custom backward functions that call *libcint*'s C backend for derivative calculation.

It is based on [PySCF's lib directory](https://github.com/pyscf/pyscf/tree/master/pyscf/lib). Modifications include

- removal of unnecessary code
- minor adaptation of build instructions (CMakeLists.txt)

The project was heavily inspired by *[diffqc/dqc](https://github.com/diffqc/dqc)* and *[diffqc/dqclibs](https://github.com/diffqc/dqclibs)*.

This interface was mainly written for the calculation of integrals within *[grimme-lab/dxtb](https://github.com/grimme-lab/dxtb)*.


## Installation

### pip

The `tad-libcint` package can be obtained from pip.

```console
pip install tad-libcint
```

### Build from source

You can also build the Python wheels from source.

1. Get the repository (including libcint submodule).

```console
git clone --recursive git@github.com:grimme-lab/tad-libcint.git
cd tad-libcint
```

The [libcint fork](https://github.com/tad-mctc/libcint/tree/dxtb) contains additional integrals required for `dxtb` and removes unneccessary ones.
Therefore, downloading from our fork is recommended.

If you already have the repository, you can update the submodule with

```console
git submodule update --remote
```

2. Create an environment (`conda`) for building the wheels. The example here uses Python 3.10, but we support 3.8-3.11.

```console
mamba create -n wheel-310 --yes python=3.10 auditwheel c-compiler cxx-compiler fortran-compiler cffi cmake git make meson ninja numpy patchelf pkgconfig pip python-build unzip wheel
mamba activate wheel-310
```

3. Build the wheel on your system.

```console
python -m build --wheel
```

4. Repair the wheels for cross-distribution packaging.

```console
auditwheel repair -w wheels --plat manylinux_2_12_x86_64 dist/*-cp310-cp310-linux_x86_64.whl
```

5. Or only install this project with `pip` in the environment.

```console
pip install .
```


## Development

For development, additionally install the following tools in your environment.

```console
mamba install black covdefaults coverage mypy pre-commit pylint tox
```

With pip, add the option `-e` for installing in development mode, and add `[dev]` for the development dependencies

```console
pip install -e .[dev]
```

The pre-commit hooks are initialized by running the following command in the root of the repository.

```console
pre-commit install
```

For testing all Python environments, simply run `tox`.

```console
tox
```

Note that this randomizes the order of tests but skips "large" tests. To modify this behavior, `tox` has to skip the optional *posargs*.

```console
tox -- test
```

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/tad-mctc/tad-libcint/",
    "name": "tad-libcint",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<3.13,>=3.8",
    "maintainer_email": null,
    "keywords": "tight-binding, quantum-chemistry, integrals, library",
    "author": "\"Marvin Friede\"",
    "author_email": "friede@thch.uni-bonn.de",
    "download_url": "https://files.pythonhosted.org/packages/b9/5d/e70a4230531f46a9f71a3a6950b7049eecfc0259556e97dc54f6dd7a3b53/tad_libcint-0.1.0.tar.gz",
    "platform": null,
    "description": "# PyTorch-based Libcint Interface\n\n<table>\n  <tr>\n    <td>Compatibility:</td>\n    <td>\n      <img src=\"https://img.shields.io/badge/Python-3.8%20|%203.9%20|%203.10%20|%203.11%20|%203.12-blue.svg\" alt=\"Python Versions\"/>\n      <img src=\"https://img.shields.io/badge/PyTorch-%3E=1.11.0-blue.svg\" alt=\"PyTorch Versions\"/>\n      <img src=\"https://img.shields.io/badge/OS-Linux-blue.svg\" alt=\"Operating Systems\">\n    </td>\n  </tr>\n  <tr>\n    <td>Availability:</td>\n    <td>\n      <a href=\"https://github.com/tad-mctc/tad-libcint/releases/latest\">\n        <img src=\"https://img.shields.io/github/v/release/tad-mctc/tad-libcint?color=orange\" alt=\"Release\"/>\n      </a>\n      <a href=\"https://pypi.org/project/tad-libcint/\">\n        <img src=\"https://img.shields.io/pypi/v/tad-libcint?color=orange\" alt=\"PyPI\"/>\n      </a>\n      <a href=\"http://www.apache.org/licenses/LICENSE-2.0\">\n        <img src=\"https://img.shields.io/badge/License-Apache%202.0-orange.svg\" alt=\"Apache-2.0\"/>\n      </a>\n    </td>\n  </tr>\n  <tr>\n    <td>Status:</td>\n    <td>\n      <a href=\"https://github.com/tad-mctc/tad-libcint/actions/workflows/ubuntu.yaml\">\n        <img src=\"https://github.com/tad-mctc/tad-libcint/actions/workflows/ubuntu.yaml/badge.svg\" alt=\"Tests Ubuntu\"/>\n      </a>\n      <a href=\"https://github.com/tad-mctc/tad-libcint/actions/workflows/release.yaml\">\n        <img src=\"https://github.com/tad-mctc/tad-libcint/actions/workflows/release.yaml/badge.svg\" alt=\"Build Status\"/>\n      </a>\n      <a href=\"https://tad-libcint.readthedocs.io\">\n        <img src=\"https://readthedocs.org/projects/tad-libcint/badge/?version=latest\" alt=\"Documentation Status\"/>\n      </a>\n      <a href=\"https://results.pre-commit.ci/latest/github/tad-mctc/tad-libcint/main\">\n        <img src=\"https://results.pre-commit.ci/badge/github/tad-mctc/tad-libcint/main.svg\" alt=\"pre-commit.ci Status\"/>\n      </a>\n      <a href=\"https://codecov.io/gh/tad-mctc/tad-libcint\">\n        <img src=\"https://codecov.io/gh/tad-mctc/tad-libcint/branch/main/graph/badge.svg?token=9faLOhisRx\" alt=\"Coverage\"/>\n      </a>\n    </td>\n  </tr>\n</table>\n\n\n## Content\n\nThis package contains a PyTorch-based interface to the *[libcint](https://github.com/sunqm/libcint)* high-performance integral library (check version [here](https://github.com/tad-mctc/libcint/blob/dxtb/README.rst)).\nThe interface facilitates automatic differentiation with custom backward functions that call *libcint*'s C backend for derivative calculation.\n\nIt is based on [PySCF's lib directory](https://github.com/pyscf/pyscf/tree/master/pyscf/lib). Modifications include\n\n- removal of unnecessary code\n- minor adaptation of build instructions (CMakeLists.txt)\n\nThe project was heavily inspired by *[diffqc/dqc](https://github.com/diffqc/dqc)* and *[diffqc/dqclibs](https://github.com/diffqc/dqclibs)*.\n\nThis interface was mainly written for the calculation of integrals within *[grimme-lab/dxtb](https://github.com/grimme-lab/dxtb)*.\n\n\n## Installation\n\n### pip\n\nThe `tad-libcint` package can be obtained from pip.\n\n```console\npip install tad-libcint\n```\n\n### Build from source\n\nYou can also build the Python wheels from source.\n\n1. Get the repository (including libcint submodule).\n\n```console\ngit clone --recursive git@github.com:grimme-lab/tad-libcint.git\ncd tad-libcint\n```\n\nThe [libcint fork](https://github.com/tad-mctc/libcint/tree/dxtb) contains additional integrals required for `dxtb` and removes unneccessary ones.\nTherefore, downloading from our fork is recommended.\n\nIf you already have the repository, you can update the submodule with\n\n```console\ngit submodule update --remote\n```\n\n2. Create an environment (`conda`) for building the wheels. The example here uses Python 3.10, but we support 3.8-3.11.\n\n```console\nmamba create -n wheel-310 --yes python=3.10 auditwheel c-compiler cxx-compiler fortran-compiler cffi cmake git make meson ninja numpy patchelf pkgconfig pip python-build unzip wheel\nmamba activate wheel-310\n```\n\n3. Build the wheel on your system.\n\n```console\npython -m build --wheel\n```\n\n4. Repair the wheels for cross-distribution packaging.\n\n```console\nauditwheel repair -w wheels --plat manylinux_2_12_x86_64 dist/*-cp310-cp310-linux_x86_64.whl\n```\n\n5. Or only install this project with `pip` in the environment.\n\n```console\npip install .\n```\n\n\n## Development\n\nFor development, additionally install the following tools in your environment.\n\n```console\nmamba install black covdefaults coverage mypy pre-commit pylint tox\n```\n\nWith pip, add the option `-e` for installing in development mode, and add `[dev]` for the development dependencies\n\n```console\npip install -e .[dev]\n```\n\nThe pre-commit hooks are initialized by running the following command in the root of the repository.\n\n```console\npre-commit install\n```\n\nFor testing all Python environments, simply run `tox`.\n\n```console\ntox\n```\n\nNote that this randomizes the order of tests but skips \"large\" tests. To modify this behavior, `tox` has to skip the optional *posargs*.\n\n```console\ntox -- test\n```\n",
    "bugtrack_url": null,
    "license": "Apache-2.0",
    "summary": "\"Torch Autodiff Libcint Interface\"",
    "version": "0.1.0",
    "project_urls": {
        "Documentation": "https://github.com/tad-mctc/tad-libcint",
        "Homepage": "https://github.com/tad-mctc/tad-libcint/",
        "Source Code": "https://github.com/tad-mctc/tad-libcint",
        "Tracker": "https://github.com/tad-mctc/tad-libcint/issues"
    },
    "split_keywords": [
        "tight-binding",
        " quantum-chemistry",
        " integrals",
        " library"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "6e3c54b6221bcaaaabaa859c9f613765dd470ce725a8ff18bed20aea34af3919",
                "md5": "cb81582c67aa7c4a822d379fd539f514",
                "sha256": "35b7baba4690bd91d8e237a772478d8dec5a18a4beee4e28727b6c953ebc7e65"
            },
            "downloads": -1,
            "filename": "tad_libcint-0.1.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl",
            "has_sig": false,
            "md5_digest": "cb81582c67aa7c4a822d379fd539f514",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": "<3.13,>=3.8",
            "size": 20162358,
            "upload_time": "2024-06-28T14:38:48",
            "upload_time_iso_8601": "2024-06-28T14:38:48.780337Z",
            "url": "https://files.pythonhosted.org/packages/6e/3c/54b6221bcaaaabaa859c9f613765dd470ce725a8ff18bed20aea34af3919/tad_libcint-0.1.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "58b7bade1205ae42a94f1663c992216676d2336d37342ffccecab383b573ad96",
                "md5": "bfa5f798e23d4d02ddaf287bd8577aaa",
                "sha256": "a71178ec0bd9e4a02b4f82c7403549f97c24c606cd3e1670b0252507a9bfa890"
            },
            "downloads": -1,
            "filename": "tad_libcint-0.1.0-cp311-cp311-manylinux_2_12_x86_64.manylinux2010_x86_64.whl",
            "has_sig": false,
            "md5_digest": "bfa5f798e23d4d02ddaf287bd8577aaa",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": "<3.13,>=3.8",
            "size": 20162361,
            "upload_time": "2024-06-28T14:38:52",
            "upload_time_iso_8601": "2024-06-28T14:38:52.014083Z",
            "url": "https://files.pythonhosted.org/packages/58/b7/bade1205ae42a94f1663c992216676d2336d37342ffccecab383b573ad96/tad_libcint-0.1.0-cp311-cp311-manylinux_2_12_x86_64.manylinux2010_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "2eaa219b821117c4bb54c3bd2edd886857ff6b42800a91c6bad9a0b66bc926c8",
                "md5": "4f6bac38ea69ea8b74099d62d4511b15",
                "sha256": "163712265be01bd54a301c6aaf6d6af91d917f1037c17d8d820930ea74e7b41a"
            },
            "downloads": -1,
            "filename": "tad_libcint-0.1.0-cp312-cp312-manylinux_2_12_x86_64.manylinux2010_x86_64.whl",
            "has_sig": false,
            "md5_digest": "4f6bac38ea69ea8b74099d62d4511b15",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": "<3.13,>=3.8",
            "size": 20449092,
            "upload_time": "2024-06-28T14:38:55",
            "upload_time_iso_8601": "2024-06-28T14:38:55.565927Z",
            "url": "https://files.pythonhosted.org/packages/2e/aa/219b821117c4bb54c3bd2edd886857ff6b42800a91c6bad9a0b66bc926c8/tad_libcint-0.1.0-cp312-cp312-manylinux_2_12_x86_64.manylinux2010_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d689b3ff7393e941e5c8f0392b8c24b7b4170566161a0bd8e7e33b0996e07ba0",
                "md5": "3343824012a29bbf6bca9e695d586c5d",
                "sha256": "7eca5fe1566f00f3de7dc1bfdb2879ed1b36b3a7cd4ee3ace20251bfcf846744"
            },
            "downloads": -1,
            "filename": "tad_libcint-0.1.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl",
            "has_sig": false,
            "md5_digest": "3343824012a29bbf6bca9e695d586c5d",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": "<3.13,>=3.8",
            "size": 20162365,
            "upload_time": "2024-06-28T14:38:40",
            "upload_time_iso_8601": "2024-06-28T14:38:40.726861Z",
            "url": "https://files.pythonhosted.org/packages/d6/89/b3ff7393e941e5c8f0392b8c24b7b4170566161a0bd8e7e33b0996e07ba0/tad_libcint-0.1.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f9bf84157594e1045835160a5cbff8d2ea68bc90c3d53aa44af052713b49a487",
                "md5": "949c94062d2fb3d4c92c268eabf91f39",
                "sha256": "4145c60f2782df3cee22b3967ef80b553899df5127946546d8a9372a0a8bba5a"
            },
            "downloads": -1,
            "filename": "tad_libcint-0.1.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl",
            "has_sig": false,
            "md5_digest": "949c94062d2fb3d4c92c268eabf91f39",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": "<3.13,>=3.8",
            "size": 20162358,
            "upload_time": "2024-06-28T14:38:44",
            "upload_time_iso_8601": "2024-06-28T14:38:44.871557Z",
            "url": "https://files.pythonhosted.org/packages/f9/bf/84157594e1045835160a5cbff8d2ea68bc90c3d53aa44af052713b49a487/tad_libcint-0.1.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b95de70a4230531f46a9f71a3a6950b7049eecfc0259556e97dc54f6dd7a3b53",
                "md5": "fefcd42e5e6b8ab49f02ed5f74abf122",
                "sha256": "c47332ec4c1b8a177b2d3c8f093a3ae04a507719efda5feb6c91991a23933444"
            },
            "downloads": -1,
            "filename": "tad_libcint-0.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "fefcd42e5e6b8ab49f02ed5f74abf122",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<3.13,>=3.8",
            "size": 51574823,
            "upload_time": "2024-06-28T14:39:21",
            "upload_time_iso_8601": "2024-06-28T14:39:21.525561Z",
            "url": "https://files.pythonhosted.org/packages/b9/5d/e70a4230531f46a9f71a3a6950b7049eecfc0259556e97dc54f6dd7a3b53/tad_libcint-0.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-06-28 14:39:21",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "tad-mctc",
    "github_project": "tad-libcint",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "tox": true,
    "lcname": "tad-libcint"
}
        
Elapsed time: 0.41846s