neuralqx.gauge_groups.u1 package¶
- class U1GaugeGroup(H, *, lazy=True, computational=True, jax=True)¶
Bases:
AbstractGaugeGroupImplements the Abelian gauge group \(U(1)^N\) acting on a
HilbertU1.Gauss constraint The Gauss law at each vertex \(v\) is enforced by a generator \(\hat G_v\). On an oriented graph it takes the form
\[\hat G_v = \sum_{\ell \in \mathrm{inc}(v)} \hat E_\ell \;-\; \sum_{\ell \in \mathrm{out}(v)} \hat E_\ell\]and the constraint used for optimisation is the positive operator
\[\hat C = \sum_{v \in V} \hat G_v^2\]For \(U(1)^N\), the full constraint is the sum of \(N\) independent copies. In the local operator backend this is realised by constructing one copy and shifting its support by a fixed site offset per copy.
Operator backends Depending on configuration, the constraint is instantiated as one of
netket.operator.LocalOperator
Group composition This implementation supports a simple notion of composition in terms of the number of independent \(U(1)\) factors
\[U(1)^m \times U(1)^n \mapsto U(1)^{m+n}, \qquad \bigl(U(1)^m\bigr)^k \mapsto U(1)^{mk}\]- Parameters:
H (
HilbertU1) – A \(U(1)\) compatible Hilbert space, must be an instance ofHilbertU1.lazy (
Optional[bool]) – If True and a local operator backend is requested, delay building expensive local operator structures.computational (
Optional[bool]) – If True, prefer computational operator backends.jax (
Optional[bool]) – If True and computational is True, request a JAX compatible computational backend.
- Raises:
IncompatibleHilbertSpaceError – If H is not a
HilbertU1.