neuralqx.operators.computational.Euclidean3d.jax.vertex_TRC module

class Euclidean3dVertexTRCOperatorJax(lqx, vertex, *, apply_lapse=False)

Bases: ComputationalJaxOperator

Single-vertex Thiemann-regularised Euclidean Hamiltonian constraint H_v for the 2+1 U(1)^3 WCL model as a JAX-compatible ComputationalOperator.

For each term t (constructed from LqxWCL3D._sum_terms and _epsilon) and each U(1) copy c=0,1,2, this emits one connection:

σ’_{t,c} = h_{α_t}^{(c)} σ

with matrix element:

<σ’_{t,c}|H_v|σ> = N(v) w_t Δ_k^{(c)}(σ) Δ_l^{(c)}(σ)

where:

Δ_s^{(c)}(σ) = sqrt(V_v(σ)) - sqrt(V_v(h_{s}^{(c)-1} σ)).

No Taylor expansions are used. sqrt(V_v) is evaluated directly from the 2+1 vertex volume kernel.

property is_hermitian: bool

Returns true if this operator is hermitian.

property dtype

The dtype of the operator’s matrix elements ⟨σ|Ô|σ’⟩.

property max_conn_size: int

The maximum number of non zero ⟨x|O|x’⟩ for every x.

tree_flatten()
classmethod tree_unflatten(aux, leaves)
class Euclidean3dVertexTRCAdjointOperatorJax(lqx, vertex, *, apply_lapse=False)

Bases: Euclidean3dVertexTRCOperatorJax

Adjoint of Euclidean3dVertexTRCOperatorJax.

Differences vs the ket-ordered operator:
  • segment differences use forward shifts (h_s) instead of inverse shifts (h_s^{-1}) i.e. we flip seg shifts: seg_shift -> -seg_shift

  • loop holonomy is daggered, i.e. loop shifts negated.

ThiemannRegularisedVertexConstraint3dJax(lqx, vertex, *, apply_lapse=False, adjoint=False)