PROPhet

PROPhet is a code to integrate machine learning techniques with first-principles quantum chemistry approaches

56
26
C++

// _____________________________________ _____ |
// / __ _/ __ _/ __ _/ __ _/ /________/ / |
// __/ // // // // / / // // // __ / _ / / |
// / // , // // // // / / / _/ / |
// /
/ /
/ |
| _
/ /
/ // //_
/__/ |
//---------------------------------------------------------

This file is part of the PROPhet code, which was written
by Brian Kolb and Levi Lentz in the group of Alexie
Kolpak at MIT.

See the documentation in doc/PROPhet_documentation.pdf for
a full description of PROPhet.

Please see the LICENSE file for license information

If used for published work, please cite the following:

Scientific Reports 7, Article number: 1192 (2017) doi:10.1038/s41598-017-01251-z


Compilation instructions

Compilation follows the standard linux paradigm:

./configure [options]
make
make install

If you want to use PROPhet potentials in the LAMMPS MD code,
you should execute:

./configure [options] --enable-lammps=LAMMPS_DIR
make 
make install

where LAMMPS_DIR is the directory with the LAMMPS source.
This will make the lammps library of PROPhet, and attempt
to insert it into the LAMMPS package system. The LAMMPS
code must be relinked after completion to link in the
PROPhet library. If automatic instalation fails, the
library can be inserted into LAMMPS by following the
instructions given in the documentation.

Usage instructions can be found in the documentation,
and by looking in the examples directory. A fully
annotated input_file is also included in the
examples directory.

Description of classes in this package. The descriptions
apply to the *.h and associated *.cpp files

Analysis : A class to provide statistical analysis of a
fit during a “-validate” run
Art : Some logos, etc.
Atom : A class for holding name and atomic number of
atoms.
Common : A single wrapper class to include headers for
common classes. Also defined here are random
number generators.
DFT_IO : An interface class for interacting with DFT
codes.
Error : A class defining an Error and Warning routine
which provide useful information at runtime.
FHIAIMS : An interface to the FHI-Aims DFT code
Functional : A high-level class to perform machine learning
fits to properties of interest other than
structure, which is handled by the Potential
class
Functional_params : General parameters for a run
Grid_data : Data in grid format. This is mainly used for
charge density.
Network : Abstract interface class for a machine learning
method.
Network_node : Abstract interface class for a node in a neural
network.
NN : A class to implement a nueral network
NN_node : A class to implement a node in a neural
network
Optimizer : This class performs the optimization of a
network.
pair_nn : A class which can be linked into the LAMMPS code
to use a PROPhet potential in LAMMPS.
Parallel : A wrapper to MPI functions
Potential : A high-level class to perform fits based on
structure.
QE : An interface to the Quantum Espresso DFT code.
Setup : This class handles user input and run setup.
Structure : This class holds structural information and
performs operations allowing structure fits.
System_data : A container class to hold training properties.
System : A wrapper for
Tables : This class implements expensive functions via
look-up-tables with spline interpolation.
VASP : An interface to the VASP DFT-code
xml_reader : A wrapper for the pugixml xml parser.

In addition, two files are provided for the
pugixml xml parser (see http://pugixml.org/)

pugiconfig.hpp
pugixml.hpp