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.

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

Bases: VMC

VMC driver for MultiMCState with an optional orthogonality penalty.

For each contained state, this driver computes energy statistics and gradients of the Hamiltonian objective. If lambda_ortho is nonzero and more than one state is present, it additionally applies a pairwise penalty based on a fidelity-like overlap estimator to encourage the states to become mutually orthogonal.

Preconditioning is applied independently per state. Interpreted as a joint optimisation problem over all parameters, this corresponds to a block-diagonal preconditioner.

Parameters:
  • variational_state (MultiMCState) – Multi-state variational object containing multiple independent states.

  • hamiltonian (Union[AbstractOperator, list]) – Operator or list of operators defining the shared objective.

  • optimizer (Any) – Optimiser used to update parameters from the (preconditioned) gradients.

  • preconditioner (Callable[[VariationalState, Any, Any | None], Any]) – Preconditioner applied per state to transform raw gradients.

  • lambda_ortho (float) – Strength of the orthogonality penalty. Set to 0 to disable.

Raises:

TypeError – If any operator acts on a Hilbert space incompatible with the variational state.

Submodules