• Stars
    star
    286
  • Rank 144,690 (Top 3 %)
  • Language
    Python
  • License
    MIT License
  • Created about 6 years ago
  • Updated about 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

An open-source Python package for creating fast and accurate interatomic potentials.

Build Status pypi activity codecov

NOTE: This is the latest release 1.3.3 which includes significant changes compared to the previous version 0.2.4. Please check the updated tutorials and documentations from the links below.

FLARE: Fast Learning of Atomistic Rare Events

FLARE is an open-source Python package for creating fast and accurate interatomic potentials.

Major Features

Note:

We implement Sparse GP, all the kernels and descriptors in C++ with Python interface.

We implement Full GP, Mapped GP, RBCM, Squared Exponential kernel and 2+3-body descriptors in Python.

Please do NOT mix them.

Documentations and Tutorials

Documentation of the code can be accessed here: https://mir-group.github.io/flare

Applications using FLARE and gallery

Google Colab Tutorials

FLARE (ACE descriptors + sparse GP). The tutorial shows how to run flare with ACE and SGP on energy and force data, demoing "offline" training on the MD17 dataset and "online" on-the-fly training of a simple aluminum force field. All the trainings use yaml files for configuration.

FLARE (ACE descriptors + sparse GP) with LAMMPS. The tutorial shows how to compile LAMMPS with FLARE pair style and uncertainty compute code, and use LAMMPS for Bayesian active learning and uncertainty-aware molecular dynamics.

FLARE (ACE descriptors + sparse GP) Python API. The tutorial shows how to do the offline and online trainings with python scripts. A video walkthrough of the tutorial, including detailed discussion of expected outputs, is available here.

FLARE (2+3-body + GP). The tutorial shows how to use flare 2+3 body descriptors and squared exponential kernel to train a Gaussian Process force field on-the-fly.

Compute thermal conductivity from FLARE and Boltzmann transport equations. The tutorial shows how to use FLARE (LAMMPS) potential to compute lattice thermal conductivity from Boltzmann transport equation method, with Phono3py for force constants calculations and Phoebe for thermal conductivities.

Using your own customized descriptors with FLARE. The tutorial shows how to attach your own descriptors with FLARE sparse GP model and do training and testing.

All the tutorials take a few minutes to run on a normal desktop computer or laptop (excluding installation time).

Installation

Pip installation

Please check the installation guide here. This will take a few minutes on a normal desktop computer or laptop.

Developer's installation guide

For developers, please check the installation guide.

Compiling LAMMPS

See documentation on compiling LAMMPS with FLARE

Trouble shooting

If you have problem compiling and installing the code, please check the FAQs to see if your problem is covered. Otherwise, please open an issue or contact us.

System requirements

Software dependencies

  • GCC 9
  • Python 3
  • pip>=20

MKL is recommended but not required. All other software dependencies are taken care of by pip.

The code is built and tested with Github Actions using the GCC 9 compiler. (You can find a summary of recent builds here.) Other C++ compilers may work, but we can't guarantee this.

Operating systems

flare++ is tested on a Linux operating system (Ubuntu 20.04.3), but should also be compatible with Mac and Windows operating systems. If you run into issues running the code on Mac or Windows, please post to the issue board.

Hardware requirements

There are no non-standard hardware requirements to download the software and train simple modelsโ€”the introductory tutorial can be run on a single cpu. To train large models (10k+ sparse environments), we recommend using a compute node with at least 100GB of RAM.

Tests

We recommend running unit tests to confirm that FLARE is running properly on your machine. We have implemented our tests using the pytest suite. You can call pytest from the command line in the tests directory.

Instructions (either DFT package will suffice):

pip install pytest
cd tests
pytest

References

If you use FLARE++ including B2 descriptors, NormalizedDotProduct kernel and Sparse GP, please cite the following paper:

[1] Vandermause, J., Xie, Y., Lim, J.S., Owen, C.J. and Kozinsky, B., 2021. Active learning of reactive Bayesian force fields: Application to heterogeneous hydrogen-platinum catalysis dynamics. Nature Communications 13.1 (2022): 5183. https://www.nature.com/articles/s41467-022-32294-0

If you use FLARE active learning workflow, full Gaussian process or 2-body/3-body kernel in your research, please cite the following paper:

[2] Vandermause, J., Torrisi, S. B., Batzner, S., Xie, Y., Sun, L., Kolpak, A. M. & Kozinsky, B. On-the-fly active learning of interpretable Bayesian force fields for atomistic rare events. npj Comput Mater 6, 20 (2020). https://doi.org/10.1038/s41524-020-0283-z

If you use FLARE LAMMPS pair style or MGP (mapped Gaussian process), please cite the following paper:

[3] Xie, Y., Vandermause, J., Sun, L. et al. Bayesian force fields from active learning for simulation of inter-dimensional transformation of stanene. npj Comput Mater 7, 40 (2021). https://doi.org/10.1038/s41524-021-00510-y

If you use FLARE PyLAMMPS for training, please cite the following paper:

[4] Xie, Y., Vandermause, J., Ramakers, S., Protik, N.H., Johansson, A. and Kozinsky, B., 2022. Uncertainty-aware molecular dynamics from Bayesian active learning: Phase Transformations and Thermal Transport in SiC. npj Comput. Mater. 9(1), 36 (2023).

If you use FLARE LAMMPS Kokkos pair style with GPU acceleration, please cite the following paper:

[5] Johansson, A., Xie, Y., Owen, C.J., Soo, J., Sun, L., Vandermause, J. and Kozinsky, B., 2022. Micron-scale heterogeneous catalysis with Bayesian force fields from first principles and active learning. arXiv preprint arXiv:2204.12573.

More Repositories

1

nequip

NequIP is a code for building E(3)-equivariant interatomic potentials
Python
615
star
2

allegro

Allegro is an open-source code for building highly scalable and accurate equivariant deep learning interatomic potentials
Python
331
star
3

phoebe

A high-performance framework for solving phonon and electron Boltzmann equations
C++
81
star
4

pair_nequip

C++
41
star
5

flare_pp

A many-body extension of the FLARE code.
C++
35
star
6

pair_allegro

LAMMPS pair style for Allegro deep learning interatomic potentials with parallelization support
C++
34
star
7

EPA

Electron-phonon averaged approximation
Roff
11
star
8

CiderPress2022

Tools for training and evaluating CIDER functionals for use in Density Functional Theory calculations
Python
9
star
9

nequip-input-files

Input files for Batzner, S., Musaelian, A., Sun, L., Geiger, M., Mailoa, J. P., Kornbluth, M., ... & Kozinsky, B. (2021). E(3)-equivariant graph neural networks for data-efficient and accurate interatomic potentials. arXiv preprint arXiv:2101.03164.
9
star
10

BRAVE

Bloch Representation Analysis and Visualization Environment
Python
7
star
11

nequip-example-extension

Example of how to implement an extension package to the `nequip` framework with custom loss terms, model components, etc.
Python
5
star
12

CiderPress

A high-performance software package for training and evaluating machine-learned XC functionals using the CIDER framework
Python
5
star
13

CiderPressLite

"alpha" release of 2023 CIDER functionals, with interfaces to PySCF and GPAW
Python
4
star
14

distmatrix

Simple C++ library for distributed matrices
C++
4
star
15

surface-restructuring

Automated surface restructuring event characterization
Jupyter Notebook
3
star
16

MLmtCV-PLUMED-Plugin

C++
2
star
17

pytorch_runstats

Running/online statistics for PyTorch
Python
2
star
18

md

Python
1
star
19

NDSimulator

An open-source python code for simple N-dimensional molecular dynamics and enhanced samplings
Python
1
star
20

surfator

"Atomic democracy" for site analysis of surfaces and bulks with known lattice structure(s).
Python
1
star