• Stars
    star
    146
  • Rank 251,243 (Top 5 %)
  • Language
    Python
  • License
    Other
  • Created almost 4 years ago
  • Updated about 1 month ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

atomate2 is a library of computational materials science workflows

atomate2

tests code coverage pypi version supported python versions

Documentation | PyPI | GitHub

Atomate2 is a free, open-source software for performing complex materials science workflows using simple Python functions. Features of atomate2 include

  • It is built on open-source libraries: pymatgen, custodian, jobflow, and FireWorks.
  • A library of "standard" workflows to compute a wide variety of desired materials properties.
  • The ability scale from a single material, to 100 materials, or 100,000 materials.
  • Easy routes to modifying and chaining workflows together.
  • It can build large databases of output properties that you can query, analyze, and share in a systematic way.
  • It automatically keeps meticulous records of jobs, their directories, runtime parameters, and more.

Note: Atomate2 is primarily built to work with the VASP electronic structure software, but we are actively working on adding more codes.

Workflows

Some of the workflows available in atomate2 are:

  • electronic band structures
  • elastic, dielectric, and piezoelectric tensors
  • one-shot electron-phonon interactions
  • electronic transport using AMSET
  • phonons using phonopy
  • defect formation energy diagrams
  • Lobster bonding analysis with lobsterpy

It is easy to customise and compose any of the above workflows.

Quick start

Workflows in atomate2 are written using the jobflow library. Workflows are generated using Maker objects which have a consistent API for modifying input settings and chaining workflows together. Below, we demonstrate how to run a band structure workflow (see the documentation for more details). In total, 4 VASP calculations will be performed:

  1. A structural optimisation.
  2. A self-consistent static calculation on the relaxed geometry.
  3. A non-self-consistent calculation on a uniform k-point mesh (for the density of states).
  4. A non-self-consistent calculation on a high symmetry k-point path (for the line mode band structure).
from atomate2.vasp.flows.core import RelaxBandStructureMaker
from jobflow import run_locally
from pymatgen.core import Structure

# construct a rock salt MgO structure
mgo_structure = Structure(
    lattice=[[0, 2.13, 2.13], [2.13, 0, 2.13], [2.13, 2.13, 0]],
    species=["Mg", "O"],
    coords=[[0, 0, 0], [0.5, 0.5, 0.5]],
)

# make a band structure flow to optimise the structure and obtain the band structure
bandstructure_flow = RelaxBandStructureMaker().make(mgo_structure)

# run the flow
run_locally(bandstructure_flow, create_folders=True)

Before the above code can run successfully, you'll need to

  • tell pymatgen where to find your pseudopotential files
  • tell atomate2 where to find your VASP binary
  • (optionally) prepare an external database to store the job output

See the installation steps for details how to set all of this up.

In this example, we execute the workflow immediately. In many cases, you might want to perform calculations on several materials simultaneously. To achieve this, all atomate2 workflows can be run using the FireWorks software. See the documentation for more details.

Installation

Atomate2 is a Python 3.8+ library and can be installed using pip. Full installation and configuration instructions are provided in the installation tutorial.

Tutorials

The documentation includes comprehensive tutorials and reference information to get you started:

Need help?

Ask questions about atomate2 on the atomate2 support forum. If you've found an issue with atomate2, please submit a bug report on GitHub Issues.

What’s new?

Track changes to atomate2 through the changelog.

Contributing

We greatly appreciate any contributions in the form of a pull request. Additional information on contributing to atomate2 can be found here. We maintain a list of all contributors here.

License

Atomate2 is released under a modified BSD license; the full text can be found here.

Acknowledgements

The development of atomate2 has benefited from many people across several research groups. A full list of contributors can be found here.

More Repositories

1

pymatgen

Python Materials Genomics (pymatgen) is a robust materials analysis code that defines classes for structures and molecules with support for many electronic structure codes. It powers the Materials Project.
Python
1,359
star
2

fireworks

The Fireworks Workflow Management Repo.
Python
322
star
3

crystaltoolkit

Crystal Toolkit is a framework for building web apps for materials science and is currently powering the new Materials Project website.
Python
141
star
4

mapidoc

