Black branes in Lifshitz-like spacetimes

This Jupyter/SageMath worksheet implements some computations of the article

  • I. Ya. Aref'eva, A. A. Golubtsova & E. Gourgoulhon: Analytic black branes in Lifshitz-like backgrounds and thermalization, arXiv:1601.06046

These computations are based on SageManifolds (v0.9)

The worksheet file (ipynb format) can be downloaded from here.

Content

  1. Five-dimensional Lifschitz-like spacetime
  2. Black brane solution

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

In [1]:
%display latex

1. Five-dimensional Lifshitz-like spacetime

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

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

We introduce a first coordinate system on $M$:

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

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

In [4]:
g = M.lorentzian_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,\tilde r) \longmapsto \left(\lambda^\nu t, \lambda^\nu x, \lambda y_1, \lambda y_2, \frac{\tilde r}{\lambda} \right)$$

  • If $\nu=1$ the scaling is isotropic and we recognize the metric of $\mathrm{AdS}_5$ in Poincaré coordinates ($M$ is then the Poincaré patch of $\mathrm{AdS}_5$)
  • 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')
X
Out[6]:

and relate it to the previous one by the transformation $r=\ln\tilde 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 differentiable 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 differentiable 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 differentiable 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)}$$

where $R(g)$ is the Ricci scalar of metric $g$, $\Lambda$ is the cosmological constant and $\lambda$ is the dilatonic coupling constant.

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 $\mu$ is a constant.

In [27]:
var('mu', latex_name=r'\mu', domain='real')
var('lamb', latex_name=r'\lambda', domain='real')
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 differentiable 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 differentiable manifold M
1-form dy2 on the 5-dimensional differentiable manifold M
Out[32]:

Then we can form $F$ according to the above ansatz:

In [33]:
var('q', domain='real')
F = q/2 * dy1.wedge(dy2)
F.set_name('F')
print F
F.display()
2-form F on the 5-dimensional differentiable manifold M
Out[33]:

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

In [34]:
print(F.exterior_derivative())
3-form dF on the 5-dimensional differentiable manifold M
In [35]:
F.exterior_derivative().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 differentiable 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 differentiable 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 differentiable 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()

Einstein equation

Let us first introduce the cosmological constant:

In [41]:
var('Lamb', latex_name=r'\Lambda', domain='real')
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 differentiable 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 differentiable 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 differentiable 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 differentiable 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 differentiable 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$. Indeed, in the above writing, $r_1$ and $r_2$ stand for arbitrary parameters (nothing to do with the coordinate $r$).

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$. Note that, as above, $r_i$, with $i$ an integer, stands for an arbitrary parameter (nothing to do with the coordinate $r$).

2. Black brane solution

We add a blackening factor $f(r)$ to the metric; i.e. we declare a new metric $g$ according to

In [65]:
g = M.lorentzian_metric('g')
ff = function('f')(r)
g[0,0] = -ff*exp(2*nu*r)
g[1,1] = exp(2*nu*r)
g[2,2] = exp(2*r)
g[3,3] = exp(2*r)
g[4,4] = 1/ff
g.display()
Out[65]:

The Ricci tensor of $g$ is

In [66]:
Ric = g.ricci()
print Ric
Field of symmetric bilinear forms Ric(g) on the 5-dimensional differentiable manifold M
In [67]:
Ric.display_comp()
Out[67]:

By construction, the 2-form $F$ does not depend on $g$; hence there is no need to reevaluate it:

In [68]:
F.display()
Out[68]:

On the contrary, we need to reevaluate its metric dual, in order to compute $F^2 := F_{mn} F^{mn}$:

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

Simlarly, we need to reevaluate $\mathcal{F}_{mn} := F_{mp} F_n^{\ \, p}$:

In [71]:
FF = F['_mp'] * F.up(g,1)['^p_n']
print FF
FF.display()
Tensor field of type (0,2) on the 5-dimensional differentiable manifold M
Out[71]:
In [72]:
FF == FF.symmetrize()
Out[72]:
In [73]:
FF = FF.symmetrize()

The new Einstein equation is

