# netket.hilbert.ContinuousHilbert#

class netket.hilbert.ContinuousHilbert#

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
__init__(domain, pbc)[source]#
Constructs new Particles given specifications

of the continuous space they are defined in.

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. If np.inf is used an infinite box is considered and pbc=False is mandatory (because what are PBC if there are no boundaries?). If a finite value is given, a minimum value of zero is assumed for the quantum number(s). A particle in a 3D box of size L would take (L,L,L). A rotor model would take e.g. (2pi,).

• pbc (Union[bool, Tuple[bool, ...]]) – Tuple or bool indicating whether to use periodic boundary conditions in a given physical dimension. If tuple it must have the same length as domain. If bool the same value is used for all the dimensions defined in domain.

Attributes
extent#

Spatial extension in each spatial dimension

Return type
is_indexable#

Whether 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
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

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