Tensore di Riemann con Mathematica
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