neuralqx.driver package

The VMC driver module

class VMC(hamiltonian, optimizer, *, variational_state, preconditioner=<netket.optimizer.preconditioner.IdentityPreconditioner object>)

Bases: AbstractVariationalDriver

Variational Monte Carlo optimisation driver.

This driver minimises the expectation value of a Hamiltonian like objective using samples produced by the provided variational state. It computes the loss statistics and gradient via variational_state.expect_and_grad, optionally applies a preconditioner, and forwards the resulting update direction to the underlying AbstractVariationalDriver optimisation loop.

Parameters:
  • hamiltonian (AbstractOperator | list) – The operator to minimise, or a list of operators to be passed directly to variational_state.expect_and_grad.

  • optimizer (Any) – Optimiser defining how parameter updates are applied given a gradient.

  • variational_state (VariationalState) – Variational state that supplies sampling, expectation values, and gradients.

  • preconditioner (Callable[[VariationalState, Any, Any | None], Any]) – Callable that transforms the raw gradient before optimisation. If None, the identity preconditioner is used.

Raises:

TypeError – If any operator Hilbert space differs from variational_state.hilbert.

Submodules