Category Archives: Personal research

Calculations on Quantum Cuboids and the EPRL-FK path integral for quantum gravity

This week I have been studying a really great paper looking at Quantum Cuboids and path-integral calculations for the EPRL vertex in LQG and also beginning to write some calculational software tools for performing these calculations using Sagemath.

In this work the authors investigate the 4d path integral for Euclidean quantum gravity on a hypercubic lattice, as given by the EPRL-FK model. To tackle the problem, they restrict the path to a set of quantum geometries that reflects the lattice symmetries. In particular, the sum over intertwiners is restricted to quantum cuboids, that is,  coherent intertwiners which describe a cuboidal
geometry in the large-j limit.

Using asymptotic expressions for the vertex amplitude, several interesting properties of the state sum are found.

  • The value of coupling constants in the amplitude functions determines whether geometric or non-geometric configurations dominate the path integral.
  • There is a critical value of the coupling constant α, which separates two phases.  In one phase the main contribution
    comes from very irregular and crumpled states. In the other phase, the dominant contribution comes from a highly regular configuration, which can be interpreted as flat Euclidean space, with small non-geometric perturbations around it.
  • States which describe boundary geometry with high
    torsion have exponentially suppressed physical norm.

The symmetry-restricted state sum

Will work on a regular hypercubic lattice in 4d. On this lattice consider only states which conform to the lattice symmetry. This is a condition on the intertwiners, which  corresponds to cuboids.
A cuboid is completely determined by its three edge lengths, or equivalently by its three areas.

cuboidfig1

All internal angles are π/2 , and the condition of regular cuboids on all dual edges of the lattice result in a high degree of symmetries on the labels: The area and hence the spin on each two parallel squares of the lattice which are translations perpendicular to the squares, have to be equal.

The high degree of symmetry will make all quantum geometries flat. The analysis carried out here is therefore not suited for describing local curvature.

Introduction

The plan of the paper is as follows:

  • Review of the EPRL-FK spin foam model
  • Semiclassical regime of the path integral
  • Construction of the quantum cuboid intertwiner
  • Full vertex amplitude, in particular describe its asymptotic expression for large spins
  • Numerical investigation of the quantum path integral

The spin foam state sum  employed is the Euclidean EPRL-FK model with Barbero-Immirzi parameter γ < 1. The EPRL-FK model is defined on an arbitrary 2-complexes. A 2-complex 􀀀 is determined by its vertices v, its edges e connecting two vertices, and faces f which are bounded by the edges.

The path integral is formulated as a sum over states. A state in this context is given by a collection of spins –  irreducible representations
jf ∈ 1/2 N of SU(2) to the faces, as well as a collection of intertwiners ιe on edges.

The actual sum is given by

cuboidequ1

where Af , Ae and Av are the face-, edge- and vertex- amplitude functions, depending on the state. The sum has to be carried out over all spins, and over an orthonormal orthonormal basis in the intertwiner space at each edge.

The allowed spins jf in the EPRL-FK model are such
that jf are both also half-integer spins.

The face amplitudes are either

Af

The edge amplitudes Ae are usually taken to be equal to 1.

In Sagemath code this looks like:

sagecode1

Coherent intertwiners

In this paper, the space-time manifold used is  M∼ T³×[0, 1] is the product of the 3-torus T3 and a closed interval. The space is compactified toroidally. M is covered by 4d hypercubes, which
form a regular hypercubic lattice H.There is a vertex for each hypercube, and two vertices are connected by an edge whenever two hypercubes intersect ina 3d cube. The faces of 􀀀 are dual to squares in H, on which four hypercubes meet.The geometry will be encoded in the state, by specification of spins jf
and intertwiners ιe.

cuboidbahrfig5

Intertwiners ιe can be given a geometric interpretation in terms of polyhedra in R³. Given a collection of spins j1, . . . jn and vectors n1, . . . nn which close closure. Can define the coherent polyhedron

cuboidequ4

The geometric interpretation is that of a polyhedron, with face areas jf and face normals ni. The closure condition ensures that such a polyhedron exists.

We are interested in the large j-regime of the quantum cuboids. In this limit, these become classical cuboids  which are completely specified by their three areas. Therefore, a
semiclassical configuration is given by an assignment of
areas a = lp² to the squares of the hypercubic lattice.

Denote the four directions in the lattice by x, y, z, t. The areas satisfy

cuboidequ5

The two constraints which reduce the twisted geometric
configurations to geometric configurations are given by:

cuboidequ6

For a non-geometric configuration, define the 4-volume of a hypercube as:

cuboidequ7

Define the four diameters to be:

cuboidequ8

then we have, V4 = dxdydzdt

We also define the non- geometricity as:

cuboidequ9

as a measure of the deviation from the constraints.

In sagemath code this looks like:

sagecode2

Quantum Cuboids

We let’s look at  the quantum theory. In the 2-complex, every edge has six faces attached to it, corresponding to the six faces of the cubes. So any intertwiner in the state-sum will be six-valent, and therefore can be described by a coherent polyhedron with six faces. In our setup, we restrict the state-sum to coherent cuboids, or quantum cuboids. A cuboid is characterized by areas on opposite sides of the cuboid being equal, and the respective normals being negatives of one another

cuboidfig5

The state ιj1,j2,j3 is given by:

cuboidequ12

The vertex amplitude for a Barbero-Immirzi parameter γ < 1 factorizes as Av = A+vAv with

cuboidequ13

with the complex action

cuboidequ14

where, a is the source node of the link l, while b is its target node.

Large j asymptotics
The amplitudes A±v possess an asymptotic expression for large jl. There are two distinct stationary and critical points, satisfying the equations.

cuboidequ15for all links ab . Using the convention shown below

cuboidfig4having fixed g0 = 1, the two solutions Σ1 and Σ2 are

cuboidtable1

The amplitudes A±satisfy, in the large j limit,

cuboidequ19

In the large j-limit, the norm squared of the quantum cuboid states is given by:

cuboidequ20

For the state sum, in the large-j limit on a regular hypercubic lattice:

cuboidequ21

In sagemath code this looks like:

sagecode5

sagecode6

sagecode7

sagecode3

sagecode4

Related articles

Numerical work with python 27: Wigner d matrix

This week I been working on a  python program for calculating the  wigner d matrix and displaying the real and imaginary parts. Below I have posted some of the images produced by this program:

 

figure_1

figure_2

figure_3

figure_4

figure_5

figure_6

figure_7

figure_8

figure_9

figure_10

figure_11

figure_12figure_13

figure_14

This looks great when animated:

figure_1

 

 

below is the python program for these diagrams.

from scipy.special import jv, legendre, sph_harm, jacobi
from scipy.misc import factorial, comb
from numpy import floor, sqrt, sin, cos, exp, power
from math import pi

def wignerd(j,m,n=0,approx_lim=10):
”’
Wigner “small d” matrix. (Euler z-y-z convention)
example:
j = 2
m = 1
n = 0
beta = linspace(0,pi,100)
wd210 = wignerd(j,m,n)(beta)

some conditions have to be met:
j >= 0
-j <= m <= j
-j <= n <= j

The approx_lim determines at what point
bessel functions are used. Default is when:
j > m+10
and
j > n+10

for integer l and n=0, we can use the spherical harmonics. If in
addition m=0, we can use the ordinary legendre polynomials.
”’

if (j < 0) or (abs(m) > j) or (abs(n) > j):
raise ValueError(“wignerd(j = {0}, m = {1}, n = {2}) value error.”.format(j,m,n) \
+ ” Valid range for parameters: j>=0, -j<=m,n<=j.”)

if (j > (m + approx_lim)) and (j > (n + approx_lim)):
#print ‘bessel (approximation)’
return lambda beta: jv(m-n, j*beta)

