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 [1]:
%display latex

Spacetime and metric tensor

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

In [2]:
M = Manifold(5, 'M')
print M
5-dimensional manifold 'M'

We introduce a first coordinate system on $M$:

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

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

In [4]:
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[4]:

A matrix view of the metric components:

In [5]:
g[:]
Out[5]:

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 [6]:
X.<t,x,y1,y2,r> = M.chart('t x y1:y_1 y2:y_2 r:(0,+oo)')
X
Out[6]:

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

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

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

In [8]:
X_to_X0 = X0_to_X.inverse()
X_to_X0.display()
Out[8]:

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

In [9]:
M.atlas()
Out[9]:

and the list of defined vector frames defined is

In [10]:
M.frames()
Out[10]:

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

In [11]:
g.display(X.frame(), X)
Out[11]:

or, in matrix view:

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

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 [13]:
g[X.frame(),0,0,X]
Out[13]:
In [14]:
g[X.frame(),0,0]  # the default chart is used
Out[14]:

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 [15]:
M.set_default_chart(X)
M.set_default_frame(X.frame())

Then

In [16]:
g.display()
Out[16]:
In [17]:
g[:]
Out[17]:
In [18]:
g[0,0]
Out[18]:
In [19]:
g.display_comp()
Out[19]:

Curvature

The Riemann tensor is

In [20]:
Riem = g.riemann()
print Riem
tensor field 'Riem(g)' of type (1,3) on the 5-dimensional manifold 'M'
In [21]:
Riem.display_comp(only_nonredundant=True)
Out[21]:

The Ricci tensor:

In [22]:
Ric = g.ricci()
print Ric
field of symmetric bilinear forms 'Ric(g)' on the 5-dimensional manifold 'M'
In [23]:
Ric.display()
Out[23]:
In [24]:
Ric.display_comp()
Out[24]:

The Ricci scalar:

In [25]:
Rscal = g.ricci_scalar()
print Rscal
scalar field 'r(g)' on the 5-dimensional manifold 'M'
In [26]:
Rscal.display()
Out[26]:

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 [27]:
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[27]:

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

In [28]:
dphi = phi.differential()
print dphi
1-form 'dphi' on the 5-dimensional manifold 'M'
In [29]:
dphi.display()
Out[29]:
In [30]:
dphi[:]  # all the components in the default frame
Out[30]:

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 [31]:
X.coframe()
Out[31]:
In [32]:
dy1 = X.coframe()[2]
dy2 = X.coframe()[3]
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[32]:

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

In [33]:
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[33]:

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

In [34]:
print xder(F)
3-form 'dF' on the 5-dimensional manifold 'M'
In [35]:
xder(F).display()
Out[35]:

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

In [36]:
Fu = F.up(g)
print Fu
Fu.display()
tensor field of type (2,0) on the 5-dimensional manifold 'M'
Out[36]:
In [37]:
F2 = F['_{mn}']*Fu['^{mn}']  # using LaTeX notations to denote contraction
print F2
F2.display()
scalar field on the 5-dimensional manifold 'M'
Out[37]:

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

In [38]:
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[38]:

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

In [39]:
FF == FF.symmetrize()
Out[39]:

Therefore, from now on, we set

In [40]:
FF = FF.symmetrize()

Field equations

Einstein equation

Let us first introduce the cosmological constant:

In [41]:
var('Lamb', latex_name=r'\Lambda')
Out[41]:

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 [42]:
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 [43]:
EE.display_comp(only_nonredundant=True)
Out[43]:

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

In [44]:
eq1 = (EE[0,0]/exp(2*nu*r)).expr()
eq1
Out[44]:
In [45]:
eq2 = (EE[2,2]/exp(2*r)).expr()
eq2
Out[45]:
In [46]:
eq3 = EE[4,4].expr().expand()
eq3
Out[46]:

Dilaton field equation

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

In [47]:
nab = g.connection()
print nab
nab
Levi-Civita connection 'nabla_g' associated with the Lorentzian metric 'g' on the 5-dimensional manifold 'M'
Out[47]:
In [48]:
box_phi = nab(nab(phi).up(g)).trace()
print box_phi
box_phi.display()
scalar field on the 5-dimensional manifold 'M'
Out[48]:

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 [49]:
DE = box_phi - lamb/4*exp(lamb*phi) * F2
print DE
scalar field on the 5-dimensional manifold 'M'
In [50]:
DE.display()
Out[50]:

Hence the dilaton field equation provides a fourth equation:

In [51]:
eq4 = DE.expr().expand()
eq4
Out[51]:

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 [52]:
ME = nab(exp(lamb*phi)*Fu).trace(0,2)
print ME
ME.display()
vector field on the 5-dimensional manifold 'M'
Out[52]:

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

In [53]:
nab(exp(lamb*phi)*Fu).display()
Out[53]:

Summary

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

In [54]:
eq1 == 0
Out[54]:
In [55]:
eq2 == 0
Out[55]:
In [56]:
eq3 == 0
Out[56]:
In [57]:
eq4 == 0
Out[57]:

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

In [58]:
eqs = [eq1, eq2, eq3, eq4]
neqs = [eq.subs(nu=1) for eq in eqs]
In [59]:
[eq == 0 for eq in neqs]
Out[59]:
In [60]:
solve([eq == 0 for eq in neqs], lamb, mu, Lamb, q)
Out[60]:

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

Solution for $\nu = 2$

In [61]:
neqs = [eq.subs(nu=2) for eq in eqs]
[eq == 0 for eq in neqs]
Out[61]:
In [62]:
solve([eq == 0 for eq in neqs], lamb, mu, Lamb, q)
Out[62]:

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

Solution for $\nu = 4$

In [63]:
neqs = [eq.subs(nu=4) for eq in eqs]
[eq == 0 for eq in neqs]
Out[63]:
In [64]:
solve([eq == 0 for eq in neqs], lamb, mu, Lamb, q)
Out[64]:

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

In [ ]: