Skip to content

dft.periodic_phonons

Symmetry-reduced finite-displacement phonons for periodic DFT systems.

import mlx_atomistic.dft.periodic_phonons

def assemble_periodic_phonons(plan: PeriodicDisplacementPlan, samples: PeriodicPhononSampleSet, masses_amu: Sequence[float], *, config: PeriodicPhononConfig | None = None) -> PeriodicPhononResult

Assemble raw force constants and admitted Gamma-point phonon modes.

Parameters

NameTypeDefaultDescription
planPeriodicDisplacementPlanSymmetry-independent displacement plan.
samplesPeriodicPhononSampleSetComplete central-force samples bound to plan.
masses_amuSequence[float]Positive per-atom masses in atomic mass units.
configPeriodicPhononConfig | NoneNoneNumerical diagnostics. Its displacement must match plan.

Returns

  • PeriodicPhononResult — Raw force constants, diagnostics, and modes only when raw force-
  • PeriodicPhononResult — constant gates pass.

Raises

  • TypeError — If inputs use unsupported types.
  • ValueError — If samples, masses, displacement, or reconstruction differ.
def compare_periodic_phonon_displacements(coarse: PeriodicPhononResult, fine: PeriodicPhononResult, *, config: PeriodicPhononConfig | None = None) -> PeriodicPhononConvergenceResult

Compare complete phonon modes at two displacement magnitudes.

Parameters

NameTypeDefaultDescription
coarsePeriodicPhononResultResult at the larger displacement.
finePeriodicPhononResultResult at the smaller displacement.
configPeriodicPhononConfig | NoneNoneConvergence tolerances. Defaults to PeriodicPhononConfig.

Returns

  • PeriodicPhononConvergenceResult — Maximum frequency and eigenvalue drifts with aggregate status.
def evaluate_periodic_phonon_sample(system: PeriodicDFTSystem, plan: PeriodicDisplacementPlan, representative_dof: int, *, cutoff_hartree: float, kpoint_mesh: KPointMesh, n_bands: int | None = None, scf_config: PeriodicSCFConfig | None = None, xc_functional: ExchangeCorrelationFunctional | None = None, observer: RuntimeObserver | None = None) -> PeriodicPhononSample

Evaluate both central-force signs for one planned displacement.

Parameters

NameTypeDefaultDescription
systemPeriodicDFTSystemEquilibrium periodic system matching plan.
planPeriodicDisplacementPlanSymmetry-independent displacement plan.
representative_dofintPlanned degree of freedom to evaluate.
cutoff_hartreefloatPlane-wave kinetic cutoff in Hartree.
kpoint_meshKPointMeshWeighted reduced-coordinate electronic k-point mesh.
n_bandsint | NoneNoneOptional computed band count.
scf_configPeriodicSCFConfig | NoneNoneOptional periodic SCF controls.
xc_functionalExchangeCorrelationFunctional | NoneNoneOptional exchange-correlation functional.
observerRuntimeObserver | NoneNoneOptional shared runtime observer for both signs.

Returns

  • PeriodicPhononSample — Fingerprinted minus/plus analytic-force sample.

Raises

  • ValueError — If either displaced SCF does not converge.
def periodic_phonon_displaced_system(system: PeriodicDFTSystem, plan: PeriodicDisplacementPlan, representative_dof: int, direction_sign: int) -> PeriodicDFTSystem

Return one plus or minus representative displaced periodic system.

Parameters

NameTypeDefaultDescription
systemPeriodicDFTSystemExact equilibrium system used to build plan.
planPeriodicDisplacementPlanMatching displacement plan.
representative_dofintPlanned independent Cartesian degree of freedom.
direction_signintMinus one or plus one.

Returns

  • PeriodicDFTSystem — New fixed-cell system with one Cartesian coordinate displaced.
def plan_periodic_phonon_displacements(system: PeriodicDFTSystem, *, config: PeriodicPhononConfig | None = None, symmetry_operations: Sequence[PeriodicPhononSymmetry] = (), position_tolerance_bohr: float = 1e-06) -> PeriodicDisplacementPlan

Build a validated symmetry-independent Cartesian displacement plan.

Parameters

NameTypeDefaultDescription
systemPeriodicDFTSystemPeriodic DFT system at its equilibrium geometry.
configPeriodicPhononConfig | NoneNonePhonon numerical controls. Defaults to PeriodicPhononConfig.
symmetry_operationsSequence[PeriodicPhononSymmetry]()Explicit affine crystal symmetries. Identity is always added.
position_tolerance_bohrfloat1e-06Atomic symmetry matching tolerance in bohr.

Returns

  • PeriodicDisplacementPlan — Fingerprint-bound displacement orbits covering all Cartesian degrees
  • PeriodicDisplacementPlan — of freedom.

Raises

  • TypeError — If inputs use unsupported types.
  • ValueError — If the system, tolerance, symmetries, or group action fail.