vibeqc.run_rks_periodic_multi_k_ewald3d

vibeqc.run_rks_periodic_multi_k_ewald3d(system, basis, kmesh, options=None, *, omega=0.0, grid_shape=None, origin=None, spacing_bohr=0.3, linear_dep_threshold=1e-07, canonical_orth_normalize_diag_first=True, auto_optimize_truncation=True, progress=None, verbose=None, bz_integration=None, density_mixer=None, density_mixer_depth=8, density_mixer_beta=0.5, density_mixer_kerker=False, kerker_k0=1.5, kerker_strength=1.0, kerker_cutoff_ha=120.0)[source]

Multi-k closed-shell periodic RKS SCF with EWALD_3D Coulomb.

Parameters:
  • system (vibeqc._vibeqc_core.PeriodicSystem) – Periodic system and AO basis.

  • basis (vibeqc._vibeqc_core.BasisSet) – Periodic system and AO basis.

  • kmesh (vibeqc._vibeqc_core.BlochKMesh) – BlochKMesh (e.g. from vibeqc.monkhorst_pack()).

  • options (vibeqc._vibeqc_core.PeriodicKSOptions | None) – Optional PeriodicKSOptions. Defaults: PBE, DIIS on, no level shift, molecular Becke partition. Honours functional, grid, use_periodic_becke, becke_image_radius_bohr, level_shift, smearing_temperature, damping, max_iter, conv_tol_*, diis_*, initial_guess, lattice_opts.

  • omega (float) – Ewald splitting + FFT-Poisson grid controls.

  • grid_shape (Tuple[int, int, int] | int | None) – Ewald splitting + FFT-Poisson grid controls.

  • origin (Sequence[float] | None) – Ewald splitting + FFT-Poisson grid controls.

  • spacing_bohr (float) – Ewald splitting + FFT-Poisson grid controls.

  • linear_dep_threshold (float) – Per-k S(k) eigenvalue floor for canonical orthogonalisation.

  • density_mixer (str | None) – Real-space density-matrix mixer (v0.10.x D4 metal-mixing program). None / "diis" (default) keep the Fock-space DIIS + linear density-damping path. "anderson" selects Anderson/Pulay density mixing and "broyden" selects limited-memory Broyden – both extrapolate over a history of density residuals and can converge near-degenerate / metallic cells where Fock-DIIS limit-cycles. When a density mixer is active it replaces Fock-DIIS, linear damping and the quadratic-SCF fallback (alternative convergence strategies are not stacked – CLAUDE.md Sec.7); Fermi-Dirac / Gilat smearing and the level shift still apply (they are physics / virtual-space controls, not anti-oscillation aids).

  • density_mixer_depth (int) – Residual-history length and linear-mixing parameter for the density mixer (ignored unless density_mixer selects one).

  • density_mixer_beta (float) – Residual-history length and linear-mixing parameter for the density mixer (ignored unless density_mixer selects one).

  • density_mixer_kerker (bool) – Apply the Kerker preconditioner (D4b) to the density mixer’s residual – damps long-wavelength (small-|G|) charge sloshing on metals. Requires a density_mixer; raises otherwise. It filters the residual, so the converged energy is unchanged (exact SCF solution – CLAUDE.md Sec.7); only the convergence path changes.

  • kerker_k0 (float) – Kerker screening wave-vector G₀ (1/bohr; larger damps more long-wavelength modes), damping fraction g in (0, 1], and the plane-wave cutoff sizing the collocation grid. Ignored unless density_mixer_kerker is set.

  • kerker_strength (float) – Kerker screening wave-vector G₀ (1/bohr; larger damps more long-wavelength modes), damping fraction g in (0, 1], and the plane-wave cutoff sizing the collocation grid. Ignored unless density_mixer_kerker is set.

  • kerker_cutoff_ha (float) – Kerker screening wave-vector G₀ (1/bohr; larger damps more long-wavelength modes), damping fraction g in (0, 1], and the plane-wave cutoff sizing the collocation grid. Ignored unless density_mixer_kerker is set.

  • canonical_orth_normalize_diag_first (bool)

  • auto_optimize_truncation (bool)

  • progress (bool | ProgressLogger | None)

  • verbose (int | None)

  • bz_integration (str | None)

Return type:

PeriodicRKSMultiKEwaldResult.