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.

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

In [1]:
%display latex

Space manifold

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

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

We introduce a coordinate system on $M$:

In [3]:
X.<t,x,y1,y2,r> = M.chart('t x y1:y_1 y2:y_2 r')
X
Out[3]:

Next, we define the metric tensor, which depends on some real number $\nu$ and some arbitary function $f$:

In [4]:
g = M.lorentzian_metric('g')
var('nu', latex_name=r'\nu', domain='real')
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[4]:

If $f(r)=1$, this is the metric of a Lifshitz spacetime; if, in addition $\nu=1$, $(M,g)$ is a Poincaré patch of $\mathrm{AdS}_5$.

Curvature

The Riemann tensor is

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

The Ricci tensor:

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

The Ricci scalar:

In [10]:
Rscal = g.ricci_scalar()
print(Rscal)
Scalar field r(g) on the 5-dimensional differentiable manifold M
In [11]:
Rscal.display()
Out[11]:

Source model

Let us consider a model based on the following action, involving a cosmological constant $\bar{\Lambda} = -\Lambda/2$ with $\Lambda>0$, 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$ 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) \iff e^{\lambda\phi} = \mu e^{4r},$$ where $\mu$ is a constant.

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

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

In [13]:
dphi = phi.differential()
print(dphi)
1-form dphi on the 5-dimensional differentiable manifold M
In [14]:
dphi.display()
Out[14]:
In [15]:
dphi[:]  # all the components in the default frame
Out[15]:

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

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

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

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

In [19]:
print(F.exterior_der())
3-form dF on the 5-dimensional differentiable manifold M
In [20]:
F.exterior_der().display()
Out[20]:

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

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

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

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

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

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

Therefore, from now on, we set

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

Einstein equation

Let us first introduce the cosmological constant:

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

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

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

In [29]:
eq0 = EE[0,0]/exp(2*nu*r)
eq0
Out[29]:
In [30]:
eq1 = EE[1,1]/exp(2*nu*r)
eq1
Out[30]:
In [31]:
eq2 = EE[2,2]/exp(2*r)
eq2
Out[31]:
In [32]:
eq3 = EE[4,4]*lamb^2*f(r)
eq3
Out[32]:

Dilaton field equation

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

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

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

Hence the dilaton field equation provides a fourth equation:

In [36]:
eq4 = DE.coord_function()*lamb
eq4
Out[36]:

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

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

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

Solving the field equations

The system to solve is

In [39]:
eqs = [eq0, eq1, eq2, eq3, eq4]
for eq in eqs:
    pretty_print(eq, ' = 0')

Let us solve eq1 for $f(r)$:

In [40]:
sol_f = desolve(eq1.expr() == 0, f(r), ivar=r)
sol_f.expand()
Out[40]:

Hence, up to some rescaling the solution is of the type

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

where $m$ is a constant. Hence we declare

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

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

In [42]:
eq0m = eq0.expr().substitute_function(f, fm).simplify_full()
eq0m
Out[42]:
In [43]:
eq0m = (eq0m * exp(2*nu*r+2*r)).simplify_full()
eq0m
Out[43]:
In [44]:
eq1m = eq1.expr().substitute_function(f, fm).simplify_full()
eq1m
Out[44]:
In [45]:
eq2m = eq2.expr().substitute_function(f, fm).simplify_full()
eq2m
Out[45]:
In [46]:
eq3m = eq3.expr().substitute_function(f, fm).simplify_full()
eq3m
Out[46]:
In [47]:
eq3m = (eq3m * exp(2*nu*r+2*r)).simplify_full()
eq3m
Out[47]:
In [48]:
eq4m = eq4.expr().substitute_function(f, fm).simplify_full()
eq4m
Out[48]:
In [49]:
eqs = [eq0m, eq1m, eq2m, eq3m, eq4m]

Solution for $\nu = 2$

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

In the above solutions, $r_i$, with $i$ an integer, stands for an arbitrary parameter. In particular, we notice that $\mu$ and $q$ are related by $\mu q^2 = 48$ and that the value of $m$ can be chosen arbitrarily.

Solution for $\nu=4$

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

As above, $r_i$, with $i$ an integer, stands for an arbitrary parameter. The constants $\mu$ and $q$ are now related by $\mu q^2 = 240$ and the value of $m$ is still arbitrary.

In [ ]: