vibeqc.PBCGDFResult

class vibeqc.PBCGDFResult(energy, e_electronic, e_nuclear, e_coulomb, e_hf_exchange, e_exxdiv, n_iter, converged, mo_energies, mo_coeffs, density, fock, overlap, hcore=<factory>, scf_trace=<factory>, aux_basis_name='', n_aux=0, n_fit=0, madelung_constant=0.0, exxdiv='ewald', compcell_eta=0.2, backend='pbc-gdf-compcell', gradient=None, e_xc=0.0, functional='', apply_aft_correction=True, aft_precision=1e-10, aft_ft_convention='libint', v_ne_backend='analytic_ft', v_ne_ke_cutoff=200.0, rsgdf_tail_ke_cutoff=None, rsgdf_ke_cutoff=200.0, gdf_rcut_strategy='pyscf_auto', gdf_rcut_precision=1e-08, gdf_linear_dep_threshold=1e-09, gdf_lattice_cutoff_bohr=15.0, gdf_nuclear_cutoff_bohr=25.0, gdf_fit_cutoff_2c=nan, gdf_fit_cutoff_3c=nan, aux_basis_fingerprint='', gradient_conditioning=0.0)[source]

Bases: object

SCF result from run_pbc_gdf_rhf() / run_pbc_gdf_rks().

Parameters:
__init__(energy, e_electronic, e_nuclear, e_coulomb, e_hf_exchange, e_exxdiv, n_iter, converged, mo_energies, mo_coeffs, density, fock, overlap, hcore=<factory>, scf_trace=<factory>, aux_basis_name='', n_aux=0, n_fit=0, madelung_constant=0.0, exxdiv='ewald', compcell_eta=0.2, backend='pbc-gdf-compcell', gradient=None, e_xc=0.0, functional='', apply_aft_correction=True, aft_precision=1e-10, aft_ft_convention='libint', v_ne_backend='analytic_ft', v_ne_ke_cutoff=200.0, rsgdf_tail_ke_cutoff=None, rsgdf_ke_cutoff=200.0, gdf_rcut_strategy='pyscf_auto', gdf_rcut_precision=1e-08, gdf_linear_dep_threshold=1e-09, gdf_lattice_cutoff_bohr=15.0, gdf_nuclear_cutoff_bohr=25.0, gdf_fit_cutoff_2c=nan, gdf_fit_cutoff_3c=nan, aux_basis_fingerprint='', gradient_conditioning=0.0)
Parameters:
Return type:

None

Methods

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

Attributes

energy: float
e_electronic: float
e_nuclear: float
e_coulomb: float
e_hf_exchange: float
e_exxdiv: float
n_iter: int
converged: bool
mo_energies: ndarray
mo_coeffs: ndarray
density: ndarray
fock: ndarray
overlap: ndarray
hcore: ndarray
scf_trace: List[vibeqc._vibeqc_core.SCFIteration]
aux_basis_name: str = ''
n_aux: int = 0
n_fit: int = 0
madelung_constant: float = 0.0
exxdiv: str = 'ewald'
compcell_eta: float = 0.2
backend: str = 'pbc-gdf-compcell'
gradient: ndarray | None = None
e_xc: float = 0.0
functional: str = ''
apply_aft_correction: bool = True
aft_precision: float = 1e-10
aft_ft_convention: str = 'libint'
v_ne_backend: str = 'analytic_ft'
v_ne_ke_cutoff: float = 200.0
rsgdf_tail_ke_cutoff: float | None = None

The RSGDF high-|G| tail cutoff (Ha) this run actually applied after _auto_rsgdf_tail_ke_cutoff() resolution, or None for base-mesh-only. Recorded so a consumer can tell WHICH Hamiltonian produced the energy: the Γ fast path auto-sizes a tail on the tight-core class while other routes do not, and that silent difference was worth -4.99e-01 Ha/cell against the CCM direct control on MgO/STO-3G (GitLab IID 307).

rsgdf_ke_cutoff: float = 200.0

The BASE rsgdf reciprocal mesh (Ha) this run actually used. Recorded alongside the tail for the same auditability reason, and because a consumer’s *_executed field can only be evidence if it is a real read: aiccm-2026/run_case_cmp.py reported rsgdf_ke_cutoff_executed by copying its own request, so the field could not disagree with its *_requested twin (GitLab IID 307).

gdf_rcut_strategy: str | None = 'pyscf_auto'
gdf_rcut_precision: float = 1e-08
gdf_linear_dep_threshold: float = 1e-09
gdf_lattice_cutoff_bohr: float = 15.0
gdf_nuclear_cutoff_bohr: float = 25.0
gdf_fit_cutoff_2c: float = nan
gdf_fit_cutoff_3c: float = nan
aux_basis_fingerprint: str = ''
gradient_conditioning: float = 0.0