metric4d.red 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164
  1. % Calculations concerning the special metric of Dieter Egger
  2. % Small and capital letters are treated as being equivalent
  3. % Dimension of space-time
  4. n:=4;
  5. % turn off extra echoes
  6. off echo;
  7. % smaller exponents first
  8. on revpri;
  9. % Coordinates
  10. OPERATOR X$
  11. X(0):=t$
  12. X(1):=lambda0$
  13. X(2):=lambda1$
  14. X(3):=lambda2$
  15. % Vectors (1-dim arrays start with index 0)
  16. ARRAY U(n), V(n)$
  17. % place (fixed to origin)
  18. U(0):=a0*asin(t)$
  19. U(1):=0$
  20. U(2):=0$
  21. U(3):=0$
  22. % Rule
  23. trig1:={sin(~x)^2=>(1-cos(x)^2)}$
  24. let trig1$
  25. % Procedure
  26. procedure showMatrix(mm); begin
  27. MATRIX hh(n,n)$
  28. FOR I:=0:n-1 DO FOR J:=0:n-1 DO hh(I+1,J+1):=mm(I,J)$
  29. write hh; end;
  30. % Arrays (2-dim arrays start with indices (0,0))
  31. ARRAY G(n,n), GINV(n,n), CHRIST(n,n,n), RIEM(n,n,n,n), RICCI(n,n), EINST(n,n)$
  32. ARRAY EIT(n,n), ENI(n,n)$
  33. % Metric (cellar indices)
  34. G(0,0):=a0^2/(1-t^2)$
  35. G(1,1):=a0^2*(1-t^2)$
  36. G(2,2):=a0^2*(1-t^2)*cos(lambda0)^2$
  37. G(3,3):=a0^2*(1-t^2)*cos(lambda0)^2*cos(lambda1)^2$
  38. % Inverse Metric (roof indices)
  39. MATRIX MG(n,n), MGINV(n,n)$
  40. FOR I:=0:n-1 DO FOR J:=0:n-1 DO MG(I+1,J+1):=G(I,J)$
  41. MGINV:=1/MG$
  42. FOR I:=0:n-1 DO FOR J:=0:n-1 DO GINV(I,J):=MGINV(I+1,J+1)$
  43. write "g = ",mg$
  44. write "ginv = ",mginv$
  45. write "g*ginv = ",mg*mginv$
  46. % velocity
  47. for i:=0:n-1 do v(i):=df(u(i),t)$
  48. % max. velocity
  49. Array vmax(n)$
  50. svmax:=a0/sqrt(1-t^2)$
  51. for i:=0:n-1 do vmax(i):=svmax$
  52. svmaxq:=svmax*svmax$
  53. write "max. velocity = ",svmax$
  54. % energy impulse tensor (eit, roof indices)
  55. for i:=0:n-1 do for j:=0:n-1 do eit(i,j):=v(i)*v(j)*(p/svmaxq + rho) - p * ginv(i,j)$
  56. write "eit roof = "$ showMatrix(eit)$
  57. % energy impulse tensor (eni, cellar indices, including kappa)
  58. for i:=0:n-1 do for j:=0:n-1 do eni(i,j) := - kappa * for k:=0:n-1 sum g(i,k)* for l:=0:n-1 sum g(j,l)*eit(k,l)$
  59. write "eni = -kappa*(eit cellar) = "$ showMatrix(eni)$
  60. % Christoffel symbols (Fliessbach)
  61. for k:=0:n-1 do for l:=0:n-1 do for m:=0:n-1 do CHRIST(k,l,m):= for n:=0:n-1 sum GINV(k,n)/2 * (DF(G(m,n),X(l)) + DF(G(l,n),X(m)) - DF(G(m,l),X(n)))$
  62. % curvature tensor (Fliessbach)
  63. for m:=0:n-1 do for i:=0:n-1 do for k:=0:n-1 do for p:=0:n-1 do RIEM(m,i,k,p) := DF(CHRIST(m,i,k),X(p)) - DF(CHRIST(m,i,p),X(k)) + FOR r:=0:n-1 SUM CHRIST(r,i,k)*CHRIST(m,r,p) - CHRIST(r,i,p)*CHRIST(m,r,k)$
  64. % Ricci tensor (Fliessbach)
  65. FOR I:=0:n-1 DO FOR J:=0:n-1 DO RICCI(I,J):= FOR M:=0:n-1 SUM RIEM(M,I,M,J)$
  66. write "ricci = "$ showMatrix(ricci)$
  67. % curvature scalar
  68. R:= FOR I:=0:n-1 SUM FOR J:=0:n-1 SUM GINV(I,J)*RICCI(I,J)$
  69. write "curvature scalar r = ",r;
  70. % Einstein tensor
  71. FOR I:=0:n-1 DO FOR J:=0:n-1 DO EINST(I,J):=RICCI(I,J)-R/2*G(I,J)$
  72. write "einstein = "$ showMatrix(einst)$
  73. % solving field equations
  74. write "solving field equations ...";
  75. on factor;
  76. erho:=solve(eni(0,0)=einst(0,0),rho)$
  77. write "mass density = ", erho$
  78. ep:=solve(eni(1,1)=einst(1,1),p)$
  79. write "pressure = ", ep$
  80. off factor;
  81. ferho:=sub(ep,erho)$
  82. write "final mass density = ", ferho$
  83. %--------------------------------------------------------------
  84. % write results to file
  85. OUT "metric4d_results.txt";
  86. off echo;
  87. off nat;
  88. % Metric
  89. write "metric = ";
  90. FOR I:=0:n-1 DO FOR J:=0:n-1 DO WRITE "(",I,",",J,") = ", G(I,J)$
  91. % Inverse Metric
  92. WRITE "inverse metric = ";
  93. FOR I:=0:n-1 DO FOR J:=0:n-1 DO WRITE "(",I,",",J,") = ", GINV(I,J)$
  94. % Christoffel symbols
  95. write "christoffel symbols = ";
  96. FOR K:=0:n-1 DO FOR I:=0:n-1 DO FOR J:=0:n-1 DO WRITE "(",K,",",I,",",J,") = ", CHRIST(K,I,J)$
  97. % curvature tensor
  98. write "curvature tensor = ";
  99. FOR I:=0:n-1 DO FOR J:=0:n-1 DO FOR K:=0:n-1 DO FOR L:=0:n-1 DO WRITE "(",I,",",J,",",K,",",L,") = ", RIEM(I,J,K,L)$
  100. % Ricci tensor
  101. write "ricci tensor = ";
  102. FOR I:=0:n-1 DO FOR J:=0:n-1 DO WRITE "(",I,",",J,") = ", RICCI(I,J)$
  103. % curvature scalar
  104. write "curvature scalar = ",R$
  105. % Einstein tensor
  106. write "einstein tensor = ";
  107. FOR I:=0:n-1 DO FOR J:=0:n-1 DO WRITE "(",I,",",J,") = ",EINST(I,J)$
  108. % energy impulse tensor
  109. write "energy impulse tensor eit (roof) = ";
  110. FOR I:=0:n-1 DO FOR J:=0:n-1 DO WRITE "(",I,",",J,") = ",eit(I,J);
  111. % energy impulse tensor
  112. write "energy impulse tensor eni (with kappa, cellar) = ";
  113. FOR I:=0:n-1 DO FOR J:=0:n-1 DO WRITE "(",I,",",J,") = ",eni(I,J);
  114. % solving field equations
  115. write "solving field equations ...";
  116. on factor;
  117. write "mass density = ", erho;
  118. write "pressure = ", ep;
  119. off factor;
  120. write "final mass density = ", ferho;
  121. SHUT "metric4d_results.txt";
  122. off revpri;
  123. on nat;
  124. END;