nano-qmflows

Package containing several workflows to compute molecular properties for nanomaterials

https://github.com/scm-nv/nano-qmflows

Science Score: 77.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 3 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Committers with academic emails
    1 of 22 committers (4.5%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (16.5%) to scientific vocabulary

Keywords

chemistry materials nanomaterials physics quantum-chemistry science scientific-workflows

Keywords from Contributors

insilico forcefield-parameterization forcefield quantum-mechanics web-service molecular-simulation molecular-mechanics scientific-workflow python-3-7 python-3-6
Last synced: 6 months ago · JSON representation ·

Repository

Package containing several workflows to compute molecular properties for nanomaterials

Basic Info
  • Host: GitHub
  • Owner: SCM-NV
  • License: apache-2.0
  • Language: Python
  • Default Branch: master
  • Homepage:
  • Size: 41.7 MB
Statistics
  • Stars: 12
  • Watchers: 7
  • Forks: 11
  • Open Issues: 13
  • Releases: 23
Topics
chemistry materials nanomaterials physics quantum-chemistry science scientific-workflows
Created over 9 years ago · Last pushed over 1 year ago
Metadata Files
Readme Changelog Contributing License Code of conduct Citation

README.rst

.. image:: https://readthedocs.org/projects/qmflows-namd/badge/?version=latest
   :target: https://qmflows-namd.readthedocs.io/en/latest/?badge=latest
.. image:: https://zenodo.org/badge/DOI/10.5281/zenodo.2576893.svg
   :target: https://doi.org/10.5281/zenodo.2576893
.. image:: https://github.com/SCM-NV/nano-qmflows/actions/workflows/pythonapp.yml/badge.svg
   :target: https://github.com/SCM-NV/nano-qmflows/actions
.. image:: https://codecov.io/gh/SCM-NV/nano-qmflows/branch/master/graph/badge.svg?token=L1W0fPrSUn
   :target: https://codecov.io/gh/SCM-NV/nano-qmflows
.. image:: https://badge.fury.io/py/nano-qmflows.svg
   :target: https://badge.fury.io/py/nano-qmflows

====================
nano-qmflows
====================

Nano-QMFlows is a generic python library for computing (numerically) electronic properties for nanomaterials like the non-adiabatic coupling vectors (NACV) using several quantum chemical (QM) packages.

One of the main problems to calculate (numerically) NACVs by standard QM software is the computation of the overlap matrices between two electronically excited states at two consecutive time-steps that are needed in the numerical differentiation to evaluate the coupling. This happens because most of these softwares are inherently static, i.e. properties are computed for a given structural configuration, and the computation of the overlap matrices at different times requires complicated scripting tools to handle input/outputs of several QM packages.

For further information on the theory behind nano-qmflows and how to use the program see the documentation_.

Installation
------------
Pre-compiled binaries are available on pypi and can be installed on MacOS and Linux as following:

.. code:: bash

   pip install nano-qmflows --upgrade

Building from source
--------------------
Building Nano-QMFlows from source first requires an installation of *Miniconda* as is detailed here_.

.. _here: https://docs.conda.io/en/latest/miniconda.html

Then, to install the **nano-qmflows** library type the following commands inside the conda environment:

.. code:: bash

   # Create the conda environment
   conda create -n qmflows -c conda-forge boost eigen "libint>=2.6.0" highfive
   conda activate qmflows

   # Clone the repo
   git clone https://github.com/SCM-NV/nano-qmflows
   cd nano-qmflows

   # Build and install nano-qmflows
   pip install -e . --upgrade

.. note::
   Older compilers, such as GCC <7, might not be compatible with the latest ``eigen`` version and require specification of *e.g.* ``eigen=3.3``.

Advantages and Limitations
--------------------------
nano-qmflows is based on the approximation that all excited states are represented by singly excited-state determinants. This means that the computation of the NACVs boils down to the computation of molecular orbitals (MOs) coefficients at given points of time using an electronic structure code and an overlap matrix S(t,t+dt) in atomic orbital basis (AO) computed between two consecutive time step. nano-qmflows main advantage is to use an internal module to compute efficiently the atomic overlap matrix S(t, t+dt) by employing the same basis-set used in the electronic structure calculation. In this way the QM codes are only needed to retrieve the MOs coefficients at time t and t+dt. This approach is very useful because the interfacing nano-qmflows to a QM code is reduced to writing a simple module that reads the MOs coefficients in the specific code format. At this moment, nano-qmflows handles output formats generated by CP2K, Orca, and Gamess, but, as said, it can be easily extended to other codes.

Finally, nano-qmflows can be also used in benchmarks studies to test new code developments in the field of excited state dynamics by providing a platform that uses all the functionalities of QMFlows, which automatizes the input preparation and execution of thousands of QM calculations.

In the near future, nano-qmflows is expected to offer new functionalities.


Interface to Pyxaid
-------------------

nano-qmflows has been designed mostly to be integrated with Pyxaid, a python program that performs non-adiabatic molecular dynamic (NAMD) simulations using the classical path approximation (CPA). The CPA is based on the assumption that nuclear dynamics of the system remains unaffected by the dynamics of the electronic degrees of freedom. Hence, the electronic dynamics remains driven by the ground state nuclear dynamics. CPA is usually valid for extended materials or cluster materials of nanometric size.

In this framework, nano-qmflows requires as input the coordinates of a pre-computed trajectory (at a lower level or at the same level of theory) in xyz format and the input parameters of the SCF code (HF and DFT). nano-qmflows will then calculate the overlap matrix between different MOs by correcting their phase and will also track the nature of each state at the crossing seam using a min-cost algorithm . The NACVs are computed using the Hammes-Schiffer-Tully (HST) 2-point approximation and the recent Meek-Levine approach. The NACVs are then written in Pyxaid format for subsequent NAMD simulations.


Overview
--------
 The Library contains a **C++** interface to the libint2_ library to compute the integrals and several numerical functions in Numpy_. While the scripts are set of workflows to compute different properties using different approximations that can be tuned by the user.

.. _libint2: https://github.com/evaleev/libint/wiki
.. _Numpy: http://www.numpy.org

Worflow to calculate Hamiltonians for nonadiabatic molecular simulations
************************************************************************
The figure represents schematically a Worflow to compute the **Hamiltonians** that described the behavior and coupling between the excited state of a molecular system. These **Hamiltonians** are used by thy PYXAID_ simulation package to carry out nonadiabatic molecular dynamics.

.. image:: docs/_images/nac_worflow.png

.. _PYXAID: https://www.acsu.buffalo.edu/~alexeyak/pyxaid/overview.html
.. _documentation: https://qmflows-namd.readthedocs.io/en/latest/

Owner

  • Name: SCM - Software for Chemistry and Materials
  • Login: SCM-NV
  • Kind: organization
  • Email: info@scm.com
  • Location: Amsterdam

Citation (CITATION.cff)

# YAML 1.2
# Metadata for citation of this software according to the CFF format (https://citation-file-format.github.io/)
cff-version: 1.2.0
message: If you use this software, please cite it as below.
title: nano-qmflows
abstract: Nano-QMFlows is a generic python library for computing (numerically) electronic properties for nanomaterials like the non-adiabatic coupling vectors (NACV) using several quantum chemical (QM) packages.
authors:
- given-names: Felipe
  family-names: Zapata
  orcid: "https://orcid.org/0000-0001-8286-677X"
- given-names: Bas
  family-names: van Beek
  orcid: "https://orcid.org/0000-0003-2463-6559"

keywords:
 - computational-chemistry
 - materials-science
 - python
 - Workflows
version: '0.14.2'
date-released: "2023-10-11"  # yyyy-mm-dd
repository-code: https://github.com/SCM-NV/nano-qmflows
license: "Apache-2.0"
doi: 10.5281/zenodo.2576893

GitHub Events

Total
  • Watch event: 1
Last Year
  • Watch event: 1

Committers

Last synced: about 2 years ago

All Time
  • Total Commits: 1,813
  • Total Committers: 22
  • Avg Commits per committer: 82.409
  • Development Distribution Score (DDS): 0.28
Past Year
  • Commits: 62
  • Committers: 3
  • Avg Commits per committer: 20.667
  • Development Distribution Score (DDS): 0.194
Top Committers
Name Email Commits
felipe zapata t****l@g****m 1,305
Bas van Beek b****k@v****l 134
Ivan Infante i****6@g****m 127
Bas van Beek 4****3 73
Bas van Beek b****k@h****m 50
juliette1996 4****6 28
Felipe Zapata f****0@i****l 18
Felipe Zapata f****0@i****l 18
Roandinho r****n@g****m 13
dependabot[bot] 4****] 8
Francesco Zaccaria f****a@i****t 7
ProkopHapala P****a@g****m 6
Indy du Fossé i****e@i****x 6
Ivan Infante v****3@i****l 5
Indy du Fossé i****e@i****x 4
ultimoboulevard f****a@g****m 3
Roandinho r****l@i****l 2
Roandinho r****l@i****l 2
Stephanie 4****b 1
Ivan Infante v****3@i****l 1
BvB93 b****k@D****n 1
Ivan i****e@b****r 1

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 23
  • Total pull requests: 94
  • Average time to close issues: about 2 months
  • Average time to close pull requests: 1 day
  • Total issue authors: 9
  • Total pull request authors: 6
  • Average comments per issue: 2.96
  • Average comments per pull request: 0.88
  • Merged pull requests: 84
  • Bot issues: 0
  • Bot pull requests: 12
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • felipeZ (6)
  • IndyduFosse (6)
  • elkandro (3)
  • iinfant76 (2)
  • BvB93 (2)
  • xueyongshef (1)
  • Ruudverkleij (1)
  • GiuliaB93 (1)
  • juliette1996 (1)
