Reproducing an example output¶
You’ll learn: how to rerun one of the example inputs, inspect the
.out log and .system manifest it generates, and compare two local
runs without committing ad hoc generated artifacts beside the source
inputs.
Why: the .out file tells you the numerical result, while the
.system manifest tells you which vibe-qc build, Python, linked
libraries, CPU, thread count, and wall time produced it. Together they
are the provenance record you need for release-paper work.
Prerequisites: vibe-qc installed and a project directory outside the checkout.
Run Outside The Repo¶
Copy the input into a scratch run directory:
mkdir -p ~/vibeqc-runs/h2o-rhf
cp ~/path/to/vibeqc/examples/molecular/input-h2o-rhf.py \
~/vibeqc-runs/h2o-rhf/
cd ~/vibeqc-runs/h2o-rhf
~/path/to/vibeqc/.venv/bin/python input-h2o-rhf.py
The script writes files such as:
output-h2o-rhf.out
output-h2o-rhf.system
output-h2o-rhf.molden
output-h2o-rhf.xyz
output-h2o-rhf.bibtex
output-h2o-rhf.references
These are generated artifacts. Keep new exploratory runs with the
manuscript or SI material that cites the calculation; do not commit them
back beside the source input under examples/.
Download Reference Bundles¶
The documentation carries a queue-regenerated H2O RHF reference bundle:
stdout.txtandstderr.txt
The bundle status is recorded in
artifact-status.json,
and the vibe-view capture status is recorded in
screenshot-status.json.
The full static catalog is listed in
Example scripts and generated outputs. It includes
the curated chi-CCM-B periodic QVF validation bundle with two inputs, full
.out logs, sanitized .system manifests, validated QVF archives, and
headless vibe-view captures:
Use that bundle when checking periodic QVF consumers: it exercises a 3D
vacuum-padded H-chain and a 3D H2-pair with finite-BvK cells, torus-aligned volume grids,
and x_ccm.wannier_centers overlays.
The catalog also includes the MgO GDF/BIPOLE route fixture bundle:
Use that bundle when checking ordinary periodic route artifacts and route-specific logs. The BIPOLE QVF is valid but does not contain a density volume because the optional density/DOS artifact step warned after the converged SCF.
The .system File¶
run_job(output="x") writes x.out and x.system as siblings.
The manifest is plain TOML:
[vibeqc]
version = "0.15.0"
codename = "Example Codename"
git_sha = "0123456789abcdef0123456789abcdef01234567"
git_branch = "release"
is_release = true
[host]
hostname = "<redacted>"
os_pretty = "macOS 15"
arch = "arm64"
[cpu]
model = "Apple M-series"
physical_cores = 10
logical_cores = 10
omp_threads_used = 4
[libraries]
libint = "2.13.1"
libxc = "7.0.0"
spglib = "2.7.0"
libecpint = "1.0.7"
[run]
wall_seconds = 0.084
basename = "input-h2o-rhf"
Compare Two Runs¶
Pull one detail at a time with grep:
grep -E '^model|^omp_threads_used|^wall_seconds' output-h2o-rhf.system
Diff two manifests to see what changed between a release build and a development build:
diff ~/vibeqc-runs/h2o-rhf-release/output-h2o-rhf.system \
~/vibeqc-runs/h2o-rhf-dev/output-h2o-rhf.system
The most important lines are usually [vibeqc].version,
[vibeqc].git_sha, [cpu].model, [cpu].omp_threads_used, and
[run].wall_seconds. If the version or git SHA changed, small
numerical changes may be expected across releases.
Read The Manifest From Python¶
The manifest is TOML, so the stdlib can parse it:
import tomllib
with open("output-h2o-rhf.system", "rb") as f:
manifest = tomllib.load(f)
print(manifest["cpu"]["model"])
print(manifest["run"]["wall_seconds"])
print(manifest["libraries"]["libint"])
If your script drives low-level SCF routines directly and still wants the same provenance file, use the public helper:
from vibeqc import write_system_manifest
import time
t0 = time.perf_counter()
# ... your calculation ...
write_system_manifest(
"output-mycalc.out",
wall_seconds=time.perf_counter() - t0,
basename="output-mycalc",
)
Disable Hostname Recording¶
For runs you plan to share publicly, pass record_hostname=False to
run_job:
run_job(mol, basis="6-31g*", method="rhf",
output="output-h2o-rhf",
record_hostname=False)
Or set VIBEQC_NO_HOSTNAME=1 once for the whole shell:
export VIBEQC_NO_HOSTNAME=1
.venv/bin/python input-h2o-rhf.py
The [host] block still records OS and architecture; only the
hostname value is redacted.