Fast lightweight SOAP implementation for machine learning in quantum chemistry and materials physics.
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.
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)
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.
See also the list of contributors who participated in this project.
This project is licensed under the GNU LESSER GENERAL PUBLIC LICENSE - see the LICENSE.md file for details
If you use this software, please cite
The theory is based on the first two papers, and the implementation is based on the third paper.