netket.models.MPSPeriodic#

class netket.models.MPSPeriodic[source]#

Bases: flax.linen.module.Module

A periodic Matrix Product State (MPS) for a quantum state of discrete degrees of freedom, wrapped as Jax machine.

The MPS is defined as

\[\Psi(s_1,\dots s_N) = \mathrm{Tr} \left[ A[s_1]\dots A[s_N] \right] ,\]

for arbitrary local quantum numbers \(s_i\), where \(A[s_1]\) is a matrix of dimension (bdim,bdim), depending on the value of the local quantum number \(s_i\).

Attributes
diag: bool = False#

Whether or not to use diagonal matrices in the MPS tensors.

symperiod: bool = None#

Periodicity in the chain of MPS tensors.

The chain of MPS tensors is constructed as a sequence of identical unit cells consisting of symperiod tensors. if None, symperiod equals the number of physical degrees of freedom.

variables#

Returns the variables in this module.

Return type

Mapping[str, Mapping[str, Any]]

hilbert: netket.hilbert.AbstractHilbert#

Hilbert space on which the state is defined.

graph: netket.graph.AbstractGraph#

The graph on which the system is defined.

bond_dim: int#

Virtual dimension of the MPS tensors.

Methods
has_rng(name)#

Returns true if a PRNGSequence with name name exists.

Return type

bool

Parameters

name (str) –

kernel_init(shape, dtype=<class 'jax.numpy.float64'>)#
put_variable(col, name, value)#

Sets the value of a Variable.

Parameters
  • col (str) – the variable collection.

  • name (str) – the name of the variable.

  • value (Any) – the new value of the variable.

Returns: