Repository for SNAP model development
Switch branches/tags
Nothing to show
Clone or download
Latest commit 14cc524 Aug 7, 2018
Failed to load latest commit information.
Cu Add training data Aug 2, 2018
Mo the coefficients are fitted with lammps version 17 Nov 2016, newer ve… Jul 12, 2018
Ni-Mo Add training data Aug 2, 2018
Ni surface_test data Aug 7, 2018
.gitignore Initial commit Jun 26, 2017
LICENSE Initial commit Jun 26, 2017 update README Sep 18, 2017

Spectral neighbor analysis potential

This repository contains spectral neighbor analysis potential (SNAP) models for various elements, including the force field models, the corresponding parameters and training data used to develop the models.

The structure of the folder organization is as follows

- Element/
    - training/
    - usage/
        - elastic_example/
    - element.snapcoeff
    - element.snapparam

where the training folder contains the original datasets used for developing the model, element.snapcoeff and element.snapparam are the force field parameters ready for LAMMPS, and usage contains examples for running the simulations with developed potentials.

LAMMPS installation

The calculations rely on LAMMPS package. During installation, the SNAP package should be installed by the following command in the src directory.

make yes-snap

You can check if the inclusion is successful by

make package-status

We recommand the users to install also the REPLICA , MEAM and PYTHONpackages following the same procedure.

After that, the serial version of lammps can be installed by

make serial

Please refer to the lammps website for the installation of other versions.

In case the user wants to use the lammps package in python (not supported by python 3 for now), lammps should be installed as a shared library by the following command.

make serial mode=shlib

Usually, the lammps simulations are run by

lmp_serial -in

assuming the executable is lmp_serial and the input file is

Potential development

The JSON data file contains all the necessary information for developping the force field. Specifically, you will need the descriptors and the targets. The targets are the DFT computed energies per atom in the structure, atomic forces and stress components, which are stored under "data" in the json file. The descriptors for energy, force and stress are different, even though they share the same coefficients. For bispectrum coefficients calculated with $$j_{max}$$ = 3, the energy descriptor is the atomic average of bispectrum coefficients having a dimension of (1, 31) where 31 is a number dictated by the bispectrum coefficient order ($$j_{max}$$), the force descriptor is the first derivatives of individual atomic bispectrum coefficients that has a dimension of (n, 31), where n is the number of atoms, and lastly the stress descriptor is a matrix with dimension (6, 31), where 6 corresponds to the unique six components in the stress tensors.

The model coefficients can be fitted by gathering all data in the training folder and then by a linear model that relates the descriptors to the targets, with the linear fitting weights listed under "optimized params/weights" in the json file. In the previous example, we will need to fit 31 coefficients from the linear model as the SNAP coefficients.

Running examples

The examples are under the usage folder.

For example, one can run the Mo/usage/elastic_example by simply the following command

lmp_serial -in in.elastic

The final results should look like the following:

Components of the Elastic Constant Tensor
Elastic Constant C11all = 472.830692948326 GPa
Elastic Constant C22all = 472.830692952315 GPa
Elastic Constant C33all = 472.830692945432 GPa
Elastic Constant C12all = 151.92547560401 GPa
Elastic Constant C13all = 151.925475607608 GPa
Elastic Constant C23all = 151.925475607655 GPa
Elastic Constant C44all = 106.589112603853 GPa
Elastic Constant C55all = 106.589112606229 GPa
Elastic Constant C66all = 106.589112606586 GPa
Elastic Constant C14all = -1.64471728492463e-09 GPa
Elastic Constant C15all = -3.16276324848469e-09 GPa
Elastic Constant C16all = 6.3790059985881e-10 GPa
Elastic Constant C24all = -2.92113212529259e-09 GPa
Elastic Constant C25all = 5.7165004803867e-10 GPa
Elastic Constant C26all = 6.09399861920712e-09 GPa
Elastic Constant C34all = -1.85699578515759e-09 GPa
Elastic Constant C35all = -1.13746544837262e-09 GPa
Elastic Constant C36all = 1.70693557054728e-09 GPa
Elastic Constant C45all = -8.163048780782e-11 GPa
Elastic Constant C46all = 3.04624246101865e-09 GPa
Elastic Constant C56all = 1.08037347240268e-09 GPa
Average properties for a cubic crystal
Bulk Modulus = 258.89388138718 GPa
Shear Modulus 1 = 106.589112605556 GPa
Shear Modulus 2 = 160.452608671134 GPa
Poisson Ratio = 0.243175631155087
Total wall time: 0:00:06