# 5-dimensional Lifshitz spacetimes¶

This worksheet illustrates some features of SageManifolds (v0.8) on computations regarding Lifshitz spacetimes.

It is based on the following articles:

• I. Ya. Aref'eva & A. A. Golubtsova, JHEP 2015(04), 011 (2015)
• I. Ya. Aref'eva, A. A. Golubtsova & E. Gourgoulhon, in preparation

First we set up the notebook to display mathematical objects using LaTeX formatting:

In :
%display latex


## Spacetime and metric tensor¶

Let us declare the spacetime $M$ as a 5-dimensional manifold:

In :
M = Manifold(5, 'M')
print M

5-dimensional manifold 'M'


We introduce a first coordinate system on $M$:

In :
X0.<t,x,y1,y2,R> = M.chart('t x y1:y_1 y2:y_2 R:(0,+oo)')
X0

Out:

Let us consider the following Lifshitz-symmetric metric, parametrized by some real number $\nu$:

In :
g = M.lorentz_metric('g')
var('nu', latex_name=r'\nu', domain='real')
g[0,0] = -R^(2*nu)
g[1,1] = R^(2*nu)
g[2,2] = R^2
g[3,3] = R^2
g[4,4] = 1/R^2
g.display()

Out:

A matrix view of the metric components:

In :
g[:]

Out:

This metric is invariant under the Lifshitz scaling $$(t,x,y_1,y_2,R) \longmapsto \left(\lambda^\nu t, \lambda^\nu x, \lambda y_1, \lambda y_2, \frac{R}{\lambda} \right)$$

• If $\nu=1$ the scaling is isotropic and we recognize the metric of $\mathrm{AdS}_5$ in Poincaré coordinates
• If $\nu\not=1$, the scaling is anisotropic

Let us introduce a second coordinate system on $M$:

In :
X.<t,x,y1,y2,r> = M.chart('t x y1:y_1 y2:y_2 r:(0,+oo)')
X

Out:

and relate it to the previous one by the transformation $r=\ln R$:

In :
X0_to_X = X0.transition_map(X, [t, x, y1, y2, ln(R)])
X0_to_X.display()

Out:

The inverse coordinate transition is computed by means of the method inverse():

In :
X_to_X0 = X0_to_X.inverse()
X_to_X0.display()

Out:

At this stage, the manifold's atlas defined by the user is

In :
M.atlas()

Out:

and the list of defined vector frames defined is

In :
M.frames()

Out:

The expression of the metric in terms of the new coordinates is

In :
g.display(X.frame(), X)

Out:

or, in matrix view:

In :
g[X.frame(),:,X]

Out:

To access to a particular component, we have to specify (i) the frame w.r.t. which it is defined and (ii) the coordinates in which the component is expressed:

In :
g[X.frame(),0,0,X]

Out:
In :
g[X.frame(),0,0]  # the default chart is used

Out:

From now on, let us consider the coordinates $X = (t,x,y_1,y_2,r)$ as the default ones on the manifold $M$:

In :
M.set_default_chart(X)
M.set_default_frame(X.frame())


Then

In :
g.display()

Out:
In :
g[:]

Out:
In :
g[0,0]

Out:
In :
g.display_comp()

Out:

## Curvature¶

The Riemann tensor is

In :
Riem = g.riemann()
print Riem

tensor field 'Riem(g)' of type (1,3) on the 5-dimensional manifold 'M'

In :
Riem.display_comp(only_nonredundant=True)

Out:

The Ricci tensor:

In :
Ric = g.ricci()
print Ric

field of symmetric bilinear forms 'Ric(g)' on the 5-dimensional manifold 'M'

In :
Ric.display()

Out:
In :
Ric.display_comp()

Out:

The Ricci scalar:

In :
Rscal = g.ricci_scalar()
print Rscal

scalar field 'r(g)' on the 5-dimensional manifold 'M'

In :
Rscal.display()

Out:

We note that the Ricci scalar is constant.

## Source model¶

Let us consider a model based on the following action, involving a dilaton scalar field $\phi$ and a Maxwell 2-form $F$:

$$S = \int \left( R(g) + \Lambda - \frac{1}{2} \nabla_m \phi \nabla^m \phi - \frac{1}{4} e^{\lambda\phi} F_{mn} F^{mn} \right) \sqrt{-g} \, \mathrm{d}^5 x \qquad\qquad \mbox{(1)}$$

## The dilaton scalar field¶

We consider the following ansatz for the dilaton scalar field $\phi$: $$\phi = \frac{1}{\lambda} \left( 4 r + \ln\mu \right),$$ where $\lambda$ and $\mu$ are two constants.

In :
var('mu', latex_name=r'\mu')
var('lamb', latex_name=r'\lambda')
phi = M.scalar_field({X: (4*r + ln(mu))/lamb},
name='phi', latex_name=r'\phi')
phi.display()

Out:

The 1-form $\mathrm{d}\phi$ is

In :
dphi = phi.differential()
print dphi

1-form 'dphi' on the 5-dimensional manifold 'M'

In :
dphi.display()

Out:
In :
dphi[:]  # all the components in the default frame

Out:

## The 2-form field¶

We consider the following ansatz for $F$: $$F = \frac{1}{2} q \, \mathrm{d}y_1\wedge \mathrm{d}y_2,$$ where $q$ is a constant.

Let us first get the 1-forms $\mathrm{d}y_1$ and $\mathrm{d}y_2$:

In :
X.coframe()

Out:
In :
dy1 = X.coframe()
dy2 = X.coframe()
print dy1
print dy2
dy1, dy2

