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_jobwith 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
|
|
|
Render the vibe-qc script for one periodic structure, or refuse. |
|
The script for the named periodic structure of a document. |
Classes
|
Brillouin-zone sampling; nonperiodic directions must stay at 1. |
|
Periodic MACE relaxation run before the main job. |
|
What to compute for one periodic structure. |
- class vibesketcher.inputs.vibeqc_periodic.KMesh(*, kind='gamma', mesh=(1, 1, 1))[source]¶
Bases:
_SpecBrillouin-zone sampling; nonperiodic directions must stay at 1.
- kind: Literal['gamma', 'gamma-centred', 'monkhorst-pack']¶
- 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:
_SpecPeriodic MACE relaxation run before the main job.
- Parameters:
- relax: Literal['positions', 'cell']¶
- device: Literal['cpu', 'cuda', 'mps']¶
- 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:
_SpecWhat to compute for one periodic structure.
- Parameters:
- model: Literal['pbc', 'seccm', 'aiccm', 'mace']¶
- task: Literal['sp', 'opt']¶
- 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.
- 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:
structure (PeriodicStructure)
spec (PeriodicJobSpec)
- Return type:
- vibesketcher.inputs.vibeqc_periodic.write_periodic_input(structure, spec)[source]¶
Render the vibe-qc script for one periodic structure, or refuse.
- Parameters:
structure (PeriodicStructure)
spec (PeriodicJobSpec)
- Return type:
- vibesketcher.inputs.vibeqc_periodic.write_periodic_inputs(document, structure, spec)[source]¶
The script for the named periodic structure of a document.
- Parameters:
document (Document)
structure (str)
spec (PeriodicJobSpec)
- Return type: