netket.experimental.hilbert.ContinuousHilbert#

class netket.experimental.hilbert.ContinuousHilbert[source]#

Bases: AbstractHilbert

Abstract class for the Hilbert space of particles in continuous space.

This class defines the common interface that can be used to interact with particles defined in continuous space.

Inheritance
Inheritance diagram of netket.experimental.hilbert.ContinuousHilbert
__init__(domain)[source]#

Constructs an Hilbert space with continuous degrees of freedom, given specifications of the space.

This object returns an Hilbert space.

Parameters:

domain (tuple[float, ...]) – Tuple indicating the maximum of the continuous quantum number(s) in the configurations. Each entry in the tuple corresponds to a different physical dimension. A particle in a 3D box of size L would take (L,L,L). A rotor model would take e.g. (2pi,).

Attributes
domain#

Domain of the continuous variable, specified for each dimension

is_indexable#

Whether the space can be indexed with an integer

size#

The number number of degrees of freedom in the basis of this Hilbert space.

Methods
ptrace(sites)[source]#

Returns the hilbert space without the selected sites.

Not all hilbert spaces support this operation.

Parameters:

sites (int | Sequence[int]) – a site or list of sites to trace away

Return type:

Optional[Self]

Returns:

The partially-traced hilbert space. The type of the resulting hilbert space might be different from the starting one.

random_state(key=None, size=None, dtype=None)[source]#

Generates either a single or a batch of uniformly distributed random states. Runs as random_state(self, key, size=None, dtype=np.float32) by default.

Parameters:
  • key (Any) – rng state from a jax-style functional generator.

  • size (int | None) – If provided, returns a batch of configurations of the form (size, N) if size is an integer or (*size, N) if it is a tuple and where \(N\) is the Hilbert space size. By default, a single random configuration with shape (#,) is returned.

  • dtype – DType of the resulting vector.

Return type:

Array

Returns:

A state or batch of states sampled from the uniform distribution on the hilbert space.

Example

>>> import netket, jax
>>> hi = netket.hilbert.Qubit(N=2)
>>> k1, k2 = jax.random.split(jax.random.PRNGKey(1))
>>> print(hi.random_state(key=k1))
[0 0]
>>> print(hi.random_state(key=k2, size=2))
[[0 0]
 [0 0]]