vibe-qcDocumentation

Experimental ground-state neural VMC

Install the optional CPU extra with pip install 'vibe-qc[qmc]'. The solver accepts neutral He or H2 at a fixed geometry. Supply nuclear charges and Cartesian centers in bohr to vibeqc.qmc.System. The default sector has one alpha and one beta electron. Two equal spins select the antisymmetric sector with a fixed Cartesian p orbital for exchange diagnostics. The driver uses binary64 on CPU. Each walker stores a (2,3) electron array, alpha first.

From the repository root, submit the supplied Python input to a host with this package and its extra installed:

vq submit HOST -d examples/molecular/neural_vmc -- python input.py H2 --seed 31
vq submit HOST -d examples/molecular/neural_vmc -- python input.py He --seed 31

The H2 input has internuclear distance 1.4 bohr. Use vq fetch HOST JOBID to retrieve the JSON result and checkpoint from the job workspace. To continue, include the checkpoint in the next input directory and pass the same molecule and seed with --training 200 --resume. Training is an absolute step count. Each completed update saves parameters, Adam moments, training walkers, PCG64 state and counters. Resume checks the system, sampler, optimizer and runtime signature. Give each job its own directory. Final evaluation starts from fresh walkers and a separate reproducible stream, including its own burn-in.

The reported energy is the mean local total energy in hartrees, including nuclear repulsion. The variance describes individual samples. The standard error is the standard deviation of independent walker time averages divided by the square root of the walker count. Keeping each time series intact accounts for autocorrelation. The estimate is conditional on equilibration and the trained parameters. Repeat complete jobs with distinct seeds to measure training variability. Compare the seed means, their spread and their individual errors. Inspect acceptance rates and repeat with longer burn-in and evaluation to assess mixing. Each JSON includes settings, hashes of the numerical source and loaded extension, package versions and citations.

Numerical model

Schätzle et al. (2026), Methods Eqs. 2-5, give the clamped-nucleus Schrödinger equation and the variational objective. We sample the squared wavefunction with symmetric Gaussian Metropolis proposals. Away from nodes, the kinetic energy is minus one half of the sum of the Laplacian of log magnitude and its squared gradient. Ordinary nested Autograd derivatives evaluate the diagonal second derivatives. Opposite-spin determinants contain one orbital each. Parallel spins use the signed log determinant of s and Cartesian p orbitals after factoring out the positive radial envelopes.

The log envelope contains a smooth confining tail and nuclear cusp terms -Z r/(1+r). The pair term c r12/(1+r12) has slope 1/2 for opposite spins and 1/4 for parallel spins after factoring out the exchange node. A shared eight-unit tanh network maps bounded squared nuclear and pair distances to a symmetric sum over electrons. Both layers are trained. This bounded neural Jastrow preserves cusp slopes. The sign and log magnitude are returned separately. Exact Coulomb coalescences and determinant nodes are outside the local-energy derivative domain.

The journal paper’s Eqs. 12-21 and Psiformer use learned orbitals and attention. QMC-01 uses a single fixed determinant with a trainable positive correlation factor at one geometry. Adam updates use twice the sample covariance of local energy with the log-wavefunction parameter gradient. The implementation omits KFAC curvature blocks and forward-Laplacian optimization. Its defaults describe a small CPU calculation. SI Table 12 reports system-specific pretraining, training iterations and geometry and electron batch sizes for a different optimization problem. Schätzle et al., Psiformer, Martens and Grosse, KFAC.