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
rhforuhf, a functionalrksorukswithfunctional=, nevermethod="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 throughhessian=True, a finite-difference Hessian on HF and DFT surfaces only; full TDDFT throughtddft=True, tddft_type="casida". vibe-qc has no NMR shieldings.Keywords. D3(BJ) or D4 on a functional; RIJCOSX as
density_fit=True, cosx=Trueand RI-J asdensity_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 asgeom_freeze.
The same translation spells the job.spec of a QVF job container
(VibeqcWriter.container_spec()), the file vibeqc run executes in
place (vibe-qc’s qvf_job.py, QVF spec § 5.9): the typed fields carry
method, functional, basis, charge, multiplicity and the runner’s tasks
(single_point, optimize, hessian), and options carries the
remaining run_job keywords by name, which the runner refuses rather than
drops when it does not know one. TDDFT is a run_job keyword there, as
vibe-qc’s own write_pending_qvf spells it.
Functions
|
The method and functional |
Classes
- class vibesketch.inputs.vibeqc.VibeqcWriter[source]¶
Bases:
InputWriter- 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)[source]¶
<species>_<method>_<basis>[_<options>], as the ORCA writer names its files.
- run_arguments(species, spec)[source]¶
The
run_jobkeywords for a job, in order, as Python values.Only called once there is nothing to refuse: the run script writes them as literals, the QVF job container as
job.specfields.
- container_spec(species, spec)[source]¶
The
job.specfields of a QVF job container for this job (spec § 5.9).What vibe-qc’s container runner reads:
method,functional(JSON null for a method that takes none, left out where the method brings its own),basis,charge,multiplicity, itstasks, and every otherrun_jobkeyword underoptionsby name. The dispersion, solvation and resources are stated as typed fields too, for any reader. RaisesWriterRefusalwith the same reasons the run script would.