Git Product home page Git Product logo

differentiable-atomistic-potentials's Introduction

Differentiable atomistic potentials

This is not an official Google product.

Summary

An atomistic potential is a function that takes atomic coordinates, atom types and a unit cell and calculates the potential energy of that atomic configuration. These potentials are used in molecular simulations such as molecular dynamics and Monte Carlo Simulations. Historically, the forces and stress were derived by analytical or numerical derivatives of the potential energy function, then implemented in a program. In this project, we use automatic differentiation to compute forces and stresses from the potential energy program. This project focuses on materials that are described by periodic boundary conditions.

The first demonstration of this approach is for the Lennard Jones potential, which is fully implemented in TensorFlow to compute energies, forces and stress of periodic atomic systems containing one kind of chemical element. The potential is trainable from a database of reference data, e.g. density functional theory calculations. An example is illustrated in ./docs/dap.tf.lennardjones.org.

Installation

If you have root access, and you want to install the bleeding edge version system-wide, it should be sufficient to run:

pip install git+git://github.com/google/differentiable-atomistic-potentials

If you want an editable, developer installation you might prefer this:

git clone https://github.com/google/differentiable-atomistic-potentials.git
cd differentiable-atomistic-potentials
pip install --user -e .

Related projects

The earliest code we are aware of is Runner, but it is only available by request from the authors.

  • Amp cite:khorshidi-2016-amp is an open-source Python/Fortran package for machine learned neural network potentials.
  • PROPhet cite:kolb-2017-discov-charg is an open-source package for machine learned neural network potentials.
  • aenet cite:artrith-2016 is an open source Fortran package for machine learned neural network potentials.

This project is complementary to those projects. We share a common goal of open-source machine learned neural network potentials. Our approach differs primarily in the use of automatic differentiation to enable efficient training as well as automatic forces and stresses. We also aim to make it possible to generate hybrid potentials comprised of a classical potential and a neural network potential.

Automatic differentiation toolkits

Here are a few of the AD toolkits that are currently around.

autograd
A Numpy/Python framework
Tensorflow
An open-source machine learning framework for everyone
tangent
Source-to-Source Debuggable Derivatives in Pure Python

I have not tried these

algopy
a tool for Algorithmic Differentiation (AD) and Taylor polynomial approximations.
pytorch
Another machine learning framework in Python
Chainer
Another machine learning framework in Python

Roadmap

These projects are planned in the future.

  • [X] Vectorized neighborlists for periodic boundary conditions autograd and TensorFlow.
  • [X] Vectorized one-way neighborlists for periodic boundary conditions autograd and Tensorflow
  • [X] Lennard Jones potential in autograd and Tensorflow.
  • [ ] Effective medium theory for multicomponent alloys in autograd and Tensorflow
  • [ ] Behler-Parinello Neural Network for multicomponent systems

Requirements

This project is written for Python 3.6.

See ./requirements.txt for a list of required Python packages.

differentiable-atomistic-potentials's People

Contributors

jkitchin avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.