if (floor(j) == j) and (n == 0):
if m == 0:
#print ‘legendre (exact)’
return lambda beta: legendre(j)(cos(beta))
elif False:
#print ‘spherical harmonics (exact)’
a = sqrt(4.*pi / (2.*j + 1.))
return lambda beta: a * conjugate(sph_harm(m,j,beta,0.))

jmn_terms = {
j+n : (m-n,m-n),
j-n : (n-m,0.),
j+m : (n-m,0.),
j-m : (m-n,m-n),
}

k = min(jmn_terms)
a, lmb = jmn_terms[k]

b = 2.*j – 2.*k – a

if (a < 0) or (b < 0):
raise ValueError(“wignerd(j = {0}, m = {1}, n = {2}) value error.”.format(j,m,n) \
+ ” Encountered negative values in (a,b) = ({0},{1})”.format(a,b))

coeff = power(-1.,lmb) * sqrt(comb(2.*j-k,k+a)) * (1./sqrt(comb(k+b,b)))

#print ‘jacobi (exact)’
return lambda beta: coeff \
* power(sin(0.5*beta),a) \
* power(cos(0.5*beta),b) \
* jacobi(k,a,b)(cos(beta))
def wignerD(j,m,n=0,approx_lim=10):
”’
Wigner D-function. (Euler z-y-z convention)

This returns a function of 2 to 3 Euler angles:
(alpha, beta, gamma)

gamma defaults to zero and does not need to be
specified.

The approx_lim determines at what point
bessel functions are used. Default is when:
j > m+10
and
j > n+10

usage:
from numpy import linspace, meshgrid
a = linspace(0, 2*pi, 100)
b = linspace(0, pi, 100)
aa,bb = meshgrid(a,b)
j,m,n = 1,1,1
zz = wignerD(j,m,n)(aa,bb)
”’

return lambda alpha,beta,gamma=0: \
exp(-1j*m*alpha) \
* wignerd(j,m,n,approx_lim)(beta) \
* exp(-1j*n*gamma)
if __name__ == ‘__main__’:
”’
just a bunch of plots in (phi,theta) for
integer and half-integer j and where m and
n take values of [-j, -j+1, …, j-1, j]

Note that all indexes can be any real number
with the conditions:
j >= 0
-j <= m <= j
-j <= n <= j
”’
from matplotlib import pyplot, cm, rc
from numpy import linspace, arange, meshgrid, real, imag, arccos

rc(‘text’, usetex=False)

ext = [0.,2.*pi,0.,pi]

phi = linspace(ext[0],ext[1],200)
theta = linspace(ext[2],ext[3],200)

pphi,ttheta = meshgrid(phi,theta)

# The maximum value of j to plot. Will plot real and imaginary
# distributions for j = 0, 0.5, … maxj
maxj = 2.0

for j in arange(0,maxj+.1,step=0.5):

fsize = (j*2+3,j*2+3)
title = ‘WignerD(j,m,n)(phi,theta)’
if j == 0:
fsize = (4,4)
else:
title += ‘, j = ‘+str(j)

figr = pyplot.figure(figsize=fsize)
figr.suptitle(r’Real Part of ‘+title)

figi = pyplot.figure(figsize=fsize)
figi.suptitle(r’Imaginary Part of ‘+title)

for fig in [figr,figi]:
fig.subplots_adjust(left=.1,bottom=.02,right=.98,top=.9,wspace=.02,hspace=.1)

if j == 0:
fig.subplots_adjust(left=.1,bottom=.1,right=.9,top=.9)
if j == 0.5:
fig.subplots_adjust(left=.2,top=.8)
if j == 1:
fig.subplots_adjust(left=.15,top=.85)
if j == 1.5:
fig.subplots_adjust(left=.15,top=.85)
if j == 2:
fig.subplots_adjust(top=.87)

if j != 0:
axtot = fig.add_subplot(1,1,1)
axtot.axesPatch.set_alpha(0.)

