dft.occupations
Spin and orbital occupation models for DFT.
import mlx_atomistic.dft.occupations
Classes
Section titled “Classes”FermiDiracOccupations
Section titled “FermiDiracOccupations”class FermiDiracOccupations def __init__(electron_count: float, temperature: float = 0.01, spin_mode: SpinMode = 'unpolarized', tolerance: float = 1e-10, max_iterations: int = 100)Fermi-Dirac occupations with electron-count conservation.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
electron_count | float | ||
temperature | float | 0.01 | |
spin_mode | SpinMode | 'unpolarized' | |
tolerance | float | 1e-10 | |
max_iterations | int | 100 |
Methods
resolve
Section titled “resolve”def resolve(eigenvalues: Sequence[float] | mx.array) -> OccupationResultReturn Fermi-Dirac occupations for sorted or unsorted eigenvalues.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
eigenvalues | Sequence[float] | mx.array |
Returns
OccupationResult
FixedOccupations
Section titled “FixedOccupations”class FixedOccupations def __init__(occupations: Sequence[float], *, spin_mode: SpinMode = 'unpolarized')Explicit fixed orbital occupations.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
occupations | Sequence[float] | ||
spin_mode | SpinMode | 'unpolarized' |
Methods
resolve
Section titled “resolve”def resolve(_eigenvalues: Sequence[float] | mx.array | None = None) -> OccupationResultReturn fixed occupations.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
_eigenvalues | Sequence[float] | mx.array | None | None |
Returns
OccupationResult
OccupationResult
Section titled “OccupationResult”class OccupationResult def __init__(occupations: mx.array, electron_count: float, chemical_potential: float | None = None, temperature: float | None = None, spin_mode: SpinMode = 'unpolarized')Orbital occupations and chemical-potential diagnostics.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
occupations | mx.array | ||
electron_count | float | ||
chemical_potential | float | None | None | |
temperature | float | None | None | |
spin_mode | SpinMode | 'unpolarized' |
Methods
to_dict
Section titled “to_dict”def to_dict() -> dictReturn a JSON-safe occupation summary.
Returns
dict
Functions
Section titled “Functions”magnetization_density
Section titled “magnetization_density”def magnetization_density(up_density: mx.array, down_density: mx.array) -> mx.arrayReturn m(r) = ρ↑(r) - ρ↓(r).
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
up_density | mx.array | ||
down_density | mx.array |
Returns
mx.array
spin_density_from_orbitals
Section titled “spin_density_from_orbitals”def spin_density_from_orbitals(up_orbitals: mx.array, down_orbitals: mx.array, grid: RealSpaceGrid, *, up_occupations: Sequence[float], down_occupations: Sequence[float]) -> tuple[mx.array, mx.array]Build collinear spin densities ρ↑ and ρ↓.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
up_orbitals | mx.array | ||
down_orbitals | mx.array | ||
grid | RealSpaceGrid | ||
up_occupations | Sequence[float] | ||
down_occupations | Sequence[float] |
Returns
tuple[mx.array, mx.array]