Skip to main content
The EOS task calculates the equation of state (EOS) for a crystal. It:
  1. Fully relaxes the input structure (positions + cell) using OPT.
  2. Generates npoints uniformly strained copies of the relaxed cell spanning ±max_abs_strain.
  3. Relaxes atomic positions inside each strained cell (cell shape fixed).
  4. Fits a Birch-Murnaghan EOS to the resulting energy-volume data.
All per-strain optimizations can be dispatched concurrently via Prefect.

Function signature

Parameters

ase.Atoms
required
Input structure. A copy is made internally.
ase.calculators.calculator.BaseCalculator
required
ASE calculator for energies and forces.
Optimizer | str
default:"BFGSLineSearch"
Optimizer passed to the internal OPT tasks. See structure optimization for valid values.
dict | None
default:"None"
Extra keyword arguments forwarded to the optimizer.
Filter | str | None
default:"FrechetCell"
Cell filter used for the initial full relaxation. Set to None to skip cell relaxation.
dict | None
default:"None"
Extra keyword arguments forwarded to the filter.
dict | None
default:"None"
Convergence criterion dict forwarded to each OPT run (e.g. {"fmax": 0.01}).
number
default:"0.1"
Maximum absolute volumetric strain applied to the equilibrium cell. A value of 0.1 spans cell scale factors from 0.9^(1/3) to 1.1^(1/3) along each axis.
number
default:"11"
Number of volume points sampled along the strain range, including the endpoints.
boolean
default:"true"
If True, all per-strain OPT tasks are submitted concurrently using OPT.submit() and collected with prefect.futures.wait. Set to False for serial execution.
boolean
default:"false"
If True, intermediate OPT results are persisted and cached in Prefect’s result store. Useful when re-running the EOS with the same structure.

Return value

Returns a dict with the following keys on success, or a Prefect State object if the initial relaxation fails:

Example

1

Import and prepare

2

Run the EOS task

3

Inspect results

The EOS task uses a Birch-Murnaghan fit via pymatgen.analysis.eos.BirchMurnaghan. At least 4 converged points are needed for a meaningful fit. Increase npoints if you need higher resolution on the E-V curve.