Git Product home page Git Product logo

iprpy's Introduction

iprPy

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:

  1. Demonstration Calculations
  2. Reference Library
  3. High-Throughput Calculation Tools

Demonstration Calculations

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:

Reference Library

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.

High-Throughput Calculation Tools

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.

iprpy's People

Contributors

lmhale99 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.