{"id":13833045,"url":"https://github.com/molsturm/molsturm","last_synced_at":"2025-07-09T20:31:01.655Z","repository":{"id":217325498,"uuid":"95451945","full_name":"molsturm/molsturm","owner":"molsturm","description":"A modular electronic structure theory code","archived":true,"fork":false,"pushed_at":"2018-08-11T12:36:15.000Z","size":4284,"stargazers_count":20,"open_issues_count":15,"forks_count":2,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-11-20T16:39:29.951Z","etag":null,"topics":["electronic-structure","hartree-fock","python","quantum-chemistry","sturmian"],"latest_commit_sha":null,"homepage":"https://molsturm.org","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/molsturm.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-06-26T13:57:11.000Z","updated_at":"2023-11-14T12:35:45.000Z","dependencies_parsed_at":null,"dependency_job_id":"4545d78c-fa41-4941-8078-742396ea76e5","html_url":"https://github.com/molsturm/molsturm","commit_stats":null,"previous_names":["molsturm/molsturm"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/molsturm/molsturm","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/molsturm%2Fmolsturm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/molsturm%2Fmolsturm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/molsturm%2Fmolsturm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/molsturm%2Fmolsturm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/molsturm","download_url":"https://codeload.github.com/molsturm/molsturm/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/molsturm%2Fmolsturm/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264502644,"owners_count":23618663,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["electronic-structure","hartree-fock","python","quantum-chemistry","sturmian"],"created_at":"2024-08-04T11:00:38.309Z","updated_at":"2025-07-09T20:31:01.645Z","avatar_url":"https://github.com/molsturm.png","language":"Python","funding_links":[],"categories":["programs"],"sub_categories":[],"readme":"# molsturm\n[![Build Status](https://travis-ci.org/molsturm/molsturm.svg?branch=master)](https://travis-ci.org/molsturm/molsturm)\n[![Licence](https://img.shields.io/github/license/molsturm/molsturm.svg)](LICENCE)\n\n``molsturm`` is a modular electronic structure theory program,\nwhich tries to employ concepts like lazy matrices and orthogonal programming\nto achieve a versatile structure.\nOur motto is *flexibility first, but speed second*, even though we are probably very far\nfrom either of the two still.\n\nNote that this is a very young project.\nThings may change in incompatible ways at any time.\n\n## Dependencies\n``molsturm`` consists of a set of compiled ``C++`` libraries\nas well as a ``python`` module, which the user may use to setup and drive the calculations.\n\nFor *building* `molsturm` the following things are required:\n- ``cmake`` \u003e= 3.0.0\n- A compiler supporting ``C++11``: ``clang`` starting from `clang-3.5` and `gcc` starting\n  from `gcc-5` should work.\n- [``swig``](http://swig.org/) \u003e= 2.0.11\n- [``python``](https://www.python.org/) \u003e= 3.4, including the development headers\n- The [regular build process](#building-molsturm) mentioned below\n  will automatically build the [``lazyten``](https://lazyten.org) linear algebra library\n  as well. This requires further\n    - A BLAS implementation, e.g. [OpenBLAS](https://github.com/xianyi/OpenBLAS/)\n    - A LAPACK compatible library, e.g. [LAPACK](http://netlib.org/lapack)\n    - [armadillo](http://arma.sourceforge.net/)\n\n  See [github.com/lazyten/lazyten](https://github.com/lazyten/lazyten/blob/master/README.md)\n  for more details about ``lazyten``'s dependencies.\n- If you want to use Gaussian integrals from\n  [``libint``](https://github.com/evaleev/libint) you further need\n    - Eigen3\n    - Autoconf\n    - GNU Multiprecision library\n\nIn order to actually [use the `molsturm`-module](#using-molsturm-from-python) once\nit has been built the following `python` packages are required:\n- [h5py](https://pypi.python.org/pypi/h5py)\n- [numpy](https://pypi.python.org/pypi/numpy)\n- [scipy](https://pypi.python.org/pypi/scipy)\n- [PyYAML](https://pypi.python.org/pypi/PyYAML)\n\nOn a recent **Debian/Ubuntu** you can install all the aforementioned dependencies by running\n```\napt-get install cmake swig python3-dev libopenblas-dev liblapack-dev libarmadillo-dev \\\n                python3-h5py python3-yaml python3-numpy python3-scipy libeigen3-dev \\\n                autoconf libgmp-dev\n```\nas root.\n\n### Optional dependencies\nThe dependencies in this section are only needed for some extra functionality.\n`molsturm` will work without them, but the mentioned features will be unavailable.\n\n- [pyscf](https://github.com/sunqm/pyscf) for full-configuration interaction (FCI)\n\n\n## Building ``molsturm``\nThe **recommended build** enables\nEdward Valeev's [``libint``](https://github.com/evaleev/libint) library\nas an integral backend for Gaussian-type basis functions\nand installs ``molsturm`` to `$HOME/opt` of the local user:\n```sh\n# Fully download molsturm repository and dependent submodules\ngit clone https://github.com/molsturm/molsturm molsturm\ncd molsturm\ngit submodule update --init --recursive\n\n# Configure inside build directory\nmkdir build \u0026\u0026 cd build\ncmake -DCMAKE_INSTALL_PREFIX=~/opt -DAUTOCHECKOUT_MISSING_REPOS=ON -DGINT_ENABLE_LIBINT=ON ..\ncmake --build .\n\n# Test and install the build\nctest\ncmake --build . --target install\n```\nNote, that this will automatically download and build ``libint`` as well as\n[``rapidcheck``](https://github.com/emil-e/rapidcheck) and\n[``Catch``](https://github.com/philsquared/Catch/)\nas well.\nThe latter two libraries are only needed for testing `molsturm` and are\nnot installed to `$HOME/opt`\n\nInstalling `molsturm` is **still experimental** and might not work properly\nin all cases. Please let us know about any problems.\nEvery other feedback to improve the process is welcomed as well.\n\n### Configure options\nIn order to configure the build further there are a number of options,\nwhich can be passed to the first invocation of `cmake` in the instructions above.\nFor example\n- `-DCMAKE_INSTALL_PREFIX=\u003cdir\u003e`: Choose a different installation directory\n  for  ``molsturm`` (if you remove the option entirely,\n  the default is ``/usr/local``)\n- `-DENABLE_TESTS=OFF`: Disable building the unit test executables\n- `-DENABLE_EXAMPLES=OFF`: Disable building the example executables\n- `-DENABLE_DOCUMENTATION=ON`: Build and install the *sparse*\n  [doxygen](http://www.stack.nl/~dimitri/doxygen/index.html)-generated\n  in-source documentation.\n- `-DGINT_ENABLE_LIBCINT=ON`: Enable Gaussian integrals via the\n  [``libcint``](https://github.com/sunqm/libcint) library.\n- `-DGINT_ENABLE_STURMINT=ON`: Enable the Coulomb-Sturmian basis functions\n  via [`sturmint`](https://molsturm.org/sturmint)\n  (This library is not yet publicly available, but will be released soon.)\n\n\n## Using `molsturm` from `python`\nGiven that you followed the build procedure sketched above,\nyou just need to make sure that your `python` interpreter finds `molsturm`\nin the installation directory.\nThis is done by modifying the `PYTHONPATH`.\nFor example if you chose the `CMAKE_INSTALL_PREFIX` of `~/opt`\nas we shown above, you need to type\n```\n# Find out the major and minor version of your python interpreter:\nVERSION=$(python3 -c 'import sys; print(str(sys.version_info.major) + \".\" + str(sys.version_info.minor))')\nexport PYTHONPATH=\"$PYTHONPATH:$HOME/opt/lib/python${VERSION}/site-packages\"\n```\nto setup your environment for `molsturm`.\n\nYou might need to change `python3` to `python` in the first line\nif your operating system uses `python` to refer to the binary of your\n`python` version 3 interpreter.\n\n### Running calculations\nTo get started with `molsturm` take a look at the [examples](examples/) subfolder.\nGood entry points are especially the [single_point](examples/single_point) scripts.\n\nIn principle a calculation is a sequence of calls\nto `python` functions of the `molsturm` module.\nFor example the snippet\n```python\nimport molsturm\nhfres = molsturm.hartree_fock(\"Be\", basis_type=\"gaussian\",\n                              basis_set_name=\"6-31g\")\nprint(\"Be HF energy\", hfres[\"energy_ground_state\"])\n```\njust performs a Hartree-Fock calculation on a beryllium atom and\nprints the resulting SCF energy.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmolsturm%2Fmolsturm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmolsturm%2Fmolsturm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmolsturm%2Fmolsturm/lists"}