Public repo for Materials API documentation
Jupyter Notebook
140
star
5

custodian

A simple, robust and flexible just-in-time job management framework in Python.
Python
127
star
6

workshop

The Materials Project Workshop Curriculum
Jupyter Notebook
111
star
7

api

New API client for the Materials Project
Python
102
star
8

matbench

Matbench: Benchmarks for materials science property prediction
Python
95
star
9

jobflow

jobflow is a library for writing computational workflows.
Python
83
star
10

reaction-network

Reaction Network is a Python package for predicting likely inorganic chemical reaction pathways using graph theoretical methods. Project led by @mattmcdermott (Lawrence Berkeley National Lab).
Python
79
star
11

mpmorph

MPmorph is a collection of tools to run and analyze ab-initio molecular dynamics (AIMD) calculations run with VASP, and is currently under development. It relies heavily on tools developed by the Materials Project (pymatgen, custodian, fireworks) and atomate.
Python
62
star
12

emmet

Be a master builder of databases of material properties. Avoid the Kragle.
Python
52
star
13

pymatgen-db

Pymatgen-db provides an addon to the Python Materials Genomics (pymatgen) library (https://pypi.python.org/pypi/pymatgen) that allows the creation of Materials Project-style databases for management of materials data.
Python
48
star
14

maggma

MongoDB aggregation machine
Python
38
star
15

MPContribs

Platform for materials scientists to contribute and disseminate their materials data through Materials Project
Jupyter Notebook
34
star
16

pyrho

Python
33
star
17

pymatgen-analysis-defects

Defect analysis modules for pymatgen
Python
28
star
18

MPWorks

merges pymatgen, custodian, and FireWorks into a custom workflow for Materials Project
Python
24
star
19

dash-mp-components

Plotly Dash components developed by the Materials Project
Python
22
star
20

workshop-2017

Assets for the 2017 Materials Project workshop
Jupyter Notebook
18
star
21

mp-react-components

A suite of React components for the Materials Project, developed for use in Crystal Toolkit and the Materials Project public website.
TypeScript
17
star
22

foundation

Ruby
16
star
23

docs

Materials Project Documentation
14
star
24

pymatgen-analysis-alloys

pymatgen-analysis-alloys is an add-on package for pymatgen intended to contain useful classes for describing alloy systems and analyzing data relevant to these systems.
Python
12
star
25

workshop-2016

Assets for the Materials Project workshop in Aug 2016
HTML
12
star
26

rubicon

Workflow for Electrolyte Genome Project.
Python
8
star
27

pymatgen-io-validation

Comprehensive input/output validator. Made with the purpose of ensuring VASP calculations are compatible with Materials Project data, with possible future expansion to cover other DFT codes.
Python
8
star
28

mongogrant

grant username and password credentials for roles on mongo databases via email verification
Python
7
star
29

webtzite

A prototypal structure for serving materials data
Python
6
star
30

public-docs

The latest documentation for the Materials Project.
6
star
31

gbml

Gradient Boosting Machine-Locfit: A GBM framework using local regresssion via Locfit.
C
6
star
32

pymatgen-addon-template

A template for writing add-on namespace packages for pymatgen
Python
5
star
33

build-a-battery

interactive battery demo built on meteor
CSS
4
star
34

.github

3
star
35

MPCite

Continuous and High-Throughput Allocation of Digital Object Identifiers for Materials Data in the Materials Project
Jupyter Notebook
3
star
36

MPContribsUsers

Contributor Modules to enable their data submissions via MPContribs
Python
2
star
37

mp-jupyter-docker

Docker build for Materials Project Jupyter container
Dockerfile
2
star
38

binder

A ready-to-use environment for trying the Materials Project software stack based on the Binder (https://mybinder.org) service.
Jupyter Notebook
2
star
39

mp-jupyterhub

Jupyterhub for spinning up materials project notebook environments
Python
2
star
40

MPenv

create a virtual environment for running FireWorks within Materials Project
Python
2
star
41

www-issues

Public issue tracker for www.materialsproject.org
1
star
42

mp_docker

docker image for materials_django
Dockerfile
1
star
43

status

Status page for Materials Project website and services
1
star