vibesketch.inputs.vibeqc

The vibe-qc writer: a Python script that runs the job with vibeqc.run_job.

The script follows vibe-view’s vibe-qc templates (one Molecule, one run_job call, QVF and Molden output) with one correction: charge and multiplicity go to Molecule, the only place vibe-qc reads them; run_job takes neither.

The translation is fixed by what vibe-qc’s run_job accepts, read from its source and refused where it ends (AGENTS.md, ground rule 5):

  • Methods. HF becomes rhf or uhf, a functional rks or uks with functional=, never method="auto", which runs FCI or selected CI on molecules with up to eight electrons. The 3c composites, double hybrids, MP2 and coupled cluster are methods of their own. Functionals are the names vibe-qc’s XC table resolves: ωB97X-D3 is not one, and is refused rather than swapped for ωB97X-D, a different functional.

  • Tasks. optimize=True; frequencies through hessian=True, a finite-difference Hessian on HF and DFT surfaces only; full TDDFT through tddft=True, tddft_type="casida". vibe-qc has no NMR shieldings.

  • Keywords. D3(BJ) or D4 on a functional; RIJCOSX as density_fit=True, cosx=True and RI-J as density_fit=True, with vibe-qc choosing the fitting basis for the orbital basis unless a library fitting set is named; CPCM with vibe-qc’s solvent presets (it has no SMD); threads, not processes; position constraints as geom_freeze.

Functions

method_names(name, multiplicity)

The method and functional run_job takes for a job's method, or None.

Classes

class vibesketch.inputs.vibeqc.VibeqcWriter

Bases: InputWriter

name: ClassVar[str] = 'vibeqc'

The registry name, also the value of Job.program.

description: ClassVar[str] = 'vibe-qc run script (Python): HF, DFT, 3c, MP2, CC; SP to TDDFT'

One line for listings.

tasks: ClassVar[frozenset[Literal['geometry', 'sp', 'opt', 'freq', 'opt+freq', 'tddft', 'nmr']]] = frozenset({'freq', 'opt', 'opt+freq', 'sp', 'tddft'})

The tasks this writer can express.

fields: ClassVar[frozenset[str]] = frozenset({'approximation', 'aux_basis', 'basis', 'constraints', 'dispersion', 'method', 'resources', 'solvent', 'states'})

The specification fields, besides task, this writer can express.

file_stem(species, spec)

<species>_<method>_<basis>[_<options>], as the ORCA writer names its files.

Parameters:
Return type:

str

vibesketch.inputs.vibeqc.method_names(name, multiplicity)

The method and functional run_job takes for a job’s method, or None.

A QVF job.spec names methods the same way (rks with b3lyp, uhf, ccsd(t)), so the QVF writer asks here.

Parameters:
  • name (str)

  • multiplicity (int)

Return type:

tuple[str, str | None] | None