Newsgroup: it.scienza.fisica
Titolo: 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] & ) /@ 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]

extrabyte ha scritto:
 > 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??
 > ...
 > In[2]: > metrica := DiagonalMatrix[{1,-1, a[t]^2}]
 > coord = {t,x, y};
Non ti sei perso un segno meno?
Da qui in poi non ho controllato, ne' ho verificato il risultato
finale.
Pero' per la sfera e' giusto 2/a^2.
Il tensore di Ricci in un base ortonormale e' diagonale, con
componenti 1/a^2.
------------------------------
Elio Fabri
Dip. di Fisica - Univ. di Pisa
------------------------------

 Non ti sei perso un segno meno?
errore di battitura: DiagonalMatrix[{1, -1, -a[t]^2}]
per il tensore di Riemann: alcuni autori utilizzano una formula, altri la
stessa formula ma con i segni invertiti dei primi due termini del secondo
membro. Ciň che cambia alla fine č il segno a secondo membro delle equazioni
di Einstein
--
extrabyte