neuralqx.lqx.wcl.abstract_lqx_wcl_model module¶
- class LqxWclModel(hilbert, graph, gauge_group, *, computational=True, spacetime_dimensions=4, model_name='AbstractLqxModel')¶
Bases:
AbstractLqxModel- abstractmethod volume(vertex, *, computational=None, jax=None)¶
Returns the volume operator of the underlying wrapped model.
- Parameters:
vertex (
int) – the vertex the volume operator should act oncomputational (
Optional[bool]) – if True, the volume operator is implemented as a computational operatorjax (
Optional[bool]) – if True, and a computational operator implementation is requested, the operator is returned as a JAX computational operator
- Returns:
- abstractmethod area(surface, *, computational=None, jax=None)¶
Returns the area operator of the underlying wrapped model.
- Parameters:
surface (
list) – the surface the area operator acts on. This should be a list composed of edges in their raw representation as provided from the AbstractGraph.edges propertycomputational (
Optional[bool]) – if True, the area operator is implemented as a computational operatorjax (
Optional[bool]) – if True, and a computational operator implementation is requested, the operator is returned as a JAX computational operator
- Returns:
- abstractmethod minimal_loop_holonomy(minimal_loop, vertex_index=None, adjoint=0, *, computational=None, jax=None, dimension=1)¶
Returns the minimal loop holonomy operator of the underlying wrapped model.
- Parameters:
minimal_loop (
list) – the loop the operator should act on. This should be one of the loops provided by the AbstractGraph.dressed_minimal_loops()vertex_index (
int) – the current vertex index in te minimal loop (used for recursion)adjoint (
int) – a flag which identifies if the adjoint is requested (1 or 0)computational (
Optional[bool]) – if True, the operator is implemented as a computational operatorjax (
Optional[bool]) – if True, and a computational operator implementation is requested, the operator is returned as a JAX computational operatordimension (
Optional[int]) – This controls the dimension on which the minimal loop holonomy is implemented in (e.g. call dimensions = 1 in a 3-d model to get the U(1) operator)
- Returns:
- abstractmethod holonomy(edge, adjoint=False, *, computational=None, jax=None, dimension=1)¶
Returns the minimal loop holonomy operator of the underlying wrapped model.
- Parameters:
edge (
Union[list,tuple]) – the edge the operator should act on. This should be one of the loops provided by the AbstractGraph.edgescomputational (
Optional[bool]) – if True, the operator is implemented as a computational operatoradjoint (
bool) – if True, the operator acts as a lowering operator, otherwise a raising operator on the U(1) DOFsjax (
Optional[bool]) – if True, and a computational operator implementation is requested, the operator is returned as a JAX computational operatordimension (
Optional[int]) – This controls the dimension on which the holonomy operator is implemented in (e.g. call dimensions = 1 in a 3-d model to get the U(1) operator)
- Returns:
- abstractmethod number(edge, *, computational=None, jax=None, dimension=1, kwargs=None)¶
Returns the number operator acting on the specified edge
- Parameters:
edge (
tuple) – the edge the operator should act on. This should be one of the loops provided by the AbstractGraph.edgescomputational (
Optional[bool]) – if True, the operator is implemented as a computational operatoradjoint – if True, the operator acts as a lowering operator, otherwise a raising operator on the U(1) DOFs
jax (
Optional[bool]) – if True, and a computational operator implementation is requested, the operator is returned as a JAX computational operatordimension (
Optional[int]) – This controls the dimension on which the holonomy operator is implemented in (e.g. call dimensions = 1 in a 3-d model to get the U(1) operator)kwargs (
Optional[dict]) – and additional information to be passed to the LocalOperator implementation
- Returns:
- abstractmethod curvature_constraint(*, computational=None, jax=True)¶
Implements the curvature constraint on the graph by imposing flatness over the minimal loops. The constraint takes the form
\[\hat{F} = \sum_{a \in L({\gamma})} ( \hat{h}_{a} - 1 ) ( \hat{h}_{a}^\dagger - 1 )\]for every minimal loop \(a\) in the graph. Here \(\hat{h}_{a}\) is a minimal loop holonomy.
- abstractmethod thiemann_quadratic_constraint(*, computational=None, jax=True, **kwargs)¶
For appropriate models, any subclass should implement a quadratic constraint implemented using the Thiemann regularised quantum Hamilton constraint