Skip to content

dft.periodic_optimization

Fixed-cell ionic relaxation for the periodic plane-wave DFT runtime.

import mlx_atomistic.dft.periodic_optimization

class PeriodicGeometryOptimizationConfig
def __init__(max_steps: int = 25, force_tolerance: float = 0.0005, rms_force_tolerance: float = 0.0003, displacement_tolerance: float = 0.003, initial_step_size: float = 1.0, max_step: float = 0.25, line_search_shrink: float = 0.5, line_search_min_step: float = 0.0001, max_line_search_iterations: int = 8, armijo_constant: float = 0.0001, history_size: int = 5, optimizer: PeriodicGeometryOptimizer = 'lbfgs', reuse_scf_state: bool = True, relaxation_mode: Literal['ions'] = 'ions')

Controls for periodic fixed-cell ionic relaxation.

Parameters

NameTypeDefaultDescription
max_stepsint25Maximum accepted ionic steps.
force_tolerancefloat0.0005Maximum per-ion force norm in Hartree/bohr.
rms_force_tolerancefloat0.0003RMS Cartesian force in Hartree/bohr.
displacement_tolerancefloat0.003Maximum final per-ion displacement in bohr.
initial_step_sizefloat1.0Initial inverse-Hessian scale in bohr squared/Hartree.
max_stepfloat0.25Maximum per-ion trial displacement in bohr.
line_search_shrinkfloat0.5Backtracking scale factor.
line_search_min_stepfloat0.0001Smallest inverse-Hessian scale to try.
max_line_search_iterationsint8Maximum SCF trials per ionic step.
armijo_constantfloat0.0001Sufficient-decrease coefficient.
history_sizeint5Maximum retained L-BFGS curvature pairs.
optimizerPeriodicGeometryOptimizer'lbfgs'lbfgs or steepest_descent.
reuse_scf_stateboolTrueReuse accepted density and compact eigenspaces.
relaxation_modeLiteral['ions']'ions'Must remain ions; cell modes fail closed.

Methods

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

Return the canonical JSON-safe optimizer settings.

Returns

  • dict[str, object]
class PeriodicGeometryOptimizationResult
def __init__(status: PeriodicGeometryStatus, convergence_reason: str, initial_system: PeriodicDFTSystem, final_system: PeriodicDFTSystem, final_scf: PeriodicSCFResult | None, final_force: PeriodicForceResult | None, steps: tuple[PeriodicGeometryOptimizationStep, ...], config: PeriodicGeometryOptimizationConfig, elapsed_ms: float, scf_evaluations: int, line_search_evaluations: int, continuation_density_uses: int, continuation_coefficient_uses: int, lineage: tuple[str, ...] = (), checkpoint_manifest: dict[str, object] | None = None)

Result of periodic fixed-cell ionic relaxation.

Parameters

NameTypeDefaultDescription
statusPeriodicGeometryStatus
convergence_reasonstr
initial_systemPeriodicDFTSystem
final_systemPeriodicDFTSystem
final_scfPeriodicSCFResult | None
final_forcePeriodicForceResult | None
stepstuple[PeriodicGeometryOptimizationStep, ...]
configPeriodicGeometryOptimizationConfig
elapsed_msfloat
scf_evaluationsint
line_search_evaluationsint
continuation_density_usesint
continuation_coefficient_usesint
lineagetuple[str, ...]()
checkpoint_manifestdict[str, object] | NoneNone

Properties

  • converged bool — Whether every configured ionic convergence gate passed.
  • final_energy float | None — Return the final periodic energy or free energy in Hartree.
  • final_forces np.ndarray | None — Return final analytic periodic forces in Hartree/bohr.
  • final_positions np.ndarray — Return final wrapped Cartesian positions in bohr.

Methods

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

Return a JSON-safe summary without dense electronic arrays.

Returns

  • dict[str, object]
class PeriodicGeometryOptimizationStep
def __init__(index: int, energy: float, energy_delta: float, armijo_limit: float, max_force: float, rms_force: float, step_norm: float, accepted_step_size: float, line_search_iterations: int, scf_iterations: int, scf_wall_ms: float, force_wall_ms: float, used_density_continuation: bool, used_coefficient_continuation: bool, positions: np.ndarray, forces: np.ndarray)

One accepted periodic ionic step.

Parameters

NameTypeDefaultDescription
indexint
energyfloat
energy_deltafloat
armijo_limitfloat
max_forcefloat
rms_forcefloat
step_normfloat
accepted_step_sizefloat
line_search_iterationsint
scf_iterationsint
scf_wall_msfloat
force_wall_msfloat
used_density_continuationbool
used_coefficient_continuationbool
positionsnp.ndarray
forcesnp.ndarray

Methods

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

Return a JSON-safe accepted-step record.

Returns

  • dict[str, object]
def optimize_periodic_geometry(system: PeriodicDFTSystem, *, cutoff_hartree: float, kpoint_mesh: KPointMesh, n_bands: int | None = None, config: PeriodicGeometryOptimizationConfig | None = None, scf_config: PeriodicSCFConfig | None = None, xc_functional: ExchangeCorrelationFunctional | None = None, observer: RuntimeObserver | None = None, initial_density: mx.array | None = None, initial_coefficients: Sequence[mx.array] | None = None, checkpoint_to: str | Path | None = None, checkpoint_step: int | None = None, resume_from: str | Path | None = None, provenance: Mapping[str, object] | None = None) -> PeriodicGeometryOptimizationResult

Relax ions in a fixed periodic cell using converged analytic forces.

Parameters

NameTypeDefaultDescription
systemPeriodicDFTSystemInitial periodic GTH system.
cutoff_hartreefloatPlane-wave kinetic cutoff in Hartree.
kpoint_meshKPointMeshFixed weighted reduced-coordinate k-point mesh.
n_bandsint | NoneNoneFixed computed band count.
configPeriodicGeometryOptimizationConfig | NoneNoneIonic optimizer controls.
scf_configPeriodicSCFConfig | NoneNoneExact periodic SCF controls.
xc_functionalExchangeCorrelationFunctional | NoneNoneExchange-correlation functional. Defaults to production PBE.
observerRuntimeObserver | NoneNoneOptional shared runtime observer.
initial_densitymx.array | NoneNoneOptional density seed for the initial periodic SCF.
initial_coefficientsSequence[mx.array] | NoneNoneOptional k-point orbital seeds for the initial SCF.
checkpoint_tostr | Path | NoneNonePreviously absent accepted-step checkpoint destination.
checkpoint_stepint | NoneNoneAccepted step at which to publish and stop.
resume_fromstr | Path | NoneNoneExplicit accepted-step checkpoint to resume.
provenanceMapping[str, object] | NoneNoneOptional non-identity checkpoint provenance.

Returns

  • PeriodicGeometryOptimizationResult — Complete periodic optimization result and accepted-step history.

Raises

  • TypeError — If the system or k-point mesh has an unsupported type.
  • ValueError — If controls conflict or checkpoint settings are invalid.
  • ArtifactIntegrityError — If an explicit checkpoint fails validation.