1-form 'dy1' on the 5-dimensional manifold 'M'
1-form 'dy2' on the 5-dimensional manifold 'M'

Out:

We can then form $F$ according to the above ansatz:

In :
var('q')
F = q/2 * dy1.wedge(dy2)
F.set_name('F')
print F
F.display()

2-form 'F' on the 5-dimensional manifold 'M'

Out:

By construction, the 2-form $F$ is closed (since $q$ is constant):

In :
print xder(F)

3-form 'dF' on the 5-dimensional manifold 'M'

In :
xder(F).display()

Out:

Let us evaluate the square $F_{mn} F^{mn}$ of $F$:

In :
Fu = F.up(g)
print Fu
Fu.display()

tensor field of type (2,0) on the 5-dimensional manifold 'M'

Out:
In :
F2 = F['_{mn}']*Fu['^{mn}']  # using LaTeX notations to denote contraction
print F2
F2.display()

scalar field on the 5-dimensional manifold 'M'

Out:

We shall also need the tensor $\mathcal{F}_{mn} = F_{mp} F_n^{\ \, p}$:

In :
FF = F['_mp'] * F.up(g,1)['^p_n']
print FF
FF.display()

tensor field of type (0,2) on the 5-dimensional manifold 'M'

Out:

The tensor field $\mathcal{F}$ is symmetric:

In :
FF == FF.symmetrize()

Out:

Therefore, from now on, we set

In :
FF = FF.symmetrize()


## Field equations¶

### Einstein equation¶

Let us first introduce the cosmological constant:

In :
var('Lamb', latex_name=r'\Lambda')

Out:

From the action (1), the field equation for the metric $g$ is $$R_{mn} + \frac{\Lambda}{3} \, g - \frac{1}{2}\partial_m\phi \partial_n\phi -\frac{1}{2} e^{\lambda\phi} F_{mp} F^{\ \, p}_n + \frac{1}{12} e^{\lambda\phi} F_{rs} F^{rs} \, g_{mn} = 0 $$ We write it as

EE == 0



with EE defined by

In :
EE = Ric + Lamb/3*g - 1/2* (dphi*dphi) -  1/2*exp(lamb*phi)*FF \
+ 1/12*exp(lamb*phi)*F2*g
EE.set_name('E')
print EE

field of symmetric bilinear forms 'E' on the 5-dimensional manifold 'M'

In :
EE.display_comp(only_nonredundant=True)

Out:

We note that EE==0 leads to only 3 independent equations:

In :
eq1 = (EE[0,0]/exp(2*nu*r)).expr()
eq1

Out:
In :
eq2 = (EE[2,2]/exp(2*r)).expr()
eq2

Out:
In :
eq3 = EE[4,4].expr().expand()
eq3

Out:

### Dilaton field equation¶

First we evaluate $\nabla_m \nabla^m \phi$:

In :
nab = g.connection()
print nab
nab

Levi-Civita connection 'nabla_g' associated with the Lorentzian metric 'g' on the 5-dimensional manifold 'M'

Out:
In :
box_phi = nab(nab(phi).up(g)).trace()
print box_phi
box_phi.display()

scalar field on the 5-dimensional manifold 'M'

Out:

From the action (1), the field equation for $\phi$ is $$\nabla_m \nabla^m \phi = \frac{\lambda}{4} e^{\lambda\phi} F_{mn} F^{mn}$$ We write it as

DE == 0



with DE defined by

In :
DE = box_phi - lamb/4*exp(lamb*phi) * F2
print DE

scalar field on the 5-dimensional manifold 'M'

In :
DE.display()

Out:

Hence the dilaton field equation provides a fourth equation:

In :
eq4 = DE.expr().expand()
eq4

Out:

### Maxwell equation¶

From the action (1), the field equation for $F$ is $$\nabla_m \left( e^{\lambda\phi} F^{mn} \right)= 0$$ We write it as

ME == 0



with ME defined by

In :
ME = nab(exp(lamb*phi)*Fu).trace(0,2)
print ME
ME.display()

vector field on the 5-dimensional manifold 'M'

Out:

We get identically zero; indeed the tensor $\nabla_p (e^{\lambda\phi} F^{mn})$ has a vanishing trace, as we can check:

In :
nab(exp(lamb*phi)*Fu).display()

Out:

### Summary¶

We have 4 equations involving the constants $\lambda$, $\mu$, $\nu$, $q$ and $\Lambda$:

In :
eq1 == 0

Out:
In :
eq2 == 0

Out:
In :
eq3 == 0

Out:
In :
eq4 == 0

Out:

## Solution for $\nu=1$ ($\mathrm{AdS}_5$)¶

In :
eqs = [eq1, eq2, eq3, eq4]
neqs = [eq.subs(nu=1) for eq in eqs]

In :
[eq == 0 for eq in neqs]

Out:
In :
solve([eq == 0 for eq in neqs], lamb, mu, Lamb, q)

Out:

Hence there is no solution for $\mathrm{AdS}_5$ with the above ansatz.

## Solution for $\nu = 2$¶

In :
neqs = [eq.subs(nu=2) for eq in eqs]
[eq == 0 for eq in neqs]

Out:
In :
solve([eq == 0 for eq in neqs], lamb, mu, Lamb, q)

Out:

Hence there are two families of solutions, each famility being parametrized by e.g. $q$.

## Solution for $\nu = 4$¶

In :
neqs = [eq.subs(nu=4) for eq in eqs]
[eq == 0 for eq in neqs]

Out:
In :
solve([eq == 0 for eq in neqs], lamb, mu, Lamb, q)

Out:

Hence there are two families of solutions, each family being parametrized by e.g. $q$.

In [ ]: