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 and visit DScribe.
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.
- Eiaki V. Morooka - Aki78
- Marc Jäger - marchunter
- Lauri Himanen - lauri-codes
See also the list of contributors who participated in this project.
- Yu Ninomiya - Yu
- Filippo Federici - fullmetalfelix
- Yashasvi S. Ranawat - yashasvi-ranawat
- Adam Foster - suurimonster
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
- [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.