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
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
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()
show(g[:])
%time W = g.weyl()
W4 = W.down(g,0)
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
MM = matrix(SR, d)
for i, bvi in enumerate(BASIS):
for j,bvj in enumerate(BASIS):
MM[i,j] = WO(bvi, bvj).expr()
show(MM[:3,3:])
show(MM[:3,:3])