• Stars
    star
    103
  • Rank 333,046 (Top 7 %)
  • Language
    Fortran
  • License
    Mozilla Public Li...
  • Created over 6 years ago
  • Updated over 2 years ago

Reviews

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

Repository Details

Atomic interaction potentials based on artificial neural networks

What is ænet?

The Atomic Energy NETwork (ænet) package (http://ann.atomistic.net) is a collection of tools for the construction and application of atomic interaction potentials based on artificial neural networks (ANN). The ænet code allows the accurate interpolation of structural energies, e.g., from electronic structure calculations, using ANNs. ANN potentials generated with ænet can then be used in larger scale atomistic simulations and in situations where extensive sampling is required, e.g., in molecular dynamics or Monte-Carlo simulations.

License

Copyright (C) 2012-2022 Nongnuch Artrith ([email protected])

The aenet source code is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the Mozilla Public License, v. 2.0, for more details.

Installation

Short installation summary

  1. Compile the L-BFGS-B library

    • Enter the directory “./lib”

      $ cd ./lib

    • Adjust the compiler settings in the “Makefile”

    • Compile the library with

      $ make

    The library file liblbfgsb.a, required for compiling ænet, will be created.

  2. Compile the ænet package

    • Enter the directory “./src”

      $ cd ./src

    • Compile the ænet source code with

      $ make -f makefiles/Makefile.XXX

      where Makefile.XXX is an approproiate Makefile.

      To see a list of available Makefiles just type:

      $ make

    The following executables will be generated in “./bin”:

    • generate.x: generate training sets from atomic structure files
    • train.x: train new neural network potentials
    • predict.x: use existing ANN potentials for energy/force prediction
  3. (Optional) Install the Python interface

    • Enter the directory “./python”

      $ cd ./python

    • Install the Python module with

      $ python setup.py install --user

    This will set up the Python ænet module for the current user, and it will also install the user scripts aenet-predict.py and aenet-md.py.

Detailed installation instructions

Except for a number of Python scripts, ænet is developed in Fortran 95/2003. Generally, the source code is tested with the free GNU Fortran compiler and the commercial Intel Fortran compiler, and the Makefile settings for these two compilers are provided. While the ænet source code should be platform independent, we mainly target Linux and Unix clusters and ænet has not been tested on other operating systems.

ænet requires three external libraries:

  1. BLAS (Basic Linear Algebra Subprograms),
  2. LAPACK (Linear Algebra PACKage),
  3. And the L-BFGS-B optimization routines by Nocedal et al.

Usually, some implementation of BLAS and LAPACK comes with the operating system or the compiler. If that is not the case, the libraries can be obtained from Netlib.org. libblas.a and liblapack.a have to be in the system library path in order to compile ænet.

The L-BFGS-B routines, an implementation of the bounded limited-memory Broyden-Fletcher-Goldfarb-Shanno algorithm, is distributed on the homepage of the authors (Nocedal et al.). For the user’s convenience we have decided to distribute the original L-BFGS-B files along with ænet package, so you do not have to actually download the library yourself. However, each application of ænet should also acknowledge the use of the L-BFGS-B library by citing:

R. H. Byrd, P. Lu and J. Nocedal, SIAM J. Sci. Stat. Comp. 16 (1995) 1190-1208.

ænet’s Python interface further relies on NumPy and on the Atomic simulation Environment, so these dependencies have to available when the ænet Python module is set up.

Compilation of external libraries that are distributed with ænet

All external libraries needed by the ænet code are in the directory “./lib”. Currently, only one external library is distributed with ænet, the L-BFGS-B library (see above).

To compile the external libraries

  1. Enter the directory “./lib”

    $ cd ./lib

  2. Adjust the compiler settings in the “Makefile”

    The Makefile contains settings for the GNU Fortran compiler (gfortran) and the Intel Fortran compiler (ifort). Uncomment the section that is appropriate for your system.

  3. Compile the library with

    $ make

The static library “liblbfgsb.a”, required to build ænet, will be created.

Build ænet

The ænet source code is located in “./src”.

  1. Enter “./src”

    $ cd ./src

  2. To see a short explanation of the Makefiles that come with ænet, just run make without any options.

    $ make

    Select the Makefile that is appropriate for your computer.

  3. Compile with

    $ make -f makefiles/Makefile.XXX

    where Makefile.XXX is the selected Makefile.

Three executables will be generated and stored in “./bin”:

  • generate.x: generate training sets from atomic structure files
  • train.x: train new neural network potentials
  • predict.x: use existing ANN potentials for energy/force prediction

Set up the Python interface

  1. Enter the directory “./python”

    $ cd ./python

  2. Install the Python module with

    $ python setup.py install --user

This will set up the Python ænet module for the current user, and it will also install the user scripts aenet-predict.py and aenet-md.py.

More Repositories

1

tools-and-data

A collection of tools and databases for atomistic machine learning
46
star
2

MLP-beginners-guide

Strategies for the Construction of Neural-Network Based Machine-Learning Potentials (MLPs)
Jupyter Notebook
22
star
3

ml-catalysis

Machine Learning for Catalysis
Jupyter Notebook
10
star
4

xas-tools

Tools related to X-ray absorption spectroscopy (XAS)
Python
9
star
5

aenet-lammps

Interface aenet with the LAMMPS molecular dynamics software (https://lammps.sandia.gov)
Jupyter Notebook
9
star
6

gibbsml

Prediction of reaction free energies with machine learning
Jupyter Notebook
8
star
7

psi-k-mlip-workshop-2021

Psi-k Machine-learning interatomic potential workshop 2021
Jupyter Notebook
7
star
8

aenet-PyTorch

ænet-PyTorch: a GPU-supported implementation for machine learning atomic potentials training
Fortran
6
star
9

aevo

Atomistic Evolution
Python
5
star
10

mlse2020-workshop

Materials from the ænet workshop at the MLSE 2020 meeting (https://www.eventbrite.com/e/tutorial-workshop-machine-learning-in-materials-science-tickets-128297271593)
Shell
5
star
11

dribble

Lattice Monte-Carlo Percolation Simulations
Python
2
star
12

aenet-python

Python interface for aenet
Python
2
star
13

aenet-tinker

Interface aenet with the Tinker molecular dynamics software
Jupyter Notebook
2
star
14

aiqu-kickoff-bayer-berlin-2022

Kick-off workshop ai.qu. Bayer Berlin
Jupyter Notebook
1
star
15

MeLting

Machine-learning models for melting-temperature prediction
Jupyter Notebook
1
star
16

howru

HowRU is a framework for the optimization of Hubbard U parameters for DFT+U calculations
Python
1
star