netket.hilbert.ContinuousHilbert

class netket.hilbert.ContinuousHilbert(domain, pbc)

Bases: netket.hilbert.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.hilbert.ContinuousHilbert
__init__(domain, pbc)[source]
Constructs new Particles given specifications

of the continuous space they are defined in.

Parameters
  • domain (Tuple[float, …]) – range of the continuous quantum numbers

  • pbc (Union[bool, Tuple[bool, ..]]) –

Attributes
extent

Spatial extension in each spatial dimension

Return type

Tuple[float, …]

is_indexable

Whever the space can be indexed with an integer

Return type

bool

pbc

Whether or not to use periodic boundary conditions for each spatial dimension

Return type

Tuple[bool, …]

size

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

Return type

int

Methods
ptrace(sites)

Returns the hilbert space without the selected sites.

Not all hilbert spaces support this operation.

Parameters

sites (Union[int, Iterable]) – a site or list of sites to trace away

Return type

AbstractHilbert

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=<class 'numpy.float32'>)

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 – rng state from a jax-style functional generator.

  • size (Optional[int]) – 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

ndarray

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))
[1. 0.]
>>> print(hi.random_state(key=k2, size=2))
[[0. 0.]
 [0. 1.]]