EOSPostProcessor

class atomate2.common.jobs.eos.EOSPostProcessor[source]

Bases: MSONable

Fit data to an EOS.

Parameters:
  • name (str) – Name of the class

  • eos_attrs (tuple[str,...]) – Physical quantities that can enter the EOS fit

  • job_types (tuple[str,...]) – Types of jobs included in the EOS data

  • min_data_points (int or None) – Minimum number of data points needed to perform a fit.

sort_by_quantity(quantity='volume')[source]

Sort input data by given kwarg.

Parameters:

quantity (str = "volume") – kwarg to sort by

Return type:

None

abstract eval()[source]

Fit the EOS according to a user-implemented function.

Return type:

None

fit(eos_flow_output)[source]

Fit the EOS.

Parameters:

eos_flow_output (dict) –

Volume, energy, and (optionally) stress and pressure data in dict form:

{
    "relax" <required> and "static" <optional> : {
        "energy": list, <required>
        "volume": list, <required>
        "stress": list <optional>
        "structure": list <not needed for the fit>
        "dir_name": list <optional for the fit>
    },
    "initial_<key>": {"E0": float, "V0": float} <optional>,
        for <key> in ("relax", "static")
}

Return type:

None

make(eos_flow_output)[source]

Run the fit as a jobflow job.

Parameters:

eos_flow_output (dict) –

Volume, energy, and (optionally) stress and pressure data in dict form:

{
    "relax" <required> and "static" <optional> : {
        "energy": list, <required>
        "volume": list, <required>
        "stress": list <optional>
    },
    "initial_<key>": {"E0": float, "V0": float} <optional>,
        for <key> in ("relax", "static")
}

Return type:

Job