dft.forces
DFT force consistency checks.
import mlx_atomistic.dft.forces
Classes
Section titled “Classes”SCFForceConsistencyResult
Section titled “SCFForceConsistencyResult”class SCFForceConsistencyResult def __init__(result: SCFResult, analytic_forces: mx.array, finite_difference_forces: mx.array, max_abs_error: float, rms_abs_error: float, displacement: float, samples: list[dict[str, float | int]])SCF total-energy finite-difference force check.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
result | SCFResult | ||
analytic_forces | mx.array | ||
finite_difference_forces | mx.array | ||
max_abs_error | float | ||
rms_abs_error | float | ||
displacement | float | ||
samples | list[dict[str, float | int]] |
Methods
to_dict
Section titled “to_dict”def to_dict() -> dictReturn a JSON-safe summary.
Returns
dict
Functions
Section titled “Functions”scf_total_energy_forces
Section titled “scf_total_energy_forces”def scf_total_energy_forces(system: DFTSystem, *, config: SCFConfig | None = None, xc_functional: ExchangeCorrelationFunctional | None = None, displacement: float = 0.001, reuse_scf_state: bool = True) -> SCFForceConsistencyResultCompare SCF Hellmann-Feynman forces with total-energy finite differences.
The analytic force is the force reported by run_scf, which includes
electronic local-pseudopotential forces and center-center repulsion for a
DFTSystem. The finite-difference force is
-[E(R + δ) - E(R - δ)] / 2δ after re-running SCF for each displacement.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
system | DFTSystem | ||
config | SCFConfig | None | None | |
xc_functional | ExchangeCorrelationFunctional | None | None | |
displacement | float | 0.001 | |
reuse_scf_state | bool | True |
Returns
SCFForceConsistencyResult