Pull Request Authors
  • BvB93 (51)
  • felipeZ (19)
  • dependabot[bot] (15)
  • iinfant76 (5)
  • juliette1996 (5)
  • ultimoboulevard (2)
Top Labels
Issue Labels
bug (10) enhancement (7) help wanted (5)
Pull Request Labels
dependencies (15) enhancement (10) bug (8)

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 87 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 1
  • Total versions: 11
  • Total maintainers: 2
pypi.org: nano-qmflows

Derivative coupling calculation

  • Versions: 11
  • Dependent Packages: 0
  • Dependent Repositories: 1
  • Downloads: 87 Last month
Rankings
Dependent packages count: 7.4%
Forks count: 11.0%
Average: 17.1%
Stargazers count: 17.7%
Dependent repos count: 22.2%
Downloads: 27.0%
Maintainers (2)
Last synced: 6 months ago

Dependencies

doc_requirements.txt pypi
  • sphinx >=2.1
  • sphinx_rtd_theme *
install_requirements.txt pypi
  • Nano-Utils >=2.0.0
  • h5py >=2.9.0
  • mendeleev >=0.1.0
  • more-itertools >=2.4.0
  • noodles >=0.3.3
  • numpy >=1.17.1
  • packaging >=17.1
  • plams >=1.5.1
  • pyyaml >=5.1
  • qmflows >=0.12.1
  • schema >=0.6.0,
  • scipy >=1.1.0
linting_requirements.txt pypi
  • Nano-Utils >=2.0.0
  • mypy *
  • numpy >=1.21
  • pycodestyle *
  • pydocstyle *
  • pyparsing >=3.0.8
  • qmflows *
  • types-pyyaml *
  • types-setuptools *
.github/workflows/pypi.yaml actions
  • AButler/upload-release-assets v2.0.2 composite
  • actions/checkout v3 composite
  • actions/download-artifact v3 composite
  • actions/setup-python v4 composite
  • actions/upload-artifact v3 composite
  • docker/setup-qemu-action v2 composite
  • pypa/cibuildwheel v2.15 composite
  • pypa/gh-action-pypi-publish release/v1 composite
  • s-weigand/setup-conda v1 composite
  • uraimo/run-on-arch-action v2 composite
.github/workflows/pythonapp.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • codecov/codecov-action v3 composite
  • egor-tensin/setup-gcc v1 composite
  • pypa/cibuildwheel v2.15 composite
  • s-weigand/setup-conda v1 composite
pyproject.toml pypi
setup.py pypi
test_requirements.txt pypi
  • assertionlib >=2.2.3 test
  • ipython >=5.0.0 test
  • pytest >=5.4.0 test
  • pytest-cov >=2.3.1 test
  • pytest-mock >=0.4.0 test