neuralqx.driver package¶
The VMC driver module
- class VMC(hamiltonian, optimizer, *, variational_state, preconditioner=<netket.optimizer.preconditioner.IdentityPreconditioner object>)¶
Bases:
AbstractVariationalDriverVariational 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:
VMCVMC driver for
MultiMCStatewith an optional orthogonality penalty.For each contained state, this driver computes energy statistics and gradients of the Hamiltonian objective. If
lambda_orthois 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 to0to disable.
- Raises:
TypeError – If any operator acts on a Hilbert space incompatible with the variational state.