This is the homepage for the Python tools used in calculating material properties as predicted by classical atomistic models for the NIST Interatomic Potential Repository.
The project is divided into three major components:
The demo-Notebooks folder contains demonstration versions of all of the calculations in the form of Jupyter Notebooks. This format was selected as it allows for a combination of the relevant Python code with formatted descriptions. As hosted on GitHub, the pages render clearly as HTML, and can be easily downloaded where they can then be ran and modified by any who have Jupyter.
Ideally, the implementation of the code in the Notebooks would directly correspond to the purely Python versions hosted with the high-throughput tools. However, we have found that it is more practical to have the Notebook representations simplified by breaking calculation steps into smaller components. In this way, all functions and algorithms used are directly identical between the two formats, but the code for setting up and outputting the results does differ.
The implemented calculation Notebooks are:
The reference-libraries folder holds a collection of reference JSON data files and other files used in running the calculations. The files are collected into folders according to what they represent:
- potentials contains JSON data files associated with LAMMPS implemented atomic potentials, as well as a collection of potential parameter files. All of the potentials collected in this folder are hosted on the Interatomic Potential Repository. The JSON data files are used to generate atomman.lammps.Potential objects that assist in running simulations by dynamically constructing pair_style, pair_coeff LAMMPS commands, as well as collecting other potential-specific parameters.
- prototypes contains JSON data files associated with different crystal prototype structures. Each file contains metadata for the crystal prototype, as well as the necessary parameters for generating a system based on the prototype. These files can be read using atomman.models.crystal().
- point contains JSON data files associated with different types of point defects. Each file contains metadata for the defect, as well as the parameter sets used by atomman.defects.point() for adding the defect to a system. The files are collected into folders named after the crystal prototypes that the defects are for.
NOTE: the high-throughput tools are in active development. As such, there may be substantial changes made to how they operate and what they produce. Feel free to test the tools, but know that things may rapidly change and that for now there is no guarantee that the changes will be entirely additive (i.e some features, steps, etc. may be removed).
The iprPy-tools folder collects everything for performing the calculations in a high-throughput manner. This includes Python scripts associated with the various calculations, as well as Python scripts for setting up the calculations, systematically running them, and processing their results.
Documentation related to the high-throughput tools can be found in the README file contained in the iprPy-tools directory.