neuralqx.operators.computational.Euclidean4d.numba.area module¶
An implementation for the area operator of the Euclidean WCL 4-d model using a ComputationalOperator rather than a LocalOperator
- class AreaOperator(H, edges, *, squared=False)¶
Bases:
ComputationalOperatorReturns the area operator for a surface through which edges pass through. The specified
surfaceshould be a list of edges of the graph which are assumed to pucnture through the desired surface.The area for a given graph is given by
\[\hat{A}(S) |\vec{m}\rangle = \sum_{e \cap S\neq\varnothing} \sqrt{ \big(m_e^{(1)}\big)^2 + \big(m_e^{(2)}\big)^2 + \big(m_e^{(3)}\big)^2 } |\vec{m}\rangle\]i.e. for each edge intersecting (S) take its three U(1) charges, square them, sum, and take the square root. (In the generic normalization one would multiply by 8πℓₚ² here that prefactor is set to 1 by convention, see Notes.)
Orientation of an edge does not affect the result since the operator uses the charge norm. If an edge punctures the surface multiple times, it should be included with several times.
For non-planar graphs, these edges should be supplied in accordance to the edges appearing from the
neuralqx.graph.Graph.edges(that is, not in the non-planar representation).- Notes: here it is assumed the following
unit Planck length
Immirzi parameter of value 1.0
Hence the 8πℓₚ² factor is absorbed into units
- property is_hermitian: bool¶
This function must return either
TrueorFalsebased on whether your operator is Hermitian or not. Note that unlike for the case ofLocalOperatortypes, you must specify by-hand whether this operator is Hermitian or not, there is no implementation to deduce that information for you as there is no matrices stored in this operator type.This property plays a role in determining the computational path to be taken when computing gradients. If you specify that the operator is Hermitian while in reality it is not, the computed gradients will be incorrect.
- Returns:
Trueif this operator is Hermitian,Falseotherwise
- property dtype¶
Specify a JAX NumPy or NumPy dtype for this operator (that is, what is the dtype of the matrix elements returned by this operator)