Baseado neste exemplo
%display latex
reset()
Princípio cosmológico
Observações sugerem que nosso universo é espacialmente homogêneo e isotrópico.
Homogeneidade implica em invariância na curvatura em translações (vetores de Killing).
Em relatividade geral, isso se traduz na afirmação de que o universo pode ser folheado em fatias do tipo-espaço espaço, de modo que cada fatia tridimensional seja maximalmente simétrica (Topologicamente R×Σ, com Σ maximalmente simétrico).
A métrica de um espaço-tempo do tipo R×Σ pode ser escrita como
ds2=−dt2+a2(t)(dr21−kr2+r2dΩ2).Que é a famosa métrica de Friedmann-Robertson-Walker (FRW)
Vamos usar a equação de Einstein para encontrar uma equação dinâmica para o fator de escala a(t).
Declarando um espaço-tempo de 4 dimensões com estrutura Lorenziana.
frw = Manifold(4, 'FRW', structure='Lorentzian')
show(frw)
print(frw)
4-dimensional Lorentzian manifold FRW
Declarando as cartas (coordenadas) do espaço-tempo
Ch.<t,r,th,ph> = frw.chart(r't r:[0,+oo) th:[0,pi]:\theta ph:[0,2*pi):\phi')
Ch
Precisaremos de variaveis simbólicas para constange gravitacional G, a constante cosmológica Λ e o parâmetro de curvatura k.
var('G, Lambda, k', domain='real')
Além de um campo escalar a para o fator de escala.
a = frw.scalar_field(function('a')(t), name='a')
a.display()
Podemos agora declarar a métrica de FRW e iniciar suas componentes.
g = frw.metric()
print(g)
Lorentzian metric g on the 4-dimensional Lorentzian manifold FRW
g[0,0] = -1
g[1,1] = a*a/(1 - k*r^2)
g[2,2] = a*a*r^2
g[3,3] = a*a*(r*sin(th))^2
g.display()
g[:]
Conexão de Levi-Civita
nabla = g.connection()
print(nabla)
Levi-Civita connection nabla_g associated with the Lorentzian metric g on the 4-dimensional Lorentzian manifold FRW
nabla
Símbolos de Christoffel
g.christoffel_symbols_display()
Tensor de Ricci
Ricci = nabla.ricci()
Ricci.display()
Ricci.display_comp()
Escalar de Ricci
Ricci_scalar = g.ricci_scalar()
Ricci_scalar.display()
Introduziremos o tensor energia-momento de fluido perfeito. Para isso precisaremos de um campos escalar para a pressão p(t), um campo escalar para a densidade de energia ρ(t) e um tensor covariante do tipo tempo (1-forma).
rho = frw.scalar_field(function('rho')(t), name='rho', latex_name=r'\rho')
p = frw.scalar_field(function('p')(t), name='p')
show(rho)
print(rho)
Scalar field rho on the 4-dimensional Lorentzian manifold FRW
Vetor
u = frw.vector_field('u')
u[0] = 1
print(u)
u.display()
Vector field u on the 4-dimensional Lorentzian manifold FRW
g(u,u).expr()
u.dot(u)
é equivalente a g(u,u)
.
u.dot(u).expr()
u_form = u.down(g,0) #1-forma dual a u (baixar índice)
print(u_form)
u_form.display()
1-form on the 4-dimensional Lorentzian manifold FRW
Tensor energia momento Tμν=(p+ρ)uμuν+pgμν
T = (rho+p)*(u_form*u_form) + p*g
T.set_name('T')
print(T)
T.display()
Field of symmetric bilinear forms T on the 4-dimensional Lorentzian manifold FRW
Ein = Ricci - Ricci_scalar/2*g + Lambda*g - (8*pi*G)*T
Ein.set_name('Ein')
Ein.display_comp()
Primeira equação de Friedman
Ein[0,0].expr().expand()==0
eqs = [Ein[0,0].expr().expand()==0];eqs
eqs[0] += 8*pi*G*rho.expr()
eqs[0]
Segunda Forma da equação de Einstein Rμν−Λgμν=8πG(Tμν−12Tgμν)
Taço de T
tr_T = T.up(g,0).trace()
tr_T.set_name('tr(T)')
tr_T.display()
Ein2 = Ricci - Lambda*g - (8*pi*G)*(T - tr_T/2*g)
Segunda equação de Friedmann
eq2 = Ein2[0,0].expr().expand() == 0; eq2
eq2+(4*pi*G*(rho+3*p)).expr().expand()
eqs.append(eq2+(4*pi*G*(rho+3*p)).expr().expand())
for eq in eqs:
show(eq)
nt0 = nabla(T)
show(nt0)
print(nt0)
Tensor field nabla_g(T) of type (0,3) on the 4-dimensional Lorentzian manifold FRW
T.up(g)
nT = nabla(T.up(g))
print(nT)
nT
Tensor field of type (2,1) on the 4-dimensional Lorentzian manifold FRW
cons_T0 = nT.trace(1,2)
show(cons_T0)
cons_T0.display()
cons_T0[0]
con_T = cons_T0[0].expr()==0;con_T
con_T = con_T*a.expr();con_T
Equação de estado
om = var('omega')
eq_est = p.expr() == om*rho.expr();eq_est
dom_eq = con_T.subs(eq_est); dom_eq
dom_eq2 = solve(dom_eq,diff(rho.expr(),t))[0]/rho.expr();dom_eq2
dom_eq3 = integral(dom_eq2,t);dom_eq3
solve(dom_eq3,rho.expr())[0].canonicalize_radical()
Tipos de matéria e dinâmica do fator de escala...