This is the main page of the computational chemistry methodology discovery library, Libra The program website is here
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;
mkdir Conda
cd Conda/
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh .
sh ./Miniconda3-latest-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.
To activate the installed base environment of Conda do:
eval "$(<path to bin/conda> shell.bash hook)"
For instance,
eval "$(/projects/academic/cyberwksp21/Software/Conda/Miniconda3/bin/conda shell.bash hook)"
You will need to run this script every time you want to use a particular Conda and the corresponding environments, unless you include this command in your .bashrc or .bash_profile
Test it is working by doing:
which conda
mkdir libra
cd libra
git clone https://github.com/Quantum-Dynamics-Hub/libra-code.git .
and switch to the correct branch or tag - usually, it would be devel
branch
git checkout devel
Just execute the following script located in the root of Libra distribution:
sh ./libra_env_build.sh
This script will create the environment called libra
and will install all the
needed stuff in it. You just need to activate it:
conda activate libra
It first creates and activates the libra
environment:
conda create -n libra
Update conda install if needed (e.g. if the output suggests it)
conda activate libra
Thne, it installs all the dependencies and tools.
Do this one by one, and in this order (should not matter too much, but who knows it)
> 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
Basic stuff
conda install conda-build
conda install gcc_linux-64
conda install gxx_linux-64
conda install make
conda install boost
conda install cmake
conda install git
conda install -c anaconda h5py
conda install -c conda-forge/label/gcc7 eigen
conda install -c psi4/label/dev libint2
conda install -c anaconda gmp
conda install -c conda-forge/label/gcc7 mpfr
More, but still needed because some Python modules require those. We need to downgrade Python version here to 3.6 to enable Psi4 installation
conda install python=3.6
conda install -c psi4 psi4
conda install -c conda-forge matplotlib
conda install -c rmg py3dmol
conda install -c anaconda numpy
conda install -c anaconda scipy
conda install -c conda-forge llvm-openmp
You can install Jupyter notebook using the following command. This will be useful and you can set up and access the Jupyter notebook remotely from a cluster and load the tutorials
conda install -c conda-forge jupyterlab
Used in some of the tutorials
conda install -c conda-forge/label/gcc7 imageio
Because we had to downgrade Python to 3.6, we need to edit the CMakeLists.txt such that cmake is looking for the correct Python version
FIND_PACKAGE(PythonLibs 3.6 REQUIRED)
and also reflect it in the component of the Boost.Python to be found:
FIND_PACKAGE(Boost COMPONENTS python36 regex)
Same for Boost (see the error messages for what version of Boost the cmake can find). In my current case, it suggest the version 1.73.0, so be it:
FIND_PACKAGE(Boost 1.73.0 REQUIRED)
Then in the libra directory, create the build directory:
cd libra
mkdir _build
cd _build
cmake ../
make -j4
Add the following exports to your .bash_profile
file
export PYTHONPATH=<path to the ppackage>/libra/_build/src:$PYTHONPATH
export LD_LIBRARY_PATH=<path to the ppackage>/libra/_build/src:$LD_LIBRARY_PATH
source .bash_profile
conda activate libra
And you should be ready to use Libra.
-
Dr. Alexey Akimov (University at Buffalo, link )
The main developer and maintainer of the code -
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
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):
-
The initial implementation Akimov, A. V. "Libra: An open-Source 'methodology discovery' library for quantum and classical dynamics simulations" J. Comput. Chem. 2016 37, 1626-1649
-
Phase correction, Ehrenfest dynamics details, basis transformations (see the SI) Akimov, A. V.; "A Simple Phase Correction Makes a Big Difference in Nonadiabatic Molecular Dynamics" J. Phys. Chem. Lett. 2018 9, 6096-6102
-
Belyaev-Lebedev-Landau-Zener Surface Hopping within the Neglect of Back-Reaction Approximation Smith, B.; Akimov, A. V. "Hot Electron Cooling in Silicon Nanoclusters via Landau-Zener Non-Adiabatic Molecular Dynamics: Size Dependence and Role of Surface Termination" J. Phys. Chem. Lett. 2020 11, 1456-1465
-
HEOM implementation Temen, S.; Jain, A.; Akimov, A. V. "Hierarchical equations of motion in the Libra software package" Int. J. Quant. Chem. 2020
You may find the following papers useful examples
-
Formulation of a fragment-based NA-MD Akimov, A. V. "Nonadiabatic Molecular Dynamics with Tight-Binding Fragment Molecular Orbitals" J. Chem. Theory Comput. 2016 12, 5719-5736
-
Quasi-stochastic Hamiltonian for longer NA-MD Akimov, A. V.; "Stochastic and Quasi-Stochastic Hamiltonians for Long-Time Nonadiabatic Molecular Dynamics" J. Phys. Chem. Lett. 2017 8, 5190-5195
-
Entrangled-trajectories Hamiltonian dynamics to capture quantum effects of nuclei Smith, B. A.; Akimov, A. V. "Entangled trajectories Hamiltonian dynamics for treating quantum nuclear effects" J. Chem. Phys. 2018 148, 144106
-
Inclusion of the Spin-orbit coupling in NA-MD Li, W.; Zhou, L.; Prezhdo, O. V.; Akimov, A. V. "Spin-Orbit Interactions Greatly Accelerate Nonradiative Dynamics in Lead Halide Perovskites" ACS Energy Lett. 2018 3, 2159-2166