In [74]:
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 differentiable manifold M
In [75]:
EE.display_comp(only_nonredundant=True)
Out[75]:
In [76]:
EE[2,2] == EE[3,3]
Out[76]:

There are 4 independent components:

In [77]:
eq0 = EE[0,0]/exp(2*nu*r)
eq0
Out[77]:
In [78]:
eq1 = EE[1,1]/exp(2*nu*r)
eq1
Out[78]:
In [79]:
eq2 = EE[2,2]/exp(2*r)
eq2
Out[79]:
In [80]:
eq3 = EE[4,4]*lamb^2*f(r)
eq3
Out[80]:

The dilaton field equation becomes

In [81]:
nab = g.connection()
box_phi = nab(nab(phi).up(g)).trace()
print box_phi
box_phi.display()
Scalar field on the 5-dimensional differentiable manifold M
Out[81]:
In [82]:
DE = box_phi - lamb/4*exp(lamb*phi) * F2
DE.display()
Out[82]:
In [83]:
eq4 = DE.coord_function()*lamb
eq4
Out[83]:

The Maxwell equation is still identically satisfied:

In [84]:
ME = nab(exp(lamb*phi)*Fu).trace(0,2)
print ME
ME.display()
Vector field on the 5-dimensional differentiable manifold M
Out[84]:

The solution

The Einstein equation + the dilaton field equation yields a system of 5 equations (eq0, eq1, eq2, eq3, eq4).

Let us show that a solution is obtained for $\nu=2$ and $\nu=4$ with the following specific form of the blackening function:

$$ f(r) = 1 - m e^{-(2\nu +2)r}, $$

where $m$ is a constant.

To this aim, we declare

In [85]:
var('m', domain='real')
fm(r) = 1 - m*exp(-(2*nu+2)*r)
fm
Out[85]:

and substitute this function for $f(r)$ in all the equations:

In [86]:
eq0m = eq0.expr().substitute_function(f, fm).simplify_full()
eq0m
Out[86]:
In [87]:
eq0m = (eq0m * exp(2*nu*r+2*r)).simplify_full()
eq0m
Out[87]:
In [88]:
eq1m = eq1.expr().substitute_function(f, fm).simplify_full()
eq1m
Out[88]:
In [89]:
eq2m = eq2.expr().substitute_function(f, fm).simplify_full()
eq2m
Out[89]:
In [90]:
eq3m = eq3.expr().substitute_function(f, fm).simplify_full()
eq3m
Out[90]:
In [91]:
eq3m = (eq3m * exp(2*nu*r+2*r)).simplify_full()
eq3m
Out[91]:
In [92]:
eq4m = eq4.expr().substitute_function(f, fm).simplify_full()
eq4m
Out[92]:
In [93]:
eqs = [eq0m, eq1m, eq2m, eq3m, eq4m]

Solution for $\nu = 2$

In [94]:
neqs = [eq.subs(nu=2).simplify_full() for eq in eqs]
[eq == 0 for eq in neqs]
Out[94]:
In [95]:
solve([eq == 0 for eq in neqs], lamb, mu, Lamb, q, m, r)
Out[95]:

In the above solutions, $r_i$, with $i$ an integer, stands for an arbitrary parameter.
We recover the same solution for $\lambda$, $\Lambda$ and $\mu q^2$ as in Sec. 1 (i.e. without any black brane). The value of $m$ can be chosen arbitraly. The solution of Sec. 1 corresponds to $m=0$.

Solution for $\nu=4$

In [96]:
neqs = [eq.subs(nu=4).simplify_full() for eq in eqs]
[eq == 0 for eq in neqs]
Out[96]:
In [97]:
solve([eq == 0 for eq in neqs], lamb, mu, Lamb, q, m, r)
Out[97]:

In the above solutions, $r_i$, with $i$ an integer, stands for an arbitrary parameter.
We recover the same solution for $\lambda$, $\Lambda$ and $\mu q^2$ as in Sec. 1 (i.e. without any black brane). The value of $m$ can be chosen arbitraly. The solution of Sec. 1 corresponds to $m=0$.

In [0]: