gblearn: Machine Learning for Grain Boundaries

Recently, we proposed a universal descriptor for grain boundaries that has desirable mathematical properties, and which can be applied to arbitrary grain boundaries. Using this descriptor, we were able to create a feature matrix for machine learning based on the local atomic environments present at the grain boundary. In addition to being useful for predicting grain boundary energy and mobility, the method also allows important atomic environments to be discovered for each of the properties.

If you use this package, please cite the paper:

@article{Rosenbrock:2017vd,
author = {Rosenbrock, Conrad W and Homer, Eric R and Csanyi, G{\'a}bor and Hart, Gus L W},
title = {{Discovering the building blocks of atomic systems using machine learning: application to grain boundaries}},
journal = {npj Computational Materials},
year = {2017},
volume = {3},
number = {1},
pages = {29}
}

To get started quickly, take a look at the Examples for using gblearn, which show how to generate the plots and model from the paper.

Workflow and Examples

Modules in the Package

gblearn.elements Crystal definitions and SOAP vector calculations for simple elements.
gblearn.selection Functions for selecting the atoms that allegedly contribute to the grain boundary properties.
gblearn.gb Functions and classes for interacting with grain boundaries.
gblearn.soap Functions for generating the SOAP representation of a grain boundary.
gblearn.decomposition Methods for decomposing the SOAP vectors into radial and angular components for analysis.
gblearn.io Functions for I/O interaction of gblearn.gb.GrainBoundaryCollection objects and the many results they produce with disk storage.
gblearn.lammps Functions for interacting with LAMMPS dump files.
gblearn.reduce Once the unique LAEs for a grain boundary collection have been calculated using SOAP and the similarity metric, we can generate the local environment representation by accumulating the fraction of each unique LAE within a given GB.
gblearn.utility

Indices and tables