Skip to content

dft.periodic_convergence

Axis-agnostic convergence reports for periodic DFT calculations.

import mlx_atomistic.dft.periodic_convergence

class PeriodicConvergenceCriterion
def __init__(observable: str, absolute_tolerance: float, relative_tolerance: float = 0.0)

Tolerance for one named scalar observable.

Parameters

NameTypeDefaultDescription
observablestrObservable key shared by both calculation points.
absolute_tolerancefloatNon-negative tolerance in the observable’s unit.
relative_tolerancefloat0.0Non-negative fractional tolerance. Defaults to zero.

Methods

def to_dict() -> dict[str, object]

Return the criterion as JSON-safe metadata.

Returns

  • dict[str, object]
class PeriodicConvergenceMetric
def __init__(observable: str, baseline_value: float, check_value: float, signed_difference: float, absolute_difference: float, relative_difference: float, allowed_difference: float, absolute_tolerance: float, relative_tolerance: float, passed: bool)

Evaluated convergence status for one scalar observable.

Parameters

NameTypeDefaultDescription
observablestr
baseline_valuefloat
check_valuefloat
signed_differencefloat
absolute_differencefloat
relative_differencefloat
allowed_differencefloat
absolute_tolerancefloat
relative_tolerancefloat
passedbool

Methods

def to_dict() -> dict[str, object]

Return the evaluated metric as JSON-safe metadata.

Returns

  • dict[str, object]
class PeriodicConvergencePoint
def __init__(parameter_value: float | tuple[float, ...], calculation_fingerprint: str, source_fingerprint: str, runtime_fingerprint: str, observables: Mapping[str, float])

One source-bound periodic calculation in a convergence comparison.

Parameters

NameTypeDefaultDescription
parameter_valuefloat | tuple[float, ...]Scalar or one-dimensional numerical axis value.
calculation_fingerprintstrExact calculation-contract SHA-256 identity.
source_fingerprintstrExact source/resource SHA-256 identity.
runtime_fingerprintstrExact runtime/environment SHA-256 identity.
observablesMapping[str, float]Named finite scalar values from the calculation.

Methods

def to_dict() -> dict[str, object]

Return the source-bound point as JSON-safe metadata.

Returns

  • dict[str, object]
class PeriodicConvergenceReport
def __init__(axis: str, baseline: PeriodicConvergencePoint, check: PeriodicConvergencePoint, metrics: tuple[PeriodicConvergenceMetric, ...], passed: bool)

Reusable comparison of two exact periodic calculation identities.

Parameters

NameTypeDefaultDescription
axisstr
baselinePeriodicConvergencePoint
checkPeriodicConvergencePoint
metricstuple[PeriodicConvergenceMetric, ...]
passedbool

Methods

def to_dict() -> dict[str, object]

Return the complete convergence report as JSON-safe metadata.

Returns

  • dict[str, object]
def compare_periodic_convergence(axis: str, baseline: PeriodicConvergencePoint, check: PeriodicConvergencePoint, criteria: Sequence[PeriodicConvergenceCriterion]) -> PeriodicConvergenceReport

Compare two source-bound periodic calculations on any numerical axis.

Parameters

NameTypeDefaultDescription
axisstrNon-empty numerical-axis label such as cutoff_hartree.
baselinePeriodicConvergencePointSelected production or lower-resolution calculation.
checkPeriodicConvergencePointIndependent refined calculation.
criteriaSequence[PeriodicConvergenceCriterion]Unique observable tolerances to evaluate.

Returns

  • PeriodicConvergenceReport — Per-observable differences and aggregate pass/fail status.

Raises

  • TypeError — If points or criteria use unsupported types.
  • ValueError — If identities, the axis, criteria, or observables are invalid.