netket.hilbert.DoubledHilbert¶
-
class
netket.hilbert.
DoubledHilbert
(hilb)[source]¶ Bases:
netket.hilbert.abstract_hilbert.AbstractHilbert
Superoperatorial hilbert space for states living in the tensorised state Hotimes H, encoded according to Choi’s isomorphism.
-
__init__
(hilb)[source]¶ - Superoperatorial hilbert space for states living in the
tensorised state Hotimes H, encoded according to Choi’s isomorphism.
- Parameters
hilb – the hilbrt space H.
Examples
Simple superoperatorial hilbert space for few spins.
>>> from netket.hilbert import Spin, DoubledHilbert >>> g = Hypercube(length=5,n_dim=2,pbc=True) >>> hi = Spin(N=3, s=0.5) >>> hi2 = DoubledHilbert(hi) >>> print(hi2.size) 50
- Methods
-
all_states
(out=None)¶ Returns all valid states of the Hilbert space.
Throws an exception if the space is not indexable.
-
numbers_to_states
(numbers, out=None)¶ Returns the quantum numbers corresponding to the n-th basis state for input n. n is an array of integer indices such that numbers[k]=Index(states[k]). Throws an exception iff the space is not indexable.
-
ptrace
(sites)¶ Returns the hilbert space without the selected sites.
Not all hilbert spaces support this operation.
-
random_state
(key=<netket.hilbert.abstract_hilbert.NoneType object>, size=<netket.hilbert.abstract_hilbert.NoneType object>, dtype=<class 'numpy.float32'>, out=None, rgen=None)¶ 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.
out (
Optional
[ndarray
]) – Deprecated. Will be removed in v3.1rgen – Deprecated. Will be removed in v3.1
- Return type
ndarray
- Returns
A state or batch of states sampled from the uniform distribution on the hilbert space.
Example
>>> hi = netket.hilbert.Qubit(N=2) >>> hi.random_state(jax.random.PRNGKey(0)) array([0., 1.]) >>> hi.random_state(size=2) array([[0., 0.], [1., 0.]])
-
states
()¶ Returns an iterator over all valid configurations of the Hilbert space. Throws an exception iff the space is not indexable. Iterating over all states with this method is typically inefficient, and
`all_states`
should be prefered.
-
states_at_index
(i)[source]¶ A list of discrete local quantum numbers at the site i. If the local states are infinitely many, None is returned.
-
states_to_numbers
(states, out=None)¶ Returns the basis state number corresponding to given quantum states. The states are given in a batch, such that states[k] has shape (hilbert.size). Throws an exception iff the space is not indexable.
-
-