dft.nonlocal_pseudopotential
Separable nonlocal pseudopotential operators.
import mlx_atomistic.dft.nonlocal_pseudopotential
Classes
Section titled “Classes”NonlocalPseudopotentialOperator
Section titled “NonlocalPseudopotentialOperator”class NonlocalPseudopotentialOperator def __init__(grid: RealSpaceGrid, projectors: ProjectorSet)Hermitian separable nonlocal pseudopotential operator.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
grid | RealSpaceGrid | ||
projectors | ProjectorSet |
Properties
availablebool— Whether nonlocal projectors are available.
Methods
def apply(orbitals: mx.array) -> mx.arrayApply the separable nonlocal operator to one orbital or an orbital stack.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
orbitals | mx.array |
Returns
mx.array
energy
Section titled “energy”def energy(orbitals: mx.array, *, occupations: Sequence[float]) -> mx.arrayReturn the occupied nonlocal pseudopotential energy.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
orbitals | mx.array | ||
occupations | Sequence[float] |
Returns
mx.array
from_ions
Section titled “from_ions”def from_ions(ions: IonCollection, grid: RealSpaceGrid) -> NonlocalPseudopotentialOperatorBuild the nonlocal operator for an ion collection.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
ions | IonCollection | ||
grid | RealSpaceGrid |
Returns
NonlocalPseudopotentialOperator
to_dict
Section titled “to_dict”def to_dict() -> dictReturn JSON-safe projector metadata.
Returns
dict
ProjectorSet
Section titled “ProjectorSet”class ProjectorSet def __init__(projectors: Sequence[np.ndarray] | mx.array, couplings: Sequence[float] | mx.array, *, angular_momenta: Sequence[int] | None = None, metadata: Sequence[dict] | None = None)Real-space separable nonlocal projectors on one grid.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
projectors | Sequence[np.ndarray] | mx.array | ||
couplings | Sequence[float] | mx.array | ||
angular_momenta | Sequence[int] | None | None | |
metadata | Sequence[dict] | None | None |
Properties
availablebool— Whether any projector is present.countint— Number of projectors.
Methods
from_ions
Section titled “from_ions”def from_ions(ions: IonCollection, grid: RealSpaceGrid) -> ProjectorSetBuild normalized real-space projectors for all parsed ion projectors.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
ions | IonCollection | ||
grid | RealSpaceGrid |
Returns
ProjectorSet
Functions
Section titled “Functions”apply_nonlocal_pseudopotential
Section titled “apply_nonlocal_pseudopotential”def apply_nonlocal_pseudopotential(orbitals: mx.array, grid: RealSpaceGrid, projectors: ProjectorSet) -> mx.arrayApply Σᵢ |βᵢ>Dᵢ<βᵢ| to one orbital or an orbital stack.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
orbitals | mx.array | ||
grid | RealSpaceGrid | ||
projectors | ProjectorSet |
Returns
mx.array
nonlocal_pseudopotential_energy
Section titled “nonlocal_pseudopotential_energy”def nonlocal_pseudopotential_energy(orbitals: mx.array, grid: RealSpaceGrid, projectors: ProjectorSet, *, occupations: Sequence[float]) -> mx.arrayReturn occupied expectation value of a separable nonlocal operator.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
orbitals | mx.array | ||
grid | RealSpaceGrid | ||
projectors | ProjectorSet | ||
occupations | Sequence[float] |
Returns
mx.array