You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Electrode workflow and documentation improvements (#1055)
* Ensure electrode workflow doesn't store charge density in JobStore by default / better naming of tasks in wf
* Documentation improvements
* Remove strict-tblite dependence and patch openmm tests to work with newer dependency stack
In short: While the cell size, shape, symmetry, etc. can change during a relaxation, the *k* point grid does not change with it.
103
+
Additionally, the number of plane waves is held constant during a relaxation.
104
+
Both features lead to artificial (numerical) stress due to under-convergence of a relaxation with respect to the basis set.
105
+
To avoid this, we perform a single relaxation, and input its final structure to another relaxation calculation.
106
+
At the start of the second relaxation, the *k*-point mesh and plane waves are adjusted to reflect the new symmetry of the cell.
107
+
108
+
### Materials Project structure optimization
109
+
110
+
The Materials Project hosts a large database of, among other physical properties, optimized structures and their associated total energy, formation enthalpy, and basic electronic structure properties.
111
+
To generate this data, the Materials Project uses a simple double-relaxation followed by a final static calculation.
112
+
While in principle, if the second relaxation calculation is converged, a final static calculation would not be needed.
113
+
However, the second relaxation may have residual Pulay stress, and VASP averages some electronic structure data ([like the density of states](https://www.vasp.at/wiki/index.php/DOSCAR)) during a relaxation.
114
+
Thus we need to perform a final single-point (static) calculation, usually using the corrected tetrahedron method (`ISMEAR=-5`) to ensure accurate electronic structure properties.
115
+
116
+
The workflows used to produce PBE GGA or GGA+*U* and r<sup>2</sup>SCAN thermodynamic data are, respectively, `MPGGADoubleRelaxStaticMaker` and `MPMetaGGADoubleRelaxStaticMaker` in `atomate2.vasp.flows.mp`.
117
+
Moving forward, the Materials Project prefers r<sup>2</sup>SCAN calculations, but maintains its older set of GGA-level data which currently has wider coverage.
118
+
For documentation about the calculation parameters used, see the [Materials Project documentation.](https://docs.materialsproject.org/methodology/materials-methodology/calculation-details)
To update *k*-points, use the `user_kpoints_settings` keyword argument of an input set generator.
638
+
You can supply either a `pymatgen.io.vasp.inputs.Kpoints` object, or a `dict` containing certain [keys](https://github.com/materialsproject/pymatgen/blob/b54ac3e65e46b876de40402e8da59f551fb7d005/src/pymatgen/io/vasp/sets.py#L812).
639
+
We generally recommend the former approach unless the user is familiar with the specific style of *k*-point updates used by `pymatgen`.
640
+
For example, to use just the $\Gamma$ point:
641
+
642
+
```py
643
+
from pymatgen.io.vasp.inputs import Kpoints
644
+
from atomate2.vasp.sets.core import StaticSetGenerator
Finally, sometimes you have a workflow containing many VASP jobs. In this case it can be
620
665
tedious to update the input sets for each job individually. Atomate2 provides helper
621
666
functions called "powerups" that can apply settings updates to all VASP jobs in a flow.
@@ -663,8 +708,7 @@ modification of several additional VASP settings, such as the k-points
663
708
664
709
If a greater degree of flexibility is needed, the user can define a default set of input
665
710
arguments (`config_dict`) that can be provided to the {obj}`.VaspInputGenerator`.
666
-
By default, the {obj}`.VaspInputGenerator` uses a base set of VASP input parameters
667
-
from {obj}`.BaseVaspSet.yaml`, which each `Maker` is built upon. If desired, the user can
711
+
By default, the {obj}`.VaspInputGenerator` uses a base set of VASP input parameters (`atomate2.vasp.sets.base._BASE_VASP_SET`), which each `Maker` is built upon. If desired, the user can
668
712
define a custom `.yaml` file that contains a different base set of VASP settings to use.
669
713
An example of how this can be done is shown below for a representative static
0 commit comments