- class netket.hilbert.Particle#
Hilbert space derived from ContinuousHilbert defining N particles in continuous space with or without periodic boundary conditions.
- __init__(N, L=None, pbc=None, *, D=None)#
Particlesgiven specifications of the continuous space they are defined in.
...]]) – 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,).
None]) – 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.
int]) – (Optional) Number of dimensions. Can be specified instead of L and pbc in order to construct a Particle in a $D-$ dimensional infinite box. Equivalent to Particle(N, L=(np.inf,) * D, pbc=False).
Spatial extension in each spatial dimension
Whether the space can be indexed with an integer
The number of particles
Gives the number of particles in a specific spin projection.
The length of this tuple indicates the total spin whereas the position in the tuple indicates the spin projection.
Example: (10,5,3) describes 18 particles of total spin 1 where 10 of those have spin-projection -1, 5 have spin-projection 0 and 3 have spin-projection 1.
Whether or not to use periodic boundary conditions for each spatial dimension
Returns the hilbert space without the selected sites.
Not all hilbert spaces support this operation.
- 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.
key – rng state from a jax-style functional generator.
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
dtype – DType of the resulting vector.
- Return type:
A state or batch of states sampled from the uniform distribution on the hilbert space.
>>> 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.]]