vibesketch.inputs.qcschema

The QCSchema molecule writer.

Writes a qcschema_molecule (schema version 2): symbols, geometry in bohr, charge and multiplicity. It emits only the fields vibe-qc’s QCSchema adapter accepts (vibeqc.qcschema.molecule_from_qcschema), which itself rejects any molecule feature it cannot represent; this writer holds itself to the same rule from the other side.

A molecule carries no calculation, so every task but geometry is refused. QcschemaInputWriter writes the calculation: a qcschema_input (schema version 1) with the molecule, a driver and a model, exactly as far as vibe-qc’s adapter (vibeqc.qcschema) reads one: the energy driver for a single point, hessian for frequencies (the adapter computes Hessians for HF only), model with method and basis, and empty keywords. Whatever the adapter would reject is refused here first: optimisations (an AtomicInput has no such driver), TDDFT, NMR, and every keyword (dispersion, solvation, auxiliary basis, approximation, resources, constraints).

Classes

class vibesketch.inputs.qcschema.QcschemaMoleculeWriter

Bases: InputWriter

name: ClassVar[str] = 'qcschema-molecule'

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

description: ClassVar[str] = 'QCSchema molecule (v2): geometry in bohr, charge, multiplicity'

One line for listings.

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

The tasks this writer can express.

molecule(species)

The qcschema_molecule object for species.

Parameters:

species (Species)

Return type:

dict[str, Any]

class vibesketch.inputs.qcschema.QcschemaInputWriter

Bases: InputWriter

name: ClassVar[str] = 'qcschema'

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

description: ClassVar[str] = 'QCSchema input (v1) for vibe-qc: energy, or the HF Hessian'

One line for listings.

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

The tasks this writer can express.

fields: ClassVar[frozenset[str]] = frozenset({'basis', 'method'})

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