Science Score: 67.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 11 DOI reference(s) in README
  • Academic publication links
    Links to: wiley.com, acs.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.4%) to scientific vocabulary

Keywords

atomic-orbitals do-it-yourself dynamics electronic-structure library methodology-development molecular-dynamics nonadiabatic object-oriented quantum quantum-chemistry semiempirical-methods utilities
Last synced: 4 months ago · JSON representation ·

Repository

Basic Info
Statistics
  • Stars: 52
  • Watchers: 10
  • Forks: 51
  • Open Issues: 6
  • Releases: 19
Topics
atomic-orbitals do-it-yourself dynamics electronic-structure library methodology-development molecular-dynamics nonadiabatic object-oriented quantum quantum-chemistry semiempirical-methods utilities
Created over 8 years ago · Last pushed 5 months ago
Metadata Files
Readme License Code of conduct Citation Authors Zenodo

README.md

Libra

Build Status

This is the main page of the computational chemistry methodology discovery library, Libra The program website is here

Info

More:

Due to the increased volume of technical questions about installing and using the Libra, Libra-X, Pyxaid and Pyxaid2 codes, I have decided to create a convenient public forum for all users with the intent:

  • to share my replies with not only a single user that have a trouble, but also other potential users who may found that information useful;

  • so that the users/developers who have had some experience with the code would be able to share their knowledge and skills with others;

Installation Videotutorials (as of 5/16/2022)

Installation (as of after 3/23/2023)

1. Install miniconda (for Python 3.9) and activate Conda

1.1 Download and install

mkdir Conda
cd Conda/
wget https://repo.anaconda.com/miniconda/Miniconda3-py39_4.12.0-Linux-x86_64.sh .
sh ./Miniconda3-py39_4.12.0-Linux-x86_64.sh -b -u -p <install_dir>

Here,

  • the -b option will accept the license agreement and will skip all the prompts
  • the -u option will tell the installer to do all the needed updates
  • the -p option followed by the installation directory path (will be created), tells the installed where to install the package.

Test it is working by doing:

which conda

1.2 Update the conda

Actually, let's not do this:

conda update -n base -c defaults conda

1.3 Activate the environment

Add the following line to you .bashrc or .bash_profile scripts:

eval "$(<path to bin/conda> shell.bash hook)"

For instance,

eval "$(/projects/academic/cyberwksp21/SOFTWARE/Conda/bin/conda shell.bash hook)"

Restart your terminal or reload the .bashrc script:

source ~/.bashrc

When you do this, your command line should show up the (base) in front, indicating that the base environment is ready

Test it is working by doing:

which conda

2. Create the environment equipped with all Libra needs

2.1 Create the libra environment

In fact, you can call it whatever you like:

conda create -n libra python=3.7

2.2 Activate this environment

conda activate libra

This is very important step - when activated, all the installs will go into that folder.

In case you mess up with an environment, you can remove it with:

conda remove --name libra --all

2.3 Now, equip your environment with the required packages

Do this one by one, and in this order, (should not matter too much, but who knows...)

> To automate the below procedures, you can use `-y` option to accept prompts (sometimes this will override)
> previous packages/conflicts, so be careful
> 
> You can also use `-q` to get rid of all the messages to the output, although i'd keep it to keep track of what's going on

First let's install the most general packages:

conda install -y -c conda-forge numpy scipy matplotlib imageio

Next, all what we actually need:

conda install -y conda-build make
conda install -y anaconda::py-boost
conda install -y -c conda-forge gcc_linux-64=12.2.0 gxx_linux-64=12.2.0 cmake=3.24.2 python-devtools llvm-openmp
conda install -y -c conda-forge/label/gcc7 eigen mpfr
conda install -y -c psi4/label/dev libint2=2.7.1
conda install -y -c anaconda h5py gmp

Install Jupyter Lab or traditional Jupyter notebook as explainted here:

pip install -U jupyterlab

or 

pip install -U notebook

Install py3Dmol for viewing molecular structures:

pip install -U py3Dmol

Installation instruction of Scikit-learn from its official website:

pip install -U scikit-learn


>
>  YES - IT GOT SMALLER AND MORE COMPACT !
>

Install PyTorch - since the current versions of Libra have a growing number of functions/modules written with PyTorch. The general instructions can be found here

As a simple (most common case, peraps), we install PyTorch for CPU on Linux with:

pip install -U torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu

or

conda install pytorch cpuonly -c pytorch

3. Download and build Libra

3.1 Get it from the GitHub and choose the right branch

Clone the repo from the GitHub

git clone https://github.com/Quantum-Dynamics-Hub/libra-code.git libra

and switch to the correct branch or tag - usually, it would be devel branch

cd libra
git checkout devel

3.2 Create the build directory and make the Makefiles

Then in the libra directory, create the build directory:

mkdir _build
cd _build
cmake ../

3.3 Compile the package

make -j4

4. Make it ready to use

Add the following exports to your .bash_profile file

