Skip to content

Commit a48a882

Browse files
committed
Add readme
1 parent 31f3d7e commit a48a882

File tree

3 files changed

+137
-2
lines changed

3 files changed

+137
-2
lines changed

README.md

Lines changed: 131 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,132 @@
11
# atomate2
2+
3+
<a href="https://github.com/materialsproject/atomate2/actions?query=workflow%3Atesting"><img alt="code coverage" src="https://img.shields.io/github/workflow/status/materialsproject/atomate2/testing?label=tests"></a>
4+
<a href="https://codecov.io/gh/materialsproject/atomate2/"><img alt="code coverage" src="https://img.shields.io/codecov/c/gh/materialsproject/atomate2"></a>
5+
<a href="https://pypi.org/project/atomate2"><img alt="pypi version" src="https://img.shields.io/pypi/v/atomate2?color=blue"></a>
6+
<img alt="supported python versions" src="https://img.shields.io/pypi/pyversions/atomate2">
7+
8+
**👉 [Full Documentation][docs] 👈**
9+
10+
Atomate2 is a free, open-source software for performing complex materials science
11+
workflows using simple Python functions. Features of atomate2 include
12+
13+
- It is built on open-source libraries: [pymatgen], [custodian], [jobflow], and
14+
[FireWorks].
15+
- A library of "standard" workflows to compute a wide variety of desired materials
16+
properties.
17+
- The ability scale from a single material, to 100 materials, or 100,000 materials.
18+
- Easy routes to modifying and chaining workflows together.
19+
- It can build large databases of output properties that you can query, analyze, and
20+
share in a systematic way.
21+
- It automatically keeps meticulous records of jobs, their directories, runtime
22+
parameters, and more.
23+
24+
**Note**: Atomate2 is primarily built to work with the [VASP] electronic structure
25+
software, but we are actively working on adding more codes.
26+
27+
## Workflows
28+
29+
Some of the workflows available in atomate2 are:
30+
31+
- electronic band structures
32+
- electronic transport using [AMSET]
33+
- full elastic tensor
34+
- dielectric tensor
35+
36+
It is easy to customise and compose any of the above workflows.
37+
38+
## Quick start
39+
40+
Workflows in atomate2 written using the [jobflow] library. Workflows are generated using
41+
`Maker` objects, that have a consistent API for modifying input settings and chaining
42+
workflows together. Below, we demonstrate how to run a band structure workflow as
43+
detailed in the [RelaxBandStructure] section of the documentation. In total, 4 VASP
44+
calculations will be performed:
45+
46+
1. A structural optimisation.
47+
2. A self-consistent static calculation on the relaxed geometry.
48+
3. A non-self-consistent calculation on a uniform k-point mesh (for the density of
49+
states).
50+
4. A non-self-consistent calculation on a high symmetry k-point path (for the line mode
51+
band structure).
52+
53+
```python
54+
from atomate2.vasp.flows.core import RelaxBandStructureMaker
55+
from jobflow import run_locally
56+
from pymatgen.core import Structure
57+
58+
# construct a rock salt MgO structure
59+
mgo_structure = Structure(
60+
lattice=[[0, 2.13, 2.13], [2.13, 0, 2.13], [2.13, 2.13, 0]],
61+
species=["Mg", "O"],
62+
coords=[[0, 0, 0], [0.5, 0.5, 0.5]],
63+
)
64+
65+
# make a band structure flow to optimise the structure and obtain the band structure
66+
bandstructure_flow = RelaxBandStructureMaker().make(mgo_structure)
67+
68+
# run the job
69+
run_locally(bandstructure_flow)
70+
```
71+
72+
In this example, we run execute the workflow immediately. In most cases, you will want
73+
to perform calculations on many materials simulatenously. To achieve this, all atomate2
74+
workflows can be run using the [FireWorks] software. See the
75+
[documentation][atomate2_fireworks] for more details.
76+
77+
## Installation
78+
79+
Atomate2 is a Python 3.7+ library and can be installed using pip. Full installation
80+
and configuration instructions are provided in the [installation tutorial][installation].
81+
82+
## Tutorials
83+
84+
The documentation includes comprehensive tutorials and reference information to get you
85+
started:
86+
87+
- [Introduction to running workflows][running-workflows]
88+
- [Using atomate2 with FireWorks][atomate2_fireworks]
89+
- [List of VASP workflows][vasp_workflows]
90+
91+
## Need help?
92+
93+
Ask questions about atomate2 on the [atomate2 support forum][help-forum].
94+
If you've found an issue with atomate2, please submit a bug report on [GitHub Issues][issues].
95+
96+
## What’s new?
97+
98+
Track changes to atomate2 through the [changelog][changelog].
99+
100+
## Contributing
101+
102+
We greatly appreciate any contributions in the form of a pull request.
103+
Additional information on contributing to atomate2 can be found [here][contributing].
104+
We maintain a list of all contributors [here][contributors].
105+
106+
## License
107+
108+
Atomate2 is released under a modified BSD license; the full text can be found [here][license].
109+
110+
## Acknowledgements
111+
112+
Atomate2 was designed and developed by Alex Ganose.
113+
114+
[maggma]: https://materialsproject.github.io/maggma/
115+
[pymatgen]: https://pymatgen.org
116+
[fireworks]: https://materialsproject.github.io/fireworks/
117+
[jobflow]: https://materialsproject.github.io/jobflow/
118+
[custodian]: https://materialsproject.github.io/custodian/
119+
[VASP]: https://www.vasp.at
120+
[AMSET]: https://hackingmaterials.lbl.gov/amset/
121+
[help-forum]: https://matsci.org/c/atomate
122+
[issues]: https://github.com/materialsproject/atomate2/issues
123+
[changelog]: https://materialsproject.github.io/atomate2/user/changelog.html
124+
[installation]: https://materialsproject.github.io/atomate2/user/install.html
125+
[contributing]: https://materialsproject.github.io/atomate2/user/contributing.html
126+
[contributors]: https://materialsproject.github.io/atomate2/user/contributors.html
127+
[license]: https://raw.githubusercontent.com/materialsproject/atomate2/main/LICENSE
128+
[running-workflows]: https://materialsproject.github.io/atomate2/user/running-workflows.html
129+
[atomate2_fireworks]: https://materialsproject.github.io/atomate2/user/fireworks.html
130+
[vasp_workflows]: https://materialsproject.github.io/atomate2/user/codes/vasp.html
131+
[RelaxBandStructure]: https://materialsproject.github.io/atomate2/user/codes/vasp.html#relax-and-band-structure
132+
[docs]: https://materialsproject.github.io/atomate2/

docs/src/user/index.rst

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,11 @@
44
User Guide
55
==========
66

7-
This guide is an overview and explains the important features of atomate2.
7+
.. mdinclude:: ../../../README.md
8+
:start-line: 9
9+
10+
Table of Contents
11+
-----------------
812

913
.. toctree::
1014
:maxdepth: 2

docs/src/user/running-workflows.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ Create a Python script named ``mgo_bandstructure.py`` with the following content
8383
)
8484
8585
# make a band structure flow to optimise the structure and obtain the band structure
86-
bandstructure_flow = RelaxBandStructureMaker().make(si_structure)
86+
bandstructure_flow = RelaxBandStructureMaker().make(mgo_structure)
8787
8888
# run the job
8989
run_locally(bandstructure_flow)

0 commit comments

Comments
 (0)