vibeqc.run_periodic_job

vibeqc.run_periodic_job(system, basis, *, method='RHF', functional=None, variant=None, scf_reference=None, correlation=None, jk_method='auto', cutoff_ha=300.0, aux_basis=None, gdf_method=None, rsgdf_ke_cutoff=200.0, rsgdf_tail_ke_cutoff=None, mdf_ke_cutoff=40.0, aiccm_backend='four_center', aiccm_lattice_extension=None, aiccm_wigner_seitz_shells=None, aiccm_symmetry='off', aiccm_symmetry_require_full_group=False, output='output', use_diis=True, solver='dense', convergence=None, damping=None, dynamic_damping=None, fmixing_percent=None, fock_mixing=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, smearing=None, smearing_temperature=<object object>, smearing_unit='hartree', smearing_method='fermi-dirac', smearing_metallic=None, smearing_band_gap_hartree=None, bz_integration=<object object>, diis_start_iter=2, diis_subspace_size=8, max_iter=80, conv_tol_energy=1e-07, initial_guess='AUTO', write_molden_file=None, write_density=False, density_spacing_bohr=0.2, write_xyz_file=True, write_poscar_file=False, write_xsf_structure_file=True, write_cif_file=True, write_population_file=None, citations=True, dry_run=False, memory_override=False, gapw_molecular_limit=False, record_hostname=True, progress=None, verbose=None, dispersion=None, dispersion_backend='auto', dispersion_cutoff_bohr=50.0, bipole_cutoff_bohr=None, bipole_nuclear_cutoff_bohr=None, bipole_exact_zone_bohr=None, sr_image_precision=1e-06, sr_range_screening=False, ewald_omega=None, ewald_precision=1e-08, use_oda=False, oda_trust_lambda_max=1.0, use_mom=False, level_shift=None, kpoints=None, reduce_to_primitive=False, symmetry_precision=0.0001, symmetry=False, symmetry_stabilize=False, symmetry_reduce_fock=None, symmetry_reduce_k=False, use_multipole_far_field=False, multipole_l_max=2, use_exchange_ewald_split=None, exchange_exxdiv='ewald', optimize=False, optimize_max_iter=30, optimize_conv_tol_grad=0.0001, optimize_cell=False, output_qvf=True, qvf_wannier_centers=False, checkpoint_qvf=None, checkpoint_every=0, hessian=False, hessian_frozen_indices=None, band_structure=None, coop_cohp=False, tddft=False, tddft_n_states=5, dos_kmesh=None, dft_plus_u=None, atomic_spins=None, read_from=None, fragments=None, spinlock=None, spinlock_value=0, spinlock_iterations=0, restart_from=None)[source]

Run a periodic SCF job and write the standard output files.

Mirrors vibeqc.run_job() but for periodic systems. Gamma RHF/RKS GDF is the default when no k-mesh is specified. ROHF/GDF is available by explicit backend selection at Gamma and on a full Monkhorst-Pack mesh. Multi-k RHF/RKS GDF, multi-k RHF/RKS/UHF/UKS RIJCOSX, and all four BIPOLE methods are available via kpoints. These routes accept a mesh tuple/list, a scalar mesh size, KPoints, or a native BlochKMesh.

Warning

kpoints=(N, N, N) builds the Gamma-centred mesh {0, 1/N, ..., (N-1)/N} per axis. ASE/GPAW read the same-looking argument as the classical shifted mesh, offset by half a step. The two agree exactly for odd N and are disjoint for even N (measured 2026-08-02: (3,3,3)/(5,5,5) share every point, (2,2,2)/(4,4,4)/(6,6,6) share none), so a cross-code comparison validated at an odd mesh can still be sampling a different Brillouin zone at an even one. The resolved convention and k-point count are printed in the .out; pass VIBEQC_OUTPUT_LEVEL=verbose for the full k-list.

