Libra: An open-source "Methodology Discovery" Library

What is Libra?

  • (Quantum-Classical Dynamics) Methodology development and Assessment platform

    Focus on understanding/assessing methods – methodology prototyping

    Focus on quantum-classical methodologies

    Choose from a wide variety of methods and algorithms for doing quantum-classical calculations: fully quantum (grid), trajectory surface hopping (TSH), Ehrenfest, wavepackets, decoherence schemes, individual vs. coupled trajectories, etc.

    Choose from a database of model potentials with curated model data sets. Explore your own datasets and add new model potentials.

  • Modular

    Mix and match various algorithms as "building blocks" to construct new methods and test new ideas. Reuse the same blocks in different contexts - ensure consistency across multiple possible scenarios.

  • Python/C++

    Take advantage of the convenience of Python as most of the functionalities and data types available in Libra are exposed to Python, ready to use withing your Jupyter notebooks or plain Python scripts, ready to interplay with multiple powerful utilities the Python community offers.

    Streamline the methodology development/validation using all Libra's components via Python - avoiding the time-consuming recompile/debug cycles.

    Take advantage of the speed of C++ code - most of Libra functionality is implemented in C++ and exposed to Python. Want to enhance your C++ codes? Just link to Libra C++ components directly.

    Libra itself relies on the powerfull C++ libraries such as Boost and Eigen 3 and exposes some of their functionality to Python.

    The boundary between C++ and Python are so thin, that not only Python calls the intrinsic C++ routines, but C++ can also call the Python-defined functions. Use this approach to streamline the methodology validation with multiple models problems and user-defined functions.

  • Applications-ready: study nonadiabatic dynamics in molecular and condensed-matter

    Libra has been interfaced with a number of electronic structure and force field codes, including Quantum Espresso (QE), ErgoSCF, DFTB+, LAMMPS, GAMESS, Gaussian, QChem, Psi4, other interfaces can be easily added.

    If you are a former Pyxaid user, with Libra you can do the same things, but with even more options for algorithm selection.

    Some built-in force fields (UFF, GAFF, etc.) and electronic structure (Hartree-Fock, INDO, CNDO) calculations are available.

  • Highly versatile

    Although the current main focus of Libra is on the quantum-classical methodologies and methodology prototyping and assessment, Libra features many other helpful functionalities, including multiple auxiliary analysis tools: force field, classical MD, rigid-body MD, various ensembles (NVE, NVT), normal modes, pDOS, PES scans, nanostructure builders, linear anglebra, special functions, artificial neural networks, molecular integrals, wavepacket integrals, ACF, FT, file analysis.

What's new?



Some demonstrations

Exact and quantum-classical solution of TD-SE (Time-Dependent Schrodinger Equation)
Case 1. Large perturbation, large periodicity.
Case 2. Large perturbation, small periodicity.
Case 3. Unperturbed 2-state Rabi model.

Atomistic nonadiabatic quantum dynamics (NAQD) simulations
Case 1. Photoisomerization of cis-azobenzene.
Case 2. Photoisomerization of cis-azobenzene in the presence of thermostat.

Semiempirical electronic structure and orbital analysis tools
Azulene LUMO, isovalue = 0.025.
Si QD (2.4 nm diameter) LUMO, isovalue = 0.01.
Azulene HOMO, isovalue = 0.025.
Si QD (2.4 nm diameter) HOMO, isovalue = 0.01.