vibeqc.PeriodicKRHFGDFResult

class vibeqc.PeriodicKRHFGDFResult(energy, e_electronic, e_nuclear, n_iter, converged, mo_energies, mo_coeffs, fock, overlap, hcore, density, kpoints_cart, kpoint_weights, scf_trace=<factory>, functional=None, e_xc=0.0, e_coulomb=0.0, e_hf_exchange=0.0, e_dft_plus_u=0.0, fock_mixing=0.0, level_shift=0.0, level_shift_warmup_cycles=0, smearing_temperature=0.0, fermi_level=0.0, entropy=0.0, free_energy=0.0, occupations=<factory>, aux_basis_name='', linear_dependence=None, n_aux=0, backend='native-multi-k-gdf', rsgdf_tail_ke_cutoff=None, rsgdf_ke_cutoff=200.0, gradient=None)[source]

Bases: object

Result of run_krhf_periodic_gdf().

All per-k arrays are length-nkpts Python lists holding complex Hermitian (or real, for Γ-only) matrices in AO basis.

Parameters:
__init__(energy, e_electronic, e_nuclear, n_iter, converged, mo_energies, mo_coeffs, fock, overlap, hcore, density, kpoints_cart, kpoint_weights, scf_trace=<factory>, functional=None, e_xc=0.0, e_coulomb=0.0, e_hf_exchange=0.0, e_dft_plus_u=0.0, fock_mixing=0.0, level_shift=0.0, level_shift_warmup_cycles=0, smearing_temperature=0.0, fermi_level=0.0, entropy=0.0, free_energy=0.0, occupations=<factory>, aux_basis_name='', linear_dependence=None, n_aux=0, backend='native-multi-k-gdf', rsgdf_tail_ke_cutoff=None, rsgdf_ke_cutoff=200.0, gradient=None)
Parameters:
Return type:

None

Methods

__init__(energy, e_electronic, e_nuclear, ...)

Attributes

aux_basis_name

backend

e_coulomb

e_dft_plus_u

e_hf_exchange

e_xc

energy_per_cell_ha

entropy

fermi_level

fock_mixing

free_energy

functional

gradient

level_shift

level_shift_warmup_cycles

linear_dependence

n_aux

rsgdf_ke_cutoff

The BASE rsgdf reciprocal mesh (Ha) actually used, so a consumer's *_executed field can be a real read rather than a copy of its own request (GitLab IID 307; see aiccm-2026/run_case_cmp.py).

rsgdf_tail_ke_cutoff

RSGDF high-|G| tail cutoff (Ha) actually APPLIED, or None for base-mesh-only (GitLab IID 307).

smearing_temperature

energy

e_electronic

e_nuclear

n_iter

converged

mo_energies

mo_coeffs

fock

overlap

hcore

density

kpoints_cart

kpoint_weights

scf_trace

occupations

energy: float
e_electronic: float
e_nuclear: float
n_iter: int
converged: bool
mo_energies: List[ndarray]
mo_coeffs: List[ndarray]
fock: List[ndarray]
overlap: List[ndarray]
hcore: List[ndarray]
density: List[ndarray]
kpoints_cart: ndarray
kpoint_weights: ndarray
scf_trace: List[vibeqc._vibeqc_core.SCFIteration]
functional: str | None = None
e_xc: float = 0.0
e_coulomb: float = 0.0
e_hf_exchange: float = 0.0
e_dft_plus_u: float = 0.0
fock_mixing: float = 0.0
level_shift: float = 0.0
level_shift_warmup_cycles: int = 0
smearing_temperature: float = 0.0
fermi_level: float = 0.0
entropy: float = 0.0
free_energy: float = 0.0
occupations: List[ndarray]
aux_basis_name: str = ''
linear_dependence: PeriodicLinearDependenceSummary | None = None
n_aux: int = 0
backend: str = 'native-multi-k-gdf'
rsgdf_tail_ke_cutoff: float | None = None

RSGDF high-|G| tail cutoff (Ha) actually APPLIED, or None for base-mesh-only (GitLab IID 307). The Γ fast path auto-sizes one on the tight-core class and reports it here; the multi-k loop does not consume a tail at all (IID 146), so this stays None there even when rsgdf_tail_ke_cutoff was requested – a requested but unapplied tail must not read back as applied.

rsgdf_ke_cutoff: float = 200.0

The BASE rsgdf reciprocal mesh (Ha) actually used, so a consumer’s *_executed field can be a real read rather than a copy of its own request (GitLab IID 307; see aiccm-2026/run_case_cmp.py).

gradient: ndarray | None = None
property energy_per_cell_ha: float