export PYTHONPATH=<path to the ppackage>/libra/_build/src:$PYTHONPATH

Restart the terminal or source the bash profile and activate libra conda environment

source .bash_profile 
conda activate libra

And you should be ready to use Libra.

Useful notes:

1. 2/15/2025 (from Liz Stippell):

Notes on making Libra if you have python v3.7+ installed anywhere on your system (Linux): Although the libra environment is made with python 3.7, during the cmake ../ step it will search for any python, including versions outside of the libra environment. (Ex: my system kept finding python v3.9 in my Miniconda here: /path/to/Conda/Miniconda3/include/python3.9 instead of searching within the libra environment: /path/to/Conda/Miniconda3/envs/libra )

To avoid this issue, you can add the following lines in the CMakeLists.txt file in your libra source code directory around line 44:

""" set(Python3ROOTDIR "/path/to/Conda/Miniconda3/envs/libra") set(Python3EXECUTABLE "/path/to/Conda/Miniconda3/envs/libra/bin/python3") set(Python3LIBRARY "/path/to/Conda/Miniconda3/envs/libra/lib/libpython3.7m.so") set(Python3INCLUDEDIR "/path/to/Conda/Miniconda3/envs/libra/include/python3.7m") FIND_PACKAGE(Python3 3.6 REQUIRED COMPONENTS Development) """

This will force the make to search within the libra environment in the specified locations where you know the files exist.

2. 4/17/2025 (Alexey Akimov)

A good way to setup the conda environment to have Boost and Python version consistent is this:

conda install -c conda-forge boost=1.82 python=3.10

3. 4/17/2025 (Alexey Akimov)

Another useful recipe for setting up jupyter notebook specific to a selected Conda environment:

Step 1: Activate the environment

conda activate libra

Step 2: Install ipykernel and register the kernel

conda install ipykernel
python -m ipykernel install --user --name=libra --display-name "Python (libra)"

Now, in Jupyter, you'll see a new kernel called "Python (libra)". Select that in your notebook.

4. 7/31/2025 (from Daeho Han)

Here are some installationinstructions from Daeho Han that may be used as a good revised summary of the above installation instructions:

conda create -n libra
conda install -c conda-forge boost=1.82 python=3.10
conda install -y -c conda-forge numpy scipy matplotlib imageio

conda install -y conda-build make
conda install -y -c conda-forge gcc_linux-64=12.2.0 gxx_linux-64=12.2.0 cmake=3.24.2 python-devtools llvm-openmp
conda install -y -c conda-forge/label/gcc7 eigen mpfr
conda install -y -c psi4/label/dev libint2=2.7.1
conda install -y -c anaconda h5py gmp

pip install -U jupyterlab
pip install -U py3Dmol
pip install -U scikit-learn
pip install -U torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu

Developers and Contributors

  • Dr. Alexey Akimov (University at Buffalo, link )
    The main developer and maintainer of the code

  • Dr. Daeho Han (University at Buffalo) Implementation of the exact-factorization (XF) methods, quantum trajectories surface hopping (QTSH), validating and testing Ehrenfest dynamics and other internals, implementing some model Hamiltonians

  • Mr. Brendan Smith (University at Buffalo) Entangled trajectories Hamiltonian, NA-MD with spin-orbit coupling, NBRA workflows, BL-LZ NA-MD tutorials and examples, Libra/DFTB+, Libra/QE, Libra/ErgoSCF, Libra/CP2K, and Libra/Gaussian interfaces

  • Mr. Mohammad Shakiba (Shahid Bahonar University of Kerman, Iran) Cube file processing scripts, Libra/CP2K and Libra/Gaussian, Libra/Libint2 interfaces

  • Mrs. Story Temen (University at Buffalo) Implementation and testing of the HEOM codes

  • Dr. Wei Li (Hunan Agricultural University) NA-MD with spin-orbit coupling

  • Dr. Kosuke Sato (Toyota Research Lab) State reordering scripts, Libra/GAMESS interface (Libra-X)

  • Dr. Ekadashi Pradhan (York University) Libra/QE interface, delta-SCF NA-M (Libra-X)

  • Dr. Amber Jain (Indian Institute of Technology Bombay, India) Implementation and testing of the HEOM codes

  • Dr. Xiang Sun (NYU Shanghai, China) Implementation and testing of the FGR codes

  • Dr. Sophya Garashchuk (University of South Carolina) QTAG theory development

  • Dr. Matthew Dutra (University of South Carolina) Implementation and testing of the QTAG codes

References

This code is provided in the hope it will be useful.

If you use the code in your research, please cite the following paper(s):

### Papers that describe Libra or its features

You may find the following papers useful examples ### Parers that utilize Libra

Owner

  • Name: Quantum-Dynamics-Hub
  • Login: Quantum-Dynamics-Hub
  • Kind: organization

Citation (CITATION.cff)

