Skip to content

Commit

Permalink
Initial commit for v1.0 master
Browse files Browse the repository at this point in the history
  • Loading branch information
biklooost committed Sep 30, 2016
0 parents commit 4d97881
Show file tree
Hide file tree
Showing 380 changed files with 90,545 additions and 0 deletions.
622 changes: 622 additions & 0 deletions LICENSE

Large diffs are not rendered by default.

114 changes: 114 additions & 0 deletions README
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
// _____________________________________ _____ |
// ___/ __ \__/ __ \_/ __ \__/ __ \__/ /________/ / |
// __/ /_/ /_/ /_/ // / / /_/ /_/ /_/ __ \/ _ \/ __/ |
// _/ ____/_/ _, _// /_/ /_/ ____/_/ / / / __/ /_ |
// /_/ /_/ |_| \____/ /_/ /_/ /_/\___/\__/ |
//---------------------------------------------------------

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

***********************************************************



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





81 changes: 81 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
```
// _____________________________________ _____ |
// ___/ __ \__/ __ \_/ __ \__/ __ \__/ /________/ / |
// __/ /_/ /_/ /_/ // / / /_/ /_/ /_/ __ \/ _ \/ __/ |
// _/ ____/_/ _, _// /_/ /_/ ____/_/ / / / __/ /_ |
// /_/ /_/ |_| \____/ /_/ /_/ /_/\___/\__/ |
//---------------------------------------------------------
```

PROPhet was ceated by
Brian Kolb and Levi Lentz
in the [group of Alexie Kolpak](http://kolpak.mit.edu/) at [![MIT](https://github.com/biklooost/PROPhet/blob/gh-pages/images/MIT-logo-red-gray-54x28.png)](http://web.mit.edu/)

See the [documentation](http://biklooost.github.io/PROPhet/doc/PROPhet_documentation.pdf) for
a full description of PROPhet.

Please see the [LICENSE](https://github.com/biklooost/PROPhet/blob/master/LICENSE) file for license information

---


### [Description of PROPhet](https://biklooost.github.io/PROPhet/)
---
PROPhet (short for PROPerty Prophet) couples neural networks with first-principles physics and chemistry codes to
allow sophisticated prediction of material properties. In general, PROPhet is used to
find mappings between a set of material or system properties and other properties. Some
specific uses of PROPhet are to:
* Find a mapping between atomic configuration and other properties, including the total energy, creating an analytical potential, which can be used for molecular dynamics with the [LAMMPS](http://lammps.sandia.gov/) code
* Construct density functionals for exchange-correlation energy, kinetic energy, or just about
anything else
* Find a mapping between a set of descriptors (an arbitrary combination of material properties) and other properties

See the [PROPhet project page](https://biklooost.github.io/PROPhet/) for more details.


### Interfaces with other codes
---
At the moment, PROPhet can couple automatically to the first-principles codes
- [VASP](https://www.vasp.at/)
- [Quantum Espresso](http://www.quantum-espresso.org/)
- [FHI-Aims](https://aimsclub.fhi-berlin.mpg.de/)

meaning it can extract many common properties directly from the output files of these codes, without user interaction. Interfaces to other codes can be easily added.

In addition, potentials created in PROPhet can be used for molecular dynamics runs with the freely-available [LAMMPS](http://lammps.sandia.gov/) MD code. See the [documentation](http://biklooost.github.io/PROPhet/doc/PROPhet_documentation.pdf#page=16) for more details.



### Compiling Information
---
Compilation follows the standard linux paradigm:
```
./configure [options]
make
make install
```

If you want to use PROPhet potentials in the [LAMMPS](http://lammps.sandia.gov/) 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](http:/biklooost.github.io/PROPhet/doc/PROPhet_documentation.pdf#page=6).

### Usage Instructions
---
Usage instructions including a tutorial can be found in the [documentation](http://biklooost.github.io/PROPhet/doc/PROPhet_documentation.pdf#page=8),
and by looking in the [doc/tutorial](https://github.com/biklooost/PROPhet/tree/master/doc/tutorial) directory. A fully
annotated input_file is also included in the
[doc](https://github.com/biklooost/PROPhet/tree/master/doc) directory.

Empty file added bin/.git_ignore
Empty file.
Binary file added doc/PROPhet_documentation.pdf
Binary file not shown.
Loading

0 comments on commit 4d97881

Please sign in to comment.