Skip to content

Commit 4d97881

Browse files
committed
Initial commit for v1.0 master
0 parents  commit 4d97881

380 files changed

Lines changed: 90545 additions & 0 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

LICENSE

Lines changed: 622 additions & 0 deletions
Large diffs are not rendered by default.

README

Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
// _____________________________________ _____ |
2+
// ___/ __ \__/ __ \_/ __ \__/ __ \__/ /________/ / |
3+
// __/ /_/ /_/ /_/ // / / /_/ /_/ /_/ __ \/ _ \/ __/ |
4+
// _/ ____/_/ _, _// /_/ /_/ ____/_/ / / / __/ /_ |
5+
// /_/ /_/ |_| \____/ /_/ /_/ /_/\___/\__/ |
6+
//---------------------------------------------------------
7+
8+
This file is part of the PROPhet code, which was written
9+
by Brian Kolb and Levi Lentz in the group of Alexie
10+
Kolpak at MIT.
11+
12+
See the documentation in doc/PROPhet_documentation.pdf for
13+
a full description of PROPhet.
14+
15+
Please see the LICENSE file for license information
16+
17+
***********************************************************
18+
19+
20+
21+
Compilation instructions
22+
--------------------------------------------------------
23+
24+
Compilation follows the standard linux paradigm:
25+
26+
./configure [options]
27+
make
28+
make install
29+
30+
If you want to use PROPhet potentials in the LAMMPS MD code,
31+
you should execute:
32+
33+
./configure [options] --enable-lammps=LAMMPS_DIR
34+
make
35+
make install
36+
37+
38+
where LAMMPS_DIR is the directory with the LAMMPS source.
39+
This will make the lammps library of PROPhet, and attempt
40+
to insert it into the LAMMPS package system. The LAMMPS
41+
code must be relinked after completion to link in the
42+
PROPhet library. If automatic instalation fails, the
43+
library can be inserted into LAMMPS by following the
44+
instructions given in the documentation.
45+
46+
47+
48+
Usage instructions can be found in the documentation,
49+
and by looking in the examples directory. A fully
50+
annotated input_file is also included in the
51+
examples directory.
52+
53+
54+
55+
56+
Description of classes in this package. The descriptions
57+
apply to the *.h and associated *.cpp files
58+
--------------------------------------------------------
59+
Analysis : A class to provide statistical analysis of a
60+
fit during a "-validate" run
61+
Art : Some logos, etc.
62+
Atom : A class for holding name and atomic number of
63+
atoms.
64+
Common : A single wrapper class to include headers for
65+
common classes. Also defined here are random
66+
number generators.
67+
DFT_IO : An interface class for interacting with DFT
68+
codes.
69+
Error : A class defining an Error and Warning routine
70+
which provide useful information at runtime.
71+
FHIAIMS : An interface to the FHI-Aims DFT code
72+
Functional : A high-level class to perform machine learning
73+
fits to properties of interest other than
74+
structure, which is handled by the Potential
75+
class
76+
Functional_params : General parameters for a run
77+
Grid_data : Data in grid format. This is mainly used for
78+
charge density.
79+
Network : Abstract interface class for a machine learning
80+
method.
81+
Network_node : Abstract interface class for a node in a neural
82+
network.
83+
NN : A class to implement a nueral network
84+
NN_node : A class to implement a node in a neural
85+
network
86+
Optimizer : This class performs the optimization of a
87+
network.
88+
pair_nn : A class which can be linked into the LAMMPS code
89+
to use a PROPhet potential in LAMMPS.
90+
Parallel : A wrapper to MPI functions
91+
Potential : A high-level class to perform fits based on
92+
structure.
93+
QE : An interface to the Quantum Espresso DFT code.
94+
Setup : This class handles user input and run setup.
95+
Structure : This class holds structural information and
96+
performs operations allowing structure fits.
97+
System_data : A container class to hold training properties.
98+
System : A wrapper for
99+
Tables : This class implements expensive functions via
100+
look-up-tables with spline interpolation.
101+
VASP : An interface to the VASP DFT-code
102+
xml_reader : A wrapper for the pugixml xml parser.
103+
104+
105+
In addition, two files are provided for the
106+
pugixml xml parser (see http://pugixml.org/)
107+
-----------------------------------------------------
108+
pugiconfig.hpp
109+
pugixml.hpp
110+
111+
112+
113+
114+

README.md

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
```
2+
// _____________________________________ _____ |
3+
// ___/ __ \__/ __ \_/ __ \__/ __ \__/ /________/ / |
4+
// __/ /_/ /_/ /_/ // / / /_/ /_/ /_/ __ \/ _ \/ __/ |
5+
// _/ ____/_/ _, _// /_/ /_/ ____/_/ / / / __/ /_ |
6+
// /_/ /_/ |_| \____/ /_/ /_/ /_/\___/\__/ |
7+
//---------------------------------------------------------
8+
```
9+
10+
PROPhet was ceated by
11+
Brian Kolb and Levi Lentz
12+
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/)
13+
14+
See the [documentation](http://biklooost.github.io/PROPhet/doc/PROPhet_documentation.pdf) for
15+
a full description of PROPhet.
16+
17+
Please see the [LICENSE](https://github.com/biklooost/PROPhet/blob/master/LICENSE) file for license information
18+
19+
---
20+
21+
22+
### [Description of PROPhet](https://biklooost.github.io/PROPhet/)
23+
---
24+
PROPhet (short for PROPerty Prophet) couples neural networks with first-principles physics and chemistry codes to
25+
allow sophisticated prediction of material properties. In general, PROPhet is used to
26+
find mappings between a set of material or system properties and other properties. Some
27+
specific uses of PROPhet are to:
28+
* 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
29+
* Construct density functionals for exchange-correlation energy, kinetic energy, or just about
30+
anything else
31+
* Find a mapping between a set of descriptors (an arbitrary combination of material properties) and other properties
32+
33+
See the [PROPhet project page](https://biklooost.github.io/PROPhet/) for more details.
34+
35+
36+
### Interfaces with other codes
37+
---
38+
At the moment, PROPhet can couple automatically to the first-principles codes
39+
- [VASP](https://www.vasp.at/)
40+
- [Quantum Espresso](http://www.quantum-espresso.org/)
41+
- [FHI-Aims](https://aimsclub.fhi-berlin.mpg.de/)
42+
43+
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.
44+
45+
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.
46+
47+
48+
49+
### Compiling Information
50+
---
51+
Compilation follows the standard linux paradigm:
52+
```
53+
./configure [options]
54+
make
55+
make install
56+
```
57+
58+
If you want to use PROPhet potentials in the [LAMMPS](http://lammps.sandia.gov/) MD code,
59+
you should execute:
60+
61+
```
62+
./configure [options] --enable-lammps=LAMMPS_DIR
63+
make
64+
make install
65+
```
66+
67+
where LAMMPS_DIR is the directory with the LAMMPS source.
68+
This will make the lammps library of PROPhet, and attempt
69+
to insert it into the LAMMPS package system. The LAMMPS
70+
code must be relinked after completion to link in the
71+
PROPhet library. If automatic instalation fails, the
72+
library can be inserted into LAMMPS by following the
73+
instructions given in the [documentation](http:/biklooost.github.io/PROPhet/doc/PROPhet_documentation.pdf#page=6).
74+
75+
### Usage Instructions
76+
---
77+
Usage instructions including a tutorial can be found in the [documentation](http://biklooost.github.io/PROPhet/doc/PROPhet_documentation.pdf#page=8),
78+
and by looking in the [doc/tutorial](https://github.com/biklooost/PROPhet/tree/master/doc/tutorial) directory. A fully
79+
annotated input_file is also included in the
80+
[doc](https://github.com/biklooost/PROPhet/tree/master/doc) directory.
81+

bin/.git_ignore

Whitespace-only changes.

doc/PROPhet_documentation.pdf

434 KB
Binary file not shown.

0 commit comments

Comments
 (0)