Code for "Removing nodal and support-mismatch pathologies in Variational Monte Carlo via blurred sampling"

March 30, 2026 ยท View on GitHub

Utilities and experiments for blurred-sampled time-dependent variational Monte Carlo (t-VMC) using NetKet for the experiments in https://arxiv.org/abs/2603.18148

This repo contains:

  • Code in folder /src/ for performing t-VMC in Netket.
  • We provide two TDVP driver (TDVPSchmittBlur and TDVPSchmittRandomizedBlur) that implement Schmitt-style SNR-based regularization and a simple blur proposal kernel to improve sampling stability during real-time evolution.
  • Code in folder /paper/ to reproduce the figures in arxiv:xxxxxxx.
  • We provide the data to reproduce all the experiments in /paper/data

IMPORTANT: The blurred sample kernel blurred_sample in /src/tdvp_utils.py is tailored to Ising Hamiltonians considered in the paper. A more general kernel is provided with blurred_sample_general, which calculates the number of physical connections provided by Netket's get_conn_padded. Both will give the correct dynamics for any Hamiltonian, but the latter ensures the value of q can actually be interpreted as "probability of moving to a physical off-diagonal term".

All experiments should run in a reasonable time, except for figure 6(c), which requires multiple GPUs for several hours and JAXMg.

Setup

1) Create and activate a virtual environment

python -m venv .venv
source .venv/bin/activate
python -m pip install -U pip

2) Install dependencies

python -m pip install -r requirements.txt

To install the GPU compatible version of this repo use

    python -m pip install jax[cuda12]==0.8.1 jaxmg[cuda12]==0.0.7

Notebooks

If you want to run the notebooks:

python -m pip install jupyter
jupyter lab