Tensore di Riemann con Mathematica

From: extrabyte <no_body_at_no_where.it>
Date: Thu, 25 Mar 2004 16:36:39 GMT

Consideriamo uno spazio-tempo 3-dim tale che ad ogni istante di tempo
universale t, il corrispondente spazio fisico (2-dim) sia costituito dalla
superficie laterale di un cilindro di raggio a(t) (cilindro che si espande o
si contrae).

Nel sistema di coordinate (unit� c=1) :

(t,z,phi) dove z � la quota e phi l'angolo azimutale, la metrica �:

DiagonalMatrix[1,-1,-a[t]^2]

Utilizzando Mathematica si pu� scrivere una routine per il calcolo dei
simboli di Christoffel, del tensore di Ricci e dello scalare di curvatura.
Nel caso in esame, risulta che lo spazio-tempo � piatto solo se a[t]=const,
e questo � un risultato noto, anche se poi non mi convince il segno di R
(<0). Applicando la stessa routine al caso di uno spazio 2-dimensionale
costituito da una superficie di una sfera (quindi una 2-sfera), esce
R=2/a^2. Ma non dovrebbe essere R=1/a^2?? (Che � il quadrato della
curvatura gaussiana R_G). So che esistono due formule equivalenti per il
calcolo del tensore di Riemann che differiscono per il segno, magari � per
questo che non ho trovato i valori giusti??

grazie in anticipo.
Di seguito c'� il codice Mathematica:


In[1]:=
(*definizione della metrica e del sistema di coordinate*)

In[2]:=
metrica := DiagonalMatrix[{1,-1, a[t]^2}]
coord = {t,x, y};


In[4]:= (*innalzamento e abbassamento di indici tensoriali*)

In[5]:=
raise[metrica_, s_] := Inverse[metrica] . s;
lower[metrica_, s_] := metrica . s;

In[7]:
(*Divergenza di un tensore s*)

In[8]:
Div[s_, var_] := Inner[D, s, var, Plus];

In[9]:
(*gradiente di un tensore s. Questo operatore opera solo su vettori e
tensori*)

In[10]:=
Grad[s_List, var_] := Outer[D, s, var];

In[11]:=
(*gradiente di un tensore o di uno scalare*)

In[12]:=
GradScal[s_, var_] := (D[s, #1] & ) /_at_ var

In[13]:=
(*simboli di Christoffel*)

In[14]:=
Christoffel[metrica_, var_] :=
  Simplify[Inverse[metrica] . (Grad[metrica, var] + Transpose[Grad[metrica,
var], {1, 3, 2}] -
      Transpose[Grad[metrica, var], {2, 3, 1}])/2]

In[15]:=
(*simbolo di Christoffel contratto*)

In[16]:=
Chr[metrica_, var_] := GradScal[Log[-Det[metrica]^(1/2)], var]

In[17]:=
(*Tensore di Ricci*)

In[18]:=
Ricci[metrica_, var_] := Div[Transpose[Christoffel[metrica, var], {3, 2,
1}], var] -
   Grad[Chr[metrica, var], var] + Chr[metrica, var] . Christoffel[metrica,
var] -
   Table[Sum[(Christoffel[metrica, var] . Christoffel[metrica,
var])[[i,j,kk,i]], {i, Length[var]}],
    {j, Length[var]}, {kk, Length[var]}]

In[19]:=
Ricci[metrica, coord]

Out[19]=
{{-a''[t]/a[t], 0, 0}, {0, 0, 0}, {0, 0, -a[t] a''[t]}}

In[20]=
(*Scalare di Ricci*)

In[21]:=
RR[metrica_, var_] := Inverse[metrica] . Ricci[metrica, coord]


In[22]:=
R = Simplify[Tr[RR[metrica, coord]]]

Out[22]=
-2*a''[t]/a[t]
Received on Thu Mar 25 2004 - 17:36:39 CET

This archive was generated by hypermail 2.3.0 : Fri Nov 08 2024 - 05:10:26 CET