vibe-sketcherDocumentation

vibesketcher.inputs.vibeqc_periodic

vibe-qc inputs for periodic structures: PBC, cyclic clusters and periodic MACE.

The writer turns one PeriodicStructure and a PeriodicJobSpec into a Python script for vibeqc run (or plain python). It fails closed: a request the engine cannot run is refused with a reason, never mapped to a nearby keyword.

Models:

  • pbc: run_periodic_job with HF or a functional on BIPOLE, GDF or the automatic J/K route, and a Gamma, Gamma-centred or Monkhorst-Pack mesh (H. J. Monkhorst and J. D. Pack, Phys. Rev. B 13, 5188 (1976)).

  • seccm: the semiempirical (MSINDO) cyclic cluster model; the structure’s atoms are the cluster and its periodic vectors are the CCM translations, so 1, 2 or 3 periodic vectors give CCM1D, CCM2D or CCM3D (T. Bredow, G. Geudtner and K. Jug, J. Comput. Chem. 22, 861 (2001)).

  • aiccm: the ab initio cyclic cluster model, method="aiccm" with an explicit variant and Born-von Karman torus; vibe-qc admits dim = 3 only.

  • mace: a periodic MACE single point or optimisation.

Any model can be preceded by a periodic MACE pre-optimisation of the atomic positions (fixed sites honoured) or, for 3-D cells without fixed atoms, the cell. SECCM and AICCM are experimental in vibe-qc and the input says so.

Functions

refusals(structure, spec)

write_periodic_input(structure, spec)

Render the vibe-qc script for one periodic structure, or refuse.

write_periodic_inputs(document, structure, spec)

The script for the named periodic structure of a document.

Classes

KMesh(*[, kind, mesh])

Brillouin-zone sampling; nonperiodic directions must stay at 1.

MaceStage(*[, relax, model, fmax, ...])

Periodic MACE relaxation run before the main job.

PeriodicJobSpec(*[, model, task, method, ...])

What to compute for one periodic structure.

class vibesketcher.inputs.vibeqc_periodic.KMesh(*, kind='gamma', mesh=(1, 1, 1))[source]

Bases: _Spec

Brillouin-zone sampling; nonperiodic directions must stay at 1.

Parameters:
kind: Literal['gamma', 'gamma-centred', 'monkhorst-pack']
mesh: tuple[int, int, int]
model_config = {'extra': 'forbid'}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vibesketcher.inputs.vibeqc_periodic.MaceStage(*, relax='positions', model='medium-mpa-0', fmax=0.05, max_steps=200, fix_builder_sites=True, fixed_sites=<factory>, device='cpu', accept_academic_license=False)[source]

Bases: _Spec

Periodic MACE relaxation run before the main job.

Parameters:
relax: Literal['positions', 'cell']
model: str
fmax: float
max_steps: int
fix_builder_sites: bool
fixed_sites: list[str]
device: Literal['cpu', 'cuda', 'mps']
accept_academic_license: bool
model_config = {'extra': 'forbid'}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vibesketcher.inputs.vibeqc_periodic.PeriodicJobSpec(*, model='pbc', task='sp', method='hf', basis='sto-3g', jk=None, kpoints=<factory>, charge=None, multiplicity=None, madelung=True, max_iter=None, variant=None, lattice_extension=None, preoptimize=None, mace=None)[source]

Bases: _Spec

What to compute for one periodic structure.

Parameters:
model: Literal['pbc', 'seccm', 'aiccm', 'mace']
task: Literal['sp', 'opt']
method: str
basis: str | None
jk: Literal['bipole', 'gdf', 'auto'] | None

J/K route; None picks BIPOLE for 3-D cells and vibe-qc’s automatic (rigorous 2-D/1-D Coulomb) route otherwise.

kpoints: KMesh
charge: int | None
multiplicity: int | None
madelung: bool
max_iter: int | None
variant: str | None
lattice_extension: tuple[int, int, int] | None
preoptimize: MaceStage | None
mace: MaceStage | None
model_config = {'extra': 'forbid'}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

vibesketcher.inputs.vibeqc_periodic.refusals(structure, spec)[source]
Parameters:
Return type:

list[str]

vibesketcher.inputs.vibeqc_periodic.write_periodic_input(structure, spec)[source]

Render the vibe-qc script for one periodic structure, or refuse.

Parameters:
Return type:

InputBundle

vibesketcher.inputs.vibeqc_periodic.write_periodic_inputs(document, structure, spec)[source]

The script for the named periodic structure of a document.

Parameters:
Return type:

InputBundle