axtot.xaxis.set_ticks_position(‘top’)
axtot.xaxis.set_label_position(‘top’)
axtot.yaxis.set_ticks_position(‘left’)
axtot.spines[‘left’].set_position((‘outward’,10))
axtot.spines[‘top’].set_position((‘outward’,10))
axtot.spines[‘right’].set_visible(False)
axtot.spines[‘bottom’].set_visible(False)

axtot.set_xlim(-j-.5,j+.5)
axtot.set_ylim(-j-.5,j+.5)

axtot.xaxis.set_ticks(arange(-j,j+0.1,1))
axtot.yaxis.set_ticks(arange(-j,j+0.1,1))

axtot.set_xlabel(‘n’)
axtot.set_ylabel(‘m’)

nplts = 2*j+1
data_j=[]
data_zz=[]

for m in arange(-j,j+0.1,step=1):
for n in arange(-j,j+0.1,step=1):
print j,m,n
zz = wignerD(j,m,n)(pphi,ttheta)
data_j.append(j)
data_zz.append(zz)
i = n+j + nplts*(j-m)

for fig,data in zip((figr,figi), (real(zz),imag(zz))):

ax = fig.add_subplot(nplts, nplts, i+1, projection=’polar’)
plt = ax.pcolormesh(pphi,ttheta,data.copy(),
cmap=cm.jet,
#cmap=cm.RdYlBu_r,
vmin=-1., vmax=1.)

if j == 0:

ax.grid(True, alpha=0.5)
ax.set_title(r’j,m,n = (0,0,0)’, position=(0.5,1.1), size=12)
ax.set_xlabel(r’$\phi$’)
ax.set_ylabel(r’$\theta$’, rotation=’horizontal’, va=’bottom’)
ax.xaxis.set_ticks([0,.25*pi,.5*pi,.75*pi,pi,1.25*pi,1.5*pi,1.75*pi])
ax.xaxis.set_ticklabels([‘0′,r’$\frac{\pi}{4}$’,r’$\frac{\pi}{2}$’,r’$\frac{3 \pi}{4}$’,r’$\pi$’,r’$\frac{5 \pi}{4}$’,r’$\frac{3 \pi}{2}$’,r’$\frac{7 \pi}{4}$’], size=14)
ax.yaxis.set_ticks([0,.25*pi,.5*pi,.75*pi,pi])
ax.yaxis.set_ticklabels([‘0′,r’$\frac{\pi}{4}$’,r’$\frac{\pi}{2}$’,r’$\frac{3 \pi}{4}$’,r’$\pi$’], size=14)

else:
ax.xaxis.set_ticks([])
ax.yaxis.set_ticks([])

ax.set_xlim(ext[0],ext[1])
ax.set_ylim(ext[2],ext[3])
if j == 0:
fig.colorbar(plt, pad=0.07)
# uncomment the following if you want to save these to image files
#figr.savefig(‘wignerD_j’+str(j)+’_real.png’, dpi=150)
#figi.savefig(‘wignerD_j’+str(j)+’_imag.png’, dpi=150)

#pyplot.show()
#pl.plot(j_data,zz_data)
print ‘j_data=’,data_j
#print ‘zz_data=’, data_zz

 

Related posts

Numerical work using mathematica 26: The Gauge invariant area operator in the flux formulation of LQG

This week I been following up the posts:

The starting point is to take the action of the area operator in the spin representation, and to consider the following normalized trace of the area operator:

gauge invariant

If this give a well-defined operator on either the kinematical Hilbert space or on the Hilbert space of fully gauge-invariant wave functions, and also if we took the limit Λfix →∞ it is possible to  read off the spectrum from the representation. There, the oscillatory behaviour of the sine function is suppressed by a factor of 1/dwhich leads to a discrete spectrum for sufficiently small spins j.

 

areamu=0.1

Mathematica code for the normalized trace of the gauge invariant area operator for μ = 0.1 and j=1…100.

And below the figure from the original paper, A new realization of quantum geometry.

newfig1

 

areamu=0.3

Mathematica code for the normalized trace of the gauge invariant area operator for μ = 0.3 and j=1…100.

And below the figure from the original paper, A new realization of quantum geometry.

newfig2

 

areamu=various

Mathematica code for the normalized trace of the gauge invariant area operator for μ = 0.05, 0.1 and 0.3 and j=1…100

Related posts

 

 

Numerical work with sagemath 25: The Wigner D matrix

This week I have been studying the paper ‘A New Realisation of Quantum Geometry’. I’ll review the paper in the next post and follow up that with an analysis of the area operator in  the SU(2) case.

What I’m posting at the moment is some exploratory work looking at the behaviour of the Wigner D matrix elements and U(1)area operator using python and sagemath.

Below I look at the general behaviour of the Wigner D matrix elements:

code1

graph1

Below  Here I  look at the behaviour of the spectrum of the area operator with U(1).

code2

graph2

Below I look at the how the area varies with μ for the values 0.1, 0.3, 0.5:

code3

graph3

Numerical work with sagemath 24: 6j Symbols and non-eucledean Tetrahedra

This week I have begun to look at Hyperbolic Tetrahedra and their geometry. In the paper ‘6j Symbols for Uq and non-eucledean Tetrahedra‘, Taylor and Woodward  relate the semiclassical asymptotics of the 6j symbols for the  quantized enveloping algebra Uq(sl2) to the geometry of spherical and  hyperbolic tetrahedra.

The quantum 6j symbol is a function of a 6-tuple jab, 1 ≤ a ≤ b ≤ 4. The 6j symbols

6jsym6j for q = 1 were introduced as a tool in atomic spectroscopy
by Racah, and then studied mathematically by Wigner. 6j symbols
for Uq(sl2) were introduced by Kirillov and Reshetikhin, who used them to generalize the Jones knot invariant. Turaev and Viro used them to define three manifold invariants or  quantum gravity with a cosmological constant.

6jsymfig1

 

I have started doing some preliminary work with sagemath on 3j symbols, 6j symbols, the quantum integer and on the gram matrix.

graph 1 program6jvsj graph1

graph 2 program

quantumnvsn graph2

 

graph 3 program

3jvsj3 graph3

graph 4 program

ampltudevsj graph4

 

gram matrix

 Related articles

Numerical work with sagemath 23: Wigner Reduced Rotation Matrix Elements as Limits of 6j Symbols

This work is based on the paper “Exact Computation and Asymptotic Approximations of 6j Symbols: Illustration of Their Semiclassical Limits by Mirco Ragni et al which I’ll be reviewing in my next post.

The 6j symbols tend asymptotically to Wigner dlnm functions when some angular momenta are large where θ assumes certain discrete values.

hyperequ10

 

hyperequ11

 

hyperequ12

 

These formulas are illustrated below:

hyperfig2

 

 

This can be modelled using sagemath.

hyperequ1sage1

The routine gives some great results:

For N=320, M=320, n=0, m=0, l=20, L=0,  Lmax=640

Wigner 6j vs cosθL

hyperequ1sage26jvscosL

For N=320, M=320, n=0, m=0, l=10, L=0,  Lmax=640

Wigner 6j vs cosθL

hyperequ1sage26jvscosLv2

For N=320, M=320, n=0, m=0, l=5, L=0,  Lmax=640

Wigner 6j vs cosθL

hyperequ1sage26jvscosLv3

 

Numerical work with sagemath 22: The Hypergeometric function

In order to follow up some work on the the last two posts I have been looking at  the capabilities of Sagemath with regard to calculating hypergeometric functions:

Fortunately sagemath can implement at number of great codes for hypergeometric functions including:

These give excellent results:

sage22fig1

sage22fig2

sage22fig3

sage22fig4

The ability to use mpmath code is very useful since it enables me to calculate a wide range of hypergeometric functions as can be seen on the reference pages. I’ll be using this over the coming posts starting with :

Exact Computation and Asymptotic Approximations of 6j Symbols:
Illustration of Their Semiclassical Limits which is in preparation.

Related articles