vibeqc.run_pbc_bipole_rhf¶
- vibeqc.run_pbc_bipole_rhf(system, basis, kmesh, options=None, *, linear_dep_threshold=1e-07, canonical_orth_normalize_diag_first=True, level_shift_schedule=None, use_mom=False, use_oda=False, oda_trust_lambda_max=1.0, use_ewald_j_split=None, ewald_omega=None, ewald_precision=1e-08, v_ne_grid_options=None, use_multipole_diag=False, use_multipole_far_field=None, multipole_l_max=2, progress=None, verbose=None, initial_density=None)[source]¶
Multi-k closed-shell RHF via the CRYSTAL-gauge BIPOLE scaffold.
- Algorithm (matches CRYSTAL BIELET):
Real-space one-electron integrals S(g), T(g), V_ne(g) at
opts.lattice_opts.cutoff_bohr. For 3D systems V_ne uses the same Ewald α as E_nn.Bloch-sum to S(k), Hcore(k) per k-point; canonical-orth X(k).
Initial guess via
opts.initial_guess(default SAD).SCF iter: a. Build F^{2e}(g). With
use_ewald_j_split=Truethis isJ_SR(g;ω) + J_LR(g;ω) + V_bg·S(g) - ½K_full(g). With the flag off, use the legacy direct-onlybuild_fock_2e_real_spacescaffold.Bloch-sum F^{2e}(g) → F(k); add Hcore(k).
Energy: E_elec = Σ_g tr[D(g)Hcore(g)] + ½Σ_g tr[D(g)F²e(g)] in real-space block form (CRYSTAL/TOTENY convention).
Optional DIIS extrapolation of F(k) via [F,DS] errors.
Optional LEVSHIFT shift on F(k).
Diagonalise F(k) → C(k), ε(k).
Optional MOM reorder of occupied subspace.
Rebuild D_real via real_space_density_from_kpoints.
Optional ODA mixing on density.
E_total = E_elec + E_nuc.
use_ewald_j_splitdefaults toNone. In that mode the driver automatically uses the CRYSTAL-gauge Ewald-J split for 3D systems and keeps the old direct-only path for dim < 3 diagnostic runs. PassFalseexplicitly only when you want the legacy direct-only F²e scaffold for debugging.For 3D systems the default
V_neimplementation is analytic: erfc-screened nuclear attraction from libint plus a reciprocal-space AO-pair Fourier-transform sum. Passingv_ne_grid_optionsopts into the older grid-quadrature long-rangeV_nepath for diagnostics.- Parameters:
system (vibeqc._vibeqc_core.PeriodicSystem)
basis (vibeqc._vibeqc_core.BasisSet)
kmesh (vibeqc._vibeqc_core.BlochKMesh)
linear_dep_threshold (float)
canonical_orth_normalize_diag_first (bool)
level_shift_schedule (LevelShiftSchedule | None)
use_mom (bool)
use_oda (bool)
oda_trust_lambda_max (float)
use_ewald_j_split (bool | None)
ewald_omega (float | None)
ewald_precision (float)
v_ne_grid_options (vibeqc._vibeqc_core.GridOptions | None)
use_multipole_diag (bool)
use_multipole_far_field (bool | None)
multipole_l_max (int)
progress (bool | ProgressLogger | None)
verbose (int | None)
- Return type: