Experimental API#

In this page we present some experimental interfaces of NetKet. Those are not guaranteed to be API-stable, and might change without notice (other than the changelog) among minor releases. The netket.experimental module mirrors the standard netket module structure, and we suggest to use it as follows:

import netket as nk
import netket.experimental as nkx

Drivers#

The infidelity driver netket.driver.Infidelity_SR was stabilized in NetKet 3.22 and is now available directly in netket.driver. Please use netket.driver.Infidelity_SR instead of netket.experimental.driver.Infidelity_SR.

Quantum State Reconstruction#

The Quantum State Reconstruction algorithm performs an approximate tomographic reconstruction of measurement data coming from a quantum computer (or similar device) using a Pure or Mixed quantum state.

QSR

Quantum state reconstruction driver minimizing KL divergence.

Samplers#

They are experimental, meaning that we could change them at some point, and we actively seeking for feedback and opinions on their usage and APIs.

Fermions and PyScf#

This modules contains operators for particle-number conserving fermionic operators as well as utility functions that are used to create hamiltonians directly from PyScf molecules.

Previously we also had the remaining Fermionic functionality in the experimental namespace, but in May 2024 it was stabilised and moved to the main netket namespace. In particular, use netket.operator.FermiHubbardJax from netket.operator.

operator.ParticleNumberConservingFermioperator2nd

Particle-number conserving fermionc operator

operator.ParticleNumberAndSpinConservingFermioperator2nd

Particle-number conserving and spin-Z-conserving fermionc operator

operator.from_pyscf_molecule

Construct a netket operator encoding the electronic hamiltonian of a pyscf molecule in a chosen orbital basis.

operator.pyscf.TV_from_pyscf_molecule

Computes the nuclear repulsion energy \(E_{nuc}\), and the T and V tensors encoding the 1-body and 2-body terms in the electronic hamiltonian of a pyscf molecule using the specified molecular orbitals.

Logging#

There are currently no experimental loggers documented in netket.experimental.logging.

Geometry#

The :mod:netket.experimental.geometry module contains helper classes to describe the geometry of continuous spaces. These objects can be passed to Particle and provide utilities such as distance computations.

geometry.Cell

A finite region in continuous space.

geometry.FreeSpace

Infinite space without periodic boundary conditions.

Variational State Interface#

vqs.variables_from_file

Loads the variables of a variational state from a .mpack file.

vqs.variables_from_tar

Loads the variables of a variational state from the i-th element of a .tar archive.

Time Evolution Driver#

TDVP

Variational time evolution based on the time-dependent variational principle which, when used with Monte Carlo sampling via netket.vqs.MCState, is the time-dependent VMC (t-VMC) method.

driver.TDVPSchmitt

Variational time evolution based on the time-dependent variational principle which, when used with Monte Carlo sampling via netket.vqs.MCState, is the time-dependent VMC (t-VMC) method.

ODE Integrators#

Concrete solvers#

This is a collection of ODE solvers that can be used with the TDVP driver above.

dynamics.Euler

The canonical first-order forward Euler method.

dynamics.Heun

The second order Heun's method.

dynamics.Midpoint

The second order midpoint method.

dynamics.RK12

The second order Heun's method.

dynamics.RK23

2nd order adaptive solver with 3rd order error control, using the Bogacki–Shampine coefficients

dynamics.RK4

The canonical Runge-Kutta Order 4 method.

dynamics.RK45

Dormand-Prince's 5/4 Runge-Kutta method.

The corresponding integrator is then automatically constructed within the TDVP driver.

Abstract classes#

Those are the abstract classes you can inherit from to implement your own solver

dynamics.AbstractSolver

Abstract base class for ODE solvers.

dynamics.AbstractSolverState

Base class holding the state of a solver.

Observables#

The observables previously in netket.experimental.observable have been moved to netket.observable.