cff-version: 1.2.0
title: Libra
message: "If you use this software, please cite it using the metadata from this file."
type: software
authors:
  - family-names: Akimov
    given-names: Alexey V.
    email: alexvakimov@gmail.com
    affiliation: University at Buffalo, State University of New York
    orcid: 0000-0002-7815-3731
  - family-names: Shakiba
    given-names: Mohammad
    affiliation: University at Buffalo, State University of New York
    email: mshakiba@buffalo.edu
    orcid: 0000-0002-4110-7627
  - family-names: Han
    given-names: Daeho
    email: daehohan@buffalo.edu
    affiliation: University at Buffalo, State University of New York
    orcid: 0000-0003-2853-6571
  - family-names: Smith
    given-names: Brendan
    affiliation: University at Buffalo, State University of New York
    orcid: 0000-0003-3460-9984
  - family-names: Dutra
    given-names: Matthew
    affiliation: University of South Carolina
    orcid: 0000-0001-5240-3547
  - family-names: Sato
    given-names: Kosuke
    affiliation: Toyota Central Research and Development Laboratories
    orcid: 0000-0003-3293-2809
  - family-names: Temen
    given-names: Story
    affiliation: University at Buffalo, State University of New York
  - family-names: Suarez
    given-names: Victor
    email: suarez.a.victor@gmail.com
    affiliation: Georgia Institute of Technology
    orcid: 0000-0001-8164-709X
  - family-names: Yasin
    given-names: Kosar
    email: kosaryas@buffalo.edu
    affiliation: University at Buffalo, State University of New York
  - family-names: Khvorost
    given-names: Taras
    affiliation: University of California, Los Angeles
    email: xbopoctt@gmail.com
  - family-names: Li
    given-names: Wei
    orcid: 0000-0002-9999-5081
    affiliation: Hunan Agricultural University
    email: liwei0099@gmail.com
  - family-names: Zhang
    given-names: Qingxin
    email: qingxinz@buffalo.edu
    affiliation: University at Buffalo, State University of New York
  - family-names: Sun
    given-names: Xiang
    orcid: 0000-0002-2846-8532
    affiliation: New York University Shanghai
    email: xiang.sun@nyu.edu
  - family-names: Stippell
    given-names: Elizabeth
    affiliation: University of Southern California
    email: stippell@usc.edu
  - family-names: Gerasimov
    given-names: Igor S.
    orcid: 0000-0001-7762-2594
    affiliation: Budapest University of Technology and Economics
  - family-names: Amber
    given-names: Jain
    orcid: 0000-0003-4108-9112
    affiliation: Indian Institute of Technology Bombay

repository-code: https://github.com/Quantum-Dynamics-Hub/libra-code
repository: https://github.com/compchem-cybertraining/Tutorials_Libra
abstract: "Libra is a modular software for quantum nonadiabatic dynamics methodology development and applications. It implements a range of quantum, quantum-classical, and semiclassical methodologies for modeling excited states and quantum nonadiabatic processes, including but not limited to a variety of trajectory surface hopping, Ehrenfest, HEOM, and other methodologies. It can be applied to abstract and atomistic systems with thousands of atoms."
keywords:
  - trajectory surface hopping
  - nonadiabatic dynamics
  - quantum dynamics
  - excited states
  - solar energy materials
  - exact factorization
  - quantum trajectories
  - HEOM
  - DVR
  - Ehrenfest
license: GPL-3.0+
version: 5.10.1
date-released: 2025-08-10

GitHub Events

Total
  • Create event: 5
  • Issues event: 1
  • Release event: 3
  • Watch event: 5
  • Issue comment event: 3
  • Push event: 57
  • Gollum event: 1
  • Pull request event: 51
  • Pull request review event: 18
  • Pull request review comment event: 27
  • Fork event: 6
Last Year
  • Create event: 5
  • Issues event: 1
  • Release event: 3
  • Watch event: 5
  • Issue comment event: 3
  • Push event: 57
  • Gollum event: 1
  • Pull request event: 51
  • Pull request review event: 18
  • Pull request review comment event: 27
  • Fork event: 6

Issues and Pull Requests

Last synced: 4 months ago

All Time
  • Total issues: 1
  • Total pull requests: 13
  • Average time to close issues: about 2 years
  • Average time to close pull requests: 18 days
  • Total issue authors: 1
  • Total pull request authors: 5
  • Average comments per issue: 0.0
  • Average comments per pull request: 0.15
  • Merged pull requests: 8
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 13
  • Average time to close issues: N/A
  • Average time to close pull requests: 18 days
  • Issue authors: 0
  • Pull request authors: 5
  • Average comments per issue: 0
  • Average comments per pull request: 0.15
  • Merged pull requests: 8
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • PaulYin28 (1)
Pull Request Authors
  • DaehoHan (19)
  • MohammadShakiba (12)
  • foxtran (7)
  • suarez-va (7)
  • KosarYasin (4)
  • SpringDabao (2)
  • K-i-n-gC-r-i-m-s-o-n99 (1)
  • Xuyanma05 (1)
Top Labels
Issue Labels
Pull Request Labels

Dependencies

setup.py pypi