class netket.models.MPSPeriodic(hilbert, graph, bond_dim, diag=False, symperiod=None, kernel_init=<function normal.<locals>.init>, dtype=<class 'numpy.complex64'>, parent=<flax.linen.module._Sentinel object>, name=None)[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\).

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.


Returns the variables in this module.

Return type

Mapping[str, Mapping[str, Any]]

kernel_init(shape, dtype=<class 'jax._src.numpy.lax_numpy.float32'>)