(Nano)CLUSter KIT for surface chemistry.


Keywords
descriptor, materials, science, machine, learning, soap, local, environment, physics, symmetry, reduction, adsorption, sites, c, machine-learning, python
License
LGPL-3.0
Install
pip install cluskit==4.2.0

Documentation

SOAPLite

WARNING: This project has been archived, as the functionality of SOAPLite has been merged into DScribe.

Smooth Overlap of Atomic Positions (SOAP) is an algorithm used for accurately classifying and machine learning chemical environments [1,2]. For a detailed documentation, please read soapDoc.pdf in this repository.

Getting Started

This is a low level, lightweight and fast implementation of SOAP for machine learning in quantum chemistry and materials physics. When given a structure and SOAP parameters, SOAPLite will spit out the SOAP spectra of local points in space. For a higher level interface, please use DScribe instead.

Here is an example of the python interface:

from soaplite import getBasisFunc, get_soap_locals
from ase.build import molecule

#-------------- Define structure -----------------------------------------------
atoms = molecule("H2O")

#-------------- Define positions of desired local environments ----------------
hpos = [
    [0, 1, 2],
    [2, 3, 4]
]

#------------------ Basis function settings (rCut, N_max) ----------------------
n_max = 5
l_max = 5
r_cut = 10.0
my_alphas, my_betas = getBasisFunc(r_cut, n_max)

#--------- Get local chemical environments for each defined position -----------
x = get_soap_locals(
    atoms,
    hpos,
    my_alphas,
    my_betas,
    rCut=r_cut,
    NradBas=n_max,
    Lmax=l_max,
    crossOver=True
)

print(x)
print(x.shape)

Installation

We provide a python interface to the code with precompiled C-extension. This precompiled version should work with linux-based machines, and can be installed with:

pip install soaplite

Or by cloning this repository, you can install it by

pip3 install .

in the SOAPLite directory.

Authors

See also the list of contributors who participated in this project.

License

This project is licensed under the GNU LESSER GENERAL PUBLIC LICENSE - see the LICENSE.md file for details

References

If you use this software, please cite

  • [1] On representing chemical environments - Albert P. Bartók, Risi Kondor, Gábor Csányi paper
  • [2] Comparing molecules and solids across structural and alchemical space - Sandip De, Albert P. Bartók, Gábor Cásnyi, and Michele Ceriotti paper
  • Machine learning hydrogen adsorption on nanoclusters through structural descriptors - Marc O. J. Jäger, Eiaki V. Morooka, Filippo Federici Canova, Lauri Himanen & Adam S. Foster paper

The theory is based on the first two papers, and the implementation is based on the third paper.