Parameters:
  • system (PeriodicSystem) – Periodic system + AO basis. For basis-free periodic semiempirical methods (dftb0, scc_dftb, gfn2_xtb, pm6, om1, om2, om3), pass basis=None; the runner dispatches before any Gaussian-basis setup.

  • basis (Optional[BasisSet]) – Periodic system + AO basis. For basis-free periodic semiempirical methods (dftb0, scc_dftb, gfn2_xtb, pm6, om1, om2, om3), pass basis=None; the runner dispatches before any Gaussian-basis setup.

  • method (str) – "RHF", "ROHF", "ROKS", "UHF", "RKS", "UKS", or "aiccm" (case-insensitive). method="aiccm" is the front door of the experimental AICCM family: variant names the formulation, the SCF reference is inferred (see variant and scf_reference below), and the formulation runs on its own J/K route, so jk_method stays "auto" (any other value must equal that route, else a ValueError names both). Every AICCM job stamps [run].method_status = "experimental" plus aiccm_variant / aiccm_selector (plus aiccm_correlation when one was requested) into the .system manifest and keeps its experimental warning. See docs/user_guide/aiccm.md. Periodic ROHF/ROKS are maintained-preview 3D routes: ROHF runs on native GDF at Gamma or on full Monkhorst-Pack meshes (jk_method="gdf"), on Gamma-only GPW (jk_method="gpw"), or on the BIPOLE-route corrected-Ewald-exchange EWALD_3D engine (jk_method="bipole" – the AUTO default for ROHF – at Gamma and on full Monkhorst-Pack meshes). ROKS runs through Gamma-only GPW for pure DFT, or through BIPOLE at Gamma and on full Monkhorst-Pack meshes for pure and global-hybrid functionals. Unsupported backends, multi-k GPW ROKS, range-separated ROKS, smearing, gradients, and response properties fail closed. Closed-shell RHF / RKS default to the Gamma or multi-k GDF path depending on kpoints. With jk_method="bipole"`, the RHF/ROHF/RKS/UHF/UKS methods dispatch through the BIPOLE Gamma or multi-k route. With ``jk_method="rijcosx", Gamma RHF uses the dedicated RIJCOSX driver and true multi-k meshes use the GDF/COSX backend for RHF/RKS/UHF/UKS.

  • functional (Optional[str]) – XC functional for method="RKS" or method="UKS"; with method="aiccm" its presence selects a Kohn-Sham reference.

  • variant (Optional[str]) – Required with method="aiccm", rejected otherwise. One of "real-gamma" (neutral Γ-CCM, real-Γ supercell representation; the former jk_method="real-gamma"), "neutral-bloch" (the same neutral torus Hamiltonian in its Bloch representation through the periodic.ccm.ri producer, not plain unit-cell GDF), "four-center" (the union-and-weight 2014 lineage), or "chi" (χ-CCM; the former jk_method="aiccm2026dev-b", with the aiccm_* keywords as its options). "gamma" / "gamma-ccm" are not variants (ruling R1). Every variant reads aiccm_lattice_extension for the BvK torus; kpoints stays an accepted alias for the torus mesh, never both.

  • scf_reference (Optional[str]) – With method="aiccm" only. None (default) infers the reference: functional decides HF versus KS, and the system is open-shell when system.multiplicity != 1 or the electron count is odd (unrestricted), else restricted – the parity rule the CCM library’s run_ccm_scf applies. "rohf" / "roks" select the restricted open-shell references explicitly ("rohf" rejects a functional; "roks" requires one); whether the variant runs them is decided by that variant’s own guard (none does today).

  • correlation (Optional[str]) – With method="aiccm" only, and optional: None (default) is an SCF-only run. "mp2", "ccsd", "dlpno-mp2" and "dlpno-ccsd" add a post-HF treatment on top of the variant’s SCF. "mp2" and "ccsd" are wired on variant="four-center" and variant="real-gamma"; the two DLPNO treatments are "real-gamma" only, because DLPNO screens on a fitted reference and the bare four-centre operator has no RI decomposition. At their default zero truncations the DLPNO routes reproduce the canonical ones on the same reference to machine precision. "ccsd" and "dlpno-ccsd" are CCSD(T), and their citation keys record whether the triples actually ran. Open-shell clusters take the u siblings of every route automatically; the one refusal is "ccsd" on variant="four-center", whose only open-shell driver is neutral-only and so cannot build that arm’s reference. The driver is chosen to MATCH the construction the SCF ran, never to substitute another one, so each arm cites its own lineage: four-center takes the bare run_ccm_mp2 / run_ccm_ump2 (aiccm2026dev-a-mp2) and real-gamma the neutral-RI correlation (aiccm2026dev-a-ri-mp2). They never share a citation row – handing a union-and-weight SCF to a neutral-RI driver would return a different construction’s number (ruling R1). Both consume the SCF the front door already converged rather than building a second one. neutral-bloch refuses because its reference is the per-k Bloch representation while the drivers work in real-Gamma supercell space; the refusal names real-gamma as the exact substitute (same Hamiltonian, ruling R1). chi refuses as not yet wired. A KS reference refuses because MP2 needs an HF one. The bare four-centre drivers form the dense n_ref_ao**4 AO tensor, so that arm is a small-cluster tool: no dimensionality guard, but size the torus deliberately. See docs/user_guide/aiccm.md.

  • output (Union[str, os.PathLike]) – Path stem; produces {output}.out, {output}.system, {output}.molden, {output}.xsf (when write_density).

  • band_structure (Optional['BandStructure']) – Optional BandStructure pre-computed by vibeqc.band_structure() (or _hcore). When given together with output_qvf=True, the band structure is embedded in the QVF archive so vibe-view can render an interactive Plotly band-structure plot. Compute it before calling this function – the same workflow used for matplotlib plotting with vibeqc.plot.band_structure_figure().

  • coop_cohp (bool) – When True, compute COOP and COHP bonding analysis and embed dos.coop + dos.cohp sections in the QVF archive. Requires output_qvf=True: the archive is the analysis’s only sink, so coop_cohp=True with output_qvf=False raises ValueError before SCF rather than silently skipping the analysis. Uses the same DOS k-mesh as the total/projected DOS ([8,8,8]). The Hcore matrix (T + V) needed for COHP is computed independently within the DOS/COHP k-mesh block; no additional user input is required.

  • tddft (bool) – When True, compute TD-DFT vertical excitation energies via the Tamm-Dancoff approximation (TDA) at the Gamma point. Writes excitation energies, oscillator strengths, and dominant transitions to the .out file. Requires _has_valid_mo_coeffs(result) (true for Γ-only and multi-k results). Not embedded in QVF yet.

  • tddft_n_states (int) – Number of excited states to compute when tddft=True. Default 5.

  • dos_kmesh (Optional[Sequence[int]]) – Override the DOS/PDOS/COOP k-mesh dimensions. Default [8, 8, 8]. For 1D systems use e.g. [32, 1, 1]; for 2D use [12, 12, 1]. Only used when output_qvf=True.

  • qvf_wannier_centers (bool) – When True for jk_method="aiccm2026dev-b", localize the occupied finite-torus space with the B-owned Wannier gauge and embed an x_ccm.wannier_centers vendor section in the QVF archive for vibe-view’s centre overlay. Requires output_qvf=True.

  • aux_basis (Optional[str]) – Optional auxiliary basis for jk_method="gdf" and the RI-J part of jk_method="rijcosx". If omitted, vibe-qc chooses the current native-GDF default for basis.name.

  • gapw_molecular_limit (bool) – Declare that jk_method="gapw" is describing an isolated molecule or atom in a vacuum-padded single-Gamma cell. Required for RHF/UHF so the method-aware one-centre default can select the validated fit-free analytic augmentation without guessing from geometry. Compact crystals should use GDF or BIPOLE. Rejected for RKS/UKS, whose method-aware default remains the block DFT functional. High-level GAPW HF geometry/cell optimization and Hessians fail closed until derivatives of the same fit-free energy are implemented.

  • bipole_cutoff_bohr (Optional[float]) – Direct-lattice cutoff radii in bohr for jk_method="bipole". bipole_cutoff_bohr controls the electronic BIPOLE Fock sums; when bipole_nuclear_cutoff_bohr is omitted, the BIPOLE route keeps the nuclear/Ewald real-space cutoff no longer than the electronic J/K cutoff so neutral-cell cancellation stays in the corrected Ewald gauge. Corrected-gauge RHF/RKS/UHF/UKS runs measure Bloch-overlap fold drift before the first Fock build. Drift above 1e-2 is the established unreliable-support regime and raises before SCF; increase this cutoff until the reported drift is below 1e-4 for quantitative work. Intermediate drift retains a truncation note. A home-only short-range image list is valid for the 3D Ewald split: its reciprocal term still supplies periodic coupling. Converge both halves of the split; the number of short-range images alone does not determine whether the Hamiltonian is periodic. Other backends have route-specific image semantics. These controls are separate from cutoff_ha, which is a GPW/GAPW plane-wave grid cutoff.

  • bipole_nuclear_cutoff_bohr (Optional[float]) – Direct-lattice cutoff radii in bohr for jk_method="bipole". bipole_cutoff_bohr controls the electronic BIPOLE Fock sums; when bipole_nuclear_cutoff_bohr is omitted, the BIPOLE route keeps the nuclear/Ewald real-space cutoff no longer than the electronic J/K cutoff so neutral-cell cancellation stays in the corrected Ewald gauge. Corrected-gauge RHF/RKS/UHF/UKS runs measure Bloch-overlap fold drift before the first Fock build. Drift above 1e-2 is the established unreliable-support regime and raises before SCF; increase this cutoff until the reported drift is below 1e-4 for quantitative work. Intermediate drift retains a truncation note. A home-only short-range image list is valid for the 3D Ewald split: its reciprocal term still supplies periodic coupling. Converge both halves of the split; the number of short-range images alone does not determine whether the Hamiltonian is periodic. Other backends have route-specific image semantics. These controls are separate from cutoff_ha, which is a GPW/GAPW plane-wave grid cutoff.

  • convergence (Optional[str]) – Convergence-strategy selector. "auto" classifies the system from cheap pre-SCF signals (composition electronegativity spread, cell volume, vacuum axes, electron parity) into a profile – ionic-insulator, covalent-insulator, metallic-candidate or molecular-limit – and fills every convergence knob the user did not set (Fermi-Dirac smearing, FMIXING, level shift, damping) with profile defaults grounded in measured behaviour. MgO-class ionic cells get FMIXING 30 % with integer occupations; smearing is never selected automatically for an insulating profile because it can converge a wrong-energy metallic basin. "off"/"none" keeps the plain defaults. Omitted (None): auto applies only when no explicit convergence knob is given – any explicit damping= / fmixing_percent= / fock_mixing= / level_shift= / smearing input switches to fully-manual mode and nothing is auto-filled. Either way the .out file carries a “Convergence strategy” block stating the mode (AUTO default / AUTO requested / manual / off), the per-knob values with their provenance, and the classification reasons. Explicit knobs are never overridden. Scope: applied on jk_method="bipole" and "gdf"; other routes run with plain defaults and label the block accordingly.

  • use_diis (bool)

  • damping (Optional[float])

  • dynamic_damping (Optional[bool])

  • fmixing_percent (Optional[float])

  • fock_mixing (Optional[float])

  • diis_start_iter (int)

  • jk_method (Union[str, 'PeriodicJKMethod'])

  • cutoff_ha (float)

  • gdf_method (Optional[str])

  • rsgdf_ke_cutoff (float)

  • rsgdf_tail_ke_cutoff (Optional[float])

  • mdf_ke_cutoff (float)

  • aiccm_backend (str)

  • aiccm_lattice_extension (Optional[Union[int, Sequence[int]]])

  • aiccm_wigner_seitz_shells (Optional[Union[int, Sequence[int]]])

  • aiccm_symmetry (str)

  • aiccm_symmetry_require_full_group (bool)

  • solver (str)

  • density_mixer (Optional[str])

  • density_mixer_depth (int)

  • density_mixer_beta (float)

  • density_mixer_kerker (bool)

  • kerker_k0 (float)

  • kerker_strength (float)

  • kerker_cutoff_ha (float)

  • smearing (Optional[SmearingOptions])

  • smearing_temperature (Union[float, str, None])

  • smearing_unit (str)

  • smearing_method (str)

  • smearing_metallic (Optional[bool])

  • smearing_band_gap_hartree (Optional[float])

  • bz_integration (Optional[str])

  • diis_subspace_size (int)

  • max_iter (int)

  • conv_tol_energy (float)

  • initial_guess (Union[str, InitialGuess])

  • write_molden_file (bool | None)

  • write_density (bool | None)

  • density_spacing_bohr (float)

  • write_xyz_file (bool)

  • write_poscar_file (bool)

  • write_xsf_structure_file (bool)

  • write_cif_file (bool)

  • write_population_file (bool | None)

  • citations (bool)

  • dry_run (bool)

  • memory_override (bool)

  • record_hostname (bool)

  • progress (Union[bool, ProgressLogger, None])

  • verbose (Optional[int])

  • dispersion (Optional[Union[str, bool, 'D3BJParams']])

  • dispersion_backend (str)

  • dispersion_cutoff_bohr (float)

  • bipole_exact_zone_bohr (Optional[float])

  • sr_image_precision (Optional[float])

  • sr_range_screening (bool)

  • ewald_omega (Optional[float])

  • ewald_precision (float)

  • use_oda (bool)

  • oda_trust_lambda_max (float)

  • use_mom (bool)

  • level_shift (Optional[float])

  • kpoints (Optional[Union[Tuple[int, int, int], List[int], int, 'KPoints', 'BlochKMesh']])

  • reduce_to_primitive (bool)

  • symmetry_precision (float)

  • symmetry (Union[bool, str])

  • symmetry_stabilize (bool)

  • symmetry_reduce_fock (Optional[bool])

  • symmetry_reduce_k (bool)

  • use_multipole_far_field (bool)

  • multipole_l_max (int)

  • use_exchange_ewald_split (Optional[bool])

  • exchange_exxdiv (str)

  • optimize (bool)

  • optimize_max_iter (int)

  • optimize_conv_tol_grad (float)

  • optimize_cell (bool)

  • output_qvf (bool)

  • checkpoint_qvf (Optional[Union[str, os.PathLike]])

  • checkpoint_every (int)

  • hessian (bool)

  • hessian_frozen_indices (Optional[List[int]])

  • dft_plus_u (Optional[List['HubbardSite']])

  • atomic_spins (Optional[List[int]])

  • read_from (Optional[object])

  • fragments (Optional[object])

  • spinlock (Optional[str])

  • spinlock_value (int)

  • spinlock_iterations (int)

  • restart_from (Optional[Union[str, os.PathLike]])

:param : :param diis_subspace_size: SCF controls forwarded to the periodic driver.

dynamic_damping is a χ-CCM-B-only override. None preserves that selector’s option default, while False disables adaptive damping updates. Supplying it explicitly with any other jk_method fails closed. It is separate from the generic convergence="auto" explicit-knob detection; χ-CCM-B campaign callers pin their generic convergence controls independently. fmixing_percent mirrors CRYSTAL’s FMIXING keyword: the percentage of the previous Fock/KS matrix mixed into the matrix diagonalised on the next cycle. It is separate from density damping. fock_mixing is the same knob on the fractional 0.0-1.0 scale; pass only one spelling. density_mixer / density_mixer_kerker expose the periodic Anderson/Broyden/Kerker API surface on the closed-shell multi-k GDF and RIJCOSX routes. The lower-level Ewald RKS drivers also support these mixers directly. Other routes fail closed on active requests instead of silently ignoring them or changing electrostatic gauge. Compact 3D closed-shell RKS/GDF SCAN/r2SCAN-family jobs with an explicit kpoints= mesh select Anderson density mixing by default unless density_mixer= or convergence="off" is set. smearing accepts the new vibeqc.SmearingOptions surface. The legacy smearing_temperature may be a numeric electronic k_B T (interpreted via smearing_unit), "auto", "metal", "small-gap", "debug", "none" / "off", or None. smearing_method selects "fermi-dirac" (default), "mermin" (Mermin finite-temperature free-energy functional), "methfessel-paxton" or "marzari-vanderbilt" (all implemented). smearing_metallic and smearing_band_gap_hartree guide the conservative "auto" guess.

Parameters:
  • max_iter (int) – SCF controls forwarded to the periodic driver. dynamic_damping is a χ-CCM-B-only override. None preserves that selector’s option default, while False disables adaptive damping updates. Supplying it explicitly with any other jk_method fails closed. It is separate from the generic convergence="auto" explicit-knob detection; χ-CCM-B campaign callers pin their generic convergence controls independently. fmixing_percent mirrors CRYSTAL’s FMIXING keyword: the percentage of the previous Fock/KS matrix mixed into the matrix diagonalised on the next cycle. It is separate from density damping. fock_mixing is the same knob on the fractional 0.0-1.0 scale; pass only one spelling. density_mixer / density_mixer_kerker expose the periodic Anderson/Broyden/Kerker API surface on the closed-shell multi-k GDF and RIJCOSX routes. The lower-level Ewald RKS drivers also support these mixers directly. Other routes fail closed on active requests instead of silently ignoring them or changing electrostatic gauge. Compact 3D closed-shell RKS/GDF SCAN/r2SCAN-family jobs with an explicit kpoints= mesh select Anderson density mixing by default unless density_mixer= or convergence="off" is set. smearing accepts the new vibeqc.SmearingOptions surface. The legacy smearing_temperature may be a numeric electronic k_B T (interpreted via smearing_unit), "auto", "metal", "small-gap", "debug", "none" / "off", or None. smearing_method selects "fermi-dirac" (default), "mermin" (Mermin finite-temperature free-energy functional), "methfessel-paxton" or "marzari-vanderbilt" (all implemented). smearing_metallic and smearing_band_gap_hartree guide the conservative "auto" guess.

  • conv_tol_energy (float) – SCF controls forwarded to the periodic driver. dynamic_damping is a χ-CCM-B-only override. None preserves that selector’s option default, while False disables adaptive damping updates. Supplying it explicitly with any other jk_method fails closed. It is separate from the generic convergence="auto" explicit-knob detection; χ-CCM-B campaign callers pin their generic convergence controls independently. fmixing_percent mirrors CRYSTAL’s FMIXING keyword: the percentage of the previous Fock/KS matrix mixed into the matrix diagonalised on the next cycle. It is separate from density damping. fock_mixing is the same knob on the fractional 0.0-1.0 scale; pass only one spelling. density_mixer / density_mixer_kerker expose the periodic Anderson/Broyden/Kerker API surface on the closed-shell multi-k GDF and RIJCOSX routes. The lower-level Ewald RKS drivers also support these mixers directly. Other routes fail closed on active requests instead of silently ignoring them or changing electrostatic gauge. Compact 3D closed-shell RKS/GDF SCAN/r2SCAN-family jobs with an explicit kpoints= mesh select Anderson density mixing by default unless density_mixer= or convergence="off" is set. smearing accepts the new vibeqc.SmearingOptions surface. The legacy smearing_temperature may be a numeric electronic k_B T (interpreted via smearing_unit), "auto", "metal", "small-gap", "debug", "none" / "off", or None. smearing_method selects "fermi-dirac" (default), "mermin" (Mermin finite-temperature free-energy functional), "methfessel-paxton" or "marzari-vanderbilt" (all implemented). smearing_metallic and smearing_band_gap_hartree guide the conservative "auto" guess.

  • initial_guess (Union[str, InitialGuess]) – Initial-guess selector. "AUTO" is the default; "SAD", "HCORE", "SAP", "PATOM", "HUECKEL", "MINAO", and "READ" are available where supported by the selected method and periodic Coulomb route. Unsupported combinations fail before SCF instead of silently changing the guess. AUTO resolution is variant-aware: method="aiccm" with variant="real-gamma" or "four-center" resolves AUTO to "HCORE", because their supercell-Gamma SCF loops implement only that guess. Passing initial_guess="SAD" to those two variants explicitly still fails before SCF – the default moves, a request never does (#692).

  • write_molden_file (bool | None) – Emit {output}.molden of the Γ-point MOs (using the unit-cell molecule + basis as the molecular target). None (the default) enables it for exact single-Γ Gaussian-basis SCF routes and for Gamma-containing BIPOLE/GDF meshes whose result metadata locates that block. It is inapplicable for basis-free and shifted meshes. Explicit True on an inapplicable route fails before calculation.

  • write_population_file (bool | None) – Emit the population-summary text/JSON pair. Exact single-Γ routes use the molecular analysis; multi-k BIPOLE uses its lattice-density population and χ-CCM uses its finite-torus population. None is capability-aware auto mode, True is a guaranteed request, and False disables the pair.

  • write_density (bool | None) – Emit {output}.xsf with the SCF density on a primitive-cell grid (XSF works for any lattice; cube is orthorhombic-only). The artefact evaluates a real-space lattice density, or the exact Gamma block of a Gamma-only mesh. On a true multi-k mesh the plain Gaussian routes (gdf, rijcosx, gpw) return per-k Bloch blocks only, and a lattice density is not reconstructed from them: an explicit True there is refused before the SCF rather than after it (#679). bipole and every method="aiccm" variant carry a lattice density at any mesh. None is capability-aware auto mode, True is a guaranteed request, and False (the default) disables it.

  • density_spacing_bohr (float) – Grid spacing for the XSF density. Default 0.2 bohr.

  • solver (str) – Diagonalisation solver. "dense" (default) uses NumPy/ScaLAPACK dense eigh. "davidson" uses the block-Davidson iterative solver (opts.use_davidson = True). "lobpcg" also sets use_davidson = True; the Python SCF loop then detects the LOBPCG preference and dispatches through the Python solver stack instead of dense or Davidson diagonalisation.

  • hessian (bool) – When True, compute harmonic vibrational frequencies for the unit-cell molecule via finite-difference Hessian. Frequencies and IR intensities printed to .out and embedded in QVF for vibe-view. Default False. Cost: ~6N SCF evaluations for the unit cell.

  • system (PeriodicSystem)

  • basis (Optional[BasisSet])

  • method (str)

  • functional (Optional[str])

  • variant (Optional[str])

  • scf_reference (Optional[str])

  • correlation (Optional[str])

  • jk_method (Union[str, 'PeriodicJKMethod'])

  • cutoff_ha (float)

  • aux_basis (Optional[str])

  • gdf_method (Optional[str])

  • rsgdf_ke_cutoff (float)

  • rsgdf_tail_ke_cutoff (Optional[float])

  • mdf_ke_cutoff (float)

  • aiccm_backend (str)

  • aiccm_lattice_extension (Optional[Union[int, Sequence[int]]])

  • aiccm_wigner_seitz_shells (Optional[Union[int, Sequence[int]]])

  • aiccm_symmetry (str)

  • aiccm_symmetry_require_full_group (bool)

  • output (Union[str, os.PathLike])

  • use_diis (bool)

  • convergence (Optional[str])

  • damping (Optional[float])

  • dynamic_damping (Optional[bool])

  • fmixing_percent (Optional[float])

  • fock_mixing (Optional[float])

  • density_mixer (Optional[str])

  • density_mixer_depth (int)

  • density_mixer_beta (float)

  • density_mixer_kerker (bool)

  • kerker_k0 (float)

  • kerker_strength (float)

  • kerker_cutoff_ha (float)

  • smearing (Optional[SmearingOptions])

  • smearing_temperature (Union[float, str, None])

  • smearing_unit (str)

  • smearing_method (str)

  • smearing_metallic (Optional[bool])

  • smearing_band_gap_hartree (Optional[float])

  • bz_integration (Optional[str])

  • diis_start_iter (int)

  • diis_subspace_size (int)

  • write_xyz_file (bool)

  • write_poscar_file (bool)

  • write_xsf_structure_file (bool)

  • write_cif_file (bool)

  • citations (bool)

  • dry_run (bool)

  • memory_override (bool)

  • gapw_molecular_limit (bool)

  • record_hostname (bool)

  • progress (Union[bool, ProgressLogger, None])

  • verbose (Optional[int])

  • dispersion (Optional[Union[str, bool, 'D3BJParams']])

  • dispersion_backend (str)

  • dispersion_cutoff_bohr (float)

  • bipole_cutoff_bohr (Optional[float])

  • bipole_nuclear_cutoff_bohr (Optional[float])

  • bipole_exact_zone_bohr (Optional[float])

  • sr_image_precision (Optional[float])

  • sr_range_screening (bool)

  • ewald_omega (Optional[float])

  • ewald_precision (float)

  • use_oda (bool)

  • oda_trust_lambda_max (float)

  • use_mom (bool)

  • level_shift (Optional[float])

  • kpoints (Optional[Union[Tuple[int, int, int], List[int], int, 'KPoints', 'BlochKMesh']])

  • reduce_to_primitive (bool)

  • symmetry_precision (float)

  • symmetry (Union[bool, str])

  • symmetry_stabilize (bool)

  • symmetry_reduce_fock (Optional[bool])

  • symmetry_reduce_k (bool)

  • use_multipole_far_field (bool)

  • multipole_l_max (int)

  • use_exchange_ewald_split (Optional[bool])

  • exchange_exxdiv (str)

  • optimize (bool)

  • optimize_max_iter (int)

  • optimize_conv_tol_grad (float)

  • optimize_cell (bool)

  • output_qvf (bool)

  • qvf_wannier_centers (bool)

  • checkpoint_qvf (Optional[Union[str, os.PathLike]])

  • checkpoint_every (int)

  • hessian_frozen_indices (Optional[List[int]])

  • band_structure (Optional['BandStructure'])

  • coop_cohp (bool)

  • tddft (bool)

  • tddft_n_states (int)

  • dos_kmesh (Optional[Sequence[int]])

  • dft_plus_u (Optional[List['HubbardSite']])

  • atomic_spins (Optional[List[int]])

  • read_from (Optional[object])

  • fragments (Optional[object])

  • spinlock (Optional[str])

  • spinlock_value (int)

  • spinlock_iterations (int)

  • restart_from (Optional[Union[str, os.PathLike]])