Computations for the paper: Sufficient conditions for the existence of limiting Carleman weights (section 5)

Pablo Angulo-Ardoy, Daniel Faraco, Luis Guijarro http://arxiv.org/abs/1603.04201

This notebook only covers the computations in the proof of lemma 5.2

In [1]:
M = Manifold(4, 'M', r'\mathcal{M}', start_index=1)
print M
X.<t,x,y,z> = M.chart()
print X
g = M.riemannian_metric('g')
print g
4-dimensional differentiable manifold M
Chart (M, (t, x, y, z))
Riemannian metric g on the 4-dimensional differentiable manifold M
In [2]:
F = function('F', x,y,z)
g[1,1], g[2,2], g[3,3], g[4,4] = 1, 1, F(x,y,z), F(x,y,z)
g.display()
/projects/sage/sage-6.10/local/lib/python2.7/site-packages/IPython/core/interactiveshell.py:3066: DeprecationWarning: Calling function('f',x) is deprecated. Use function('f')(x) instead.
See http://trac.sagemath.org/17447 for details.
  exec(code_obj, self.user_global_ns, self.user_ns)
/projects/sage/sage-6.10/local/lib/python2.7/site-packages/IPython/core/interactiveshell.py:3066: DeprecationWarning: Substitution using function-call syntax and unnamed arguments is deprecated and will be removed from a future release of Sage; you can use named arguments instead, like EXPR(x=..., y=...)
See http://trac.sagemath.org/5930 for details.
  exec(code_obj, self.user_global_ns, self.user_ns)
Out[2]:
g = dt*dt + dx*dx + F(x, y, z) dy*dy + F(x, y, z) dz*dz
In [3]:
show(g[:])
(1000010000F(x,y,z)0000F(x,y,z))

The Weyl tensor has type B

In [4]:
%time W = g.weyl()
CPU times: user 1min 25s, sys: 1.59 s, total: 1min 27s
Wall time: 1min 30s
In [5]:
W4 = W.down(g,0)
In [6]:
Frame = X.frame()
def g_norm(v):
    return sqrt(g(v,v))
vs  = [Frame[i] for i in [1..4]]
ovs = [v/g_norm(v) for v in vs]
v1,v2,v3,v4 = ovs

N = 4
INDEX_PAIRS = [tuple(c) for c in Combinations([1..N], 2)]

#Bivectors
BASIS = [(vi*vj).antisymmetrize(0,1) for vi,vj in Combinations(ovs, 2)]
for elem in BASIS:
    print elem.display()
d = 6
v12 = BASIS[0]
v13 = BASIS[1]

def WO(bv1, bv2):
    r = 0
    for i,j in INDEX_PAIRS:
        c1 = bv1[i,j]
        for k,l in INDEX_PAIRS:
            c2 = bv2[k,l]
            r += c1*c2*W4[i,j,k,l]
    return r
1/2 d/dt*d/dx - 1/2 d/dx*d/dt
1/2/sqrt(F(x, y, z)) d/dt*d/dy - 1/2/sqrt(F(x, y, z)) d/dy*d/dt
1/2/sqrt(F(x, y, z)) d/dt*d/dz - 1/2/sqrt(F(x, y, z)) d/dz*d/dt
1/2/sqrt(F(x, y, z)) d/dx*d/dy - 1/2/sqrt(F(x, y, z)) d/dy*d/dx
1/2/sqrt(F(x, y, z)) d/dx*d/dz - 1/2/sqrt(F(x, y, z)) d/dz*d/dx
1/2/F(x, y, z) d/dy*d/dz - 1/2/F(x, y, z) d/dz*d/dy
In [7]:
MM = matrix(SR, d)
for i, bvi in enumerate(BASIS):
    for j,bvj in enumerate(BASIS):
        MM[i,j] = WO(bvi, bvj).expr()
In [9]:
show(MM[:3,3:])
(000000000)
In [10]:
show(MM[:3,:3])
(F(x,y,z)D[0](F)(x,y,z)2F(x,y,z)2D[0,0](F)(x,y,z)D[1](F)(x,y,z)2+F(x,y,z)D[1,1](F)(x,y,z)D[2](F)(x,y,z)2+F(x,y,z)D[2,2](F)(x,y,z)24F(x,y,z)3F(x,y,z)D[0,1](F)(x,y,z)D[0](F)(x,y,z)D[1](F)(x,y,z)16F(x,y,z)52F(x,y,z)D[0,2](F)(x,y,z)D[0](F)(x,y,z)D[2](F)(x,y,z)16F(x,y,z)52F(x,y,z)D[0,1](F)(x,y,z)D[0](F)(x,y,z)D[1](F)(x,y,z)16F(x,y,z)52F(x,y,z)D[0](F)(x,y,z)2F(x,y,z)2D[0,0](F)(x,y,z)D[1](F)(x,y,z)2+F(x,y,z)D[1,1](F)(x,y,z)D[2](F)(x,y,z)2+F(x,y,z)D[2,2](F)(x,y,z)48F(x,y,z)30F(x,y,z)D[0,2](F)(x,y,z)D[0](F)(x,y,z)D[2](F)(x,y,z)16F(x,y,z)520F(x,y,z)D[0](F)(x,y,z)2F(x,y,z)2D[0,0](F)(x,y,z)D[1](F)(x,y,z)2+F(x,y,z)D[1,1](F)(x,y,z)D[2](F)(x,y,z)2+F(x,y,z)D[2,2](F)(x,y,z)48F(x,y,z)3)
In [ ]: