Closed FLRW universe

English Version
Benutzeravatar
Yukterez
Administrator
Beiträge: 280
Registriert: Mi 21. Okt 2015, 02:16

Closed FLRW universe

Beitragvon Yukterez » Di 3. Dez 2024, 14:30

Bild
Bild This is the english version.   Bild Für die deutschsprachige Version geht es hier entlang. Bild
Bild

Critical value for the dark energy ΩΛ in a closed universe; a smaller value leads to a big crunch, the exact value brings the expansion to a halt and a larger value leads to eternal accelerated expansion since then the Hubbleparameter never reaches 0 but converges to a constant value:

Code: Alles auswählen

   (* | Solver for the critical value of ΩΛ in a closed universe || yukterez.net | *)
   
   Ωk = 1-Ωm-Ωr-ΩΛ;
   pr = Ωr/3;
   pm = 0;
   H² = Ωr/a^4+Ωm/a^3+Ωk/a^2+ΩΛ;
   ȧ² = H² a^2;
   ä  = a (ΩΛ-(Ωm+pm)/a^3/2-(Ωr+pr)/a^4/2);

   Ωr = 3/10;
   Ωm = 11/10;

   f  = N[Reduce[ȧ²==ä==0 && Ωr+Ωm+ΩΛ>1 && Ωr>=0 && Ωm>=0 && ΩΛ>0 && a>1, ΩΛ]]
   A  = f[[1,2]]
   ΩΛ = f[[2,2]]/.a->A

   plot[x_]:=Plot[x, {a, A-1, A+1}, Frame -> True, GridLines -> {{A}, {}}]
   "H²"->plot[H²]
   "ȧ²"->plot[ȧ²]
   "ä"->plot[ä]
   
   Quit[]

Example: at In[1] we define the normalized Hubbleparameter H und the first and second time derivatives (ȧ and ä) of the normalized scalefactor as well as the relations between pressure, density and curvature. At In[5] the velocity and acceleration of the expansion are set to 0 to solve for the limit between expansion and contraction. At In[6] we choose our values for the matter Ωm and radiation Ωr. At In/Out[8] we evaluate the required dark energy ΩΛ and the scalefactor a when the equilibrium occurs and plot the functions at Out[11]. The plot values right of the vertical gridline belong to such values of a which are reached at no time t since at the maximal value of a, here a=4.33407, we get H=0 and dH/dt=0, which is an unstable equilibrium:

Bild

Spacetime diagrams of the universe above in proper distance r(t), comoving distance R(t) & conformal time R(η) coordinates. rH: Hubble radius (blue), rE: Event horizon (none), rP: Particle horizon (green), Orange curve: past light cone, Dashed orange: Future light cone, Dashed gray: Comoving world lines, R=r/a:

Bild

Bild

Bild

Bild

Bild

Bild

For spacetime diagrams of a closed big crunch universe with Ωr=2, Ωk=-1 see here. For the closed FLRW metric in hyperspherical und circumferencial coordinates see here. Spactime diagram code:

Code: Alles auswählen

   (* | Evolution of a closed FLRW Universe that reaches an unstable equilibrium | *)
   
   set = {"GlobalAdaptive", "MaxErrorIncreases"->100,
   Method->"GaussKronrodRule"};                                (* Integration Rule *)
   if[F_] := If[ΩΛ<=0, Nothing, If[ΩK>0, Nothing, F]]       (* Event Horizon Check *)
   n = 100;                                                     (* Recursion Depth *)
   int[f_, {x_, xmin_, xmax_}] :=                                      (* Integral *)
   NIntegrate[f, {x, xmin, xmax},
   Method->set, MaxRecursion->n, WorkingPrecision->wp];
   wp = MachinePrecision;                                     (* Working Precision *)
   im = 200;                                                         (* Image Size *)
   ηmax = 800; pmax = 800;                                           (* Plot Range *)
   amax = 4.334070910330731109143449787268;                (* Maximal Scale Factor *)
   tmax = 440 Gyr;                                            (* Integration Limit *)
   
   c = 299792458 m/sek;                                              (* Lightspeed *)
   G = 667384*^-16 m^3 kg^-1 sek^-2;                            (* Newton Constant *)
   Gyr = 10^7*36525*24*3600 sek;                                  (* Billion Years *)
   Glyr = Gyr*c;                                             (* Billion Lightyears *)
   Mpc = 30856775777948584200000 m;                                  (* Megaparsec *)
   ρc[H_] := 3H^2/8/π/G;                                       (* Critical Density *)
   ρΛ = ρc[H0] ΩΛ;                                          (* Dark Energy Density *)
   kg = m = sek = 1;                                                   (* SI Units *)
   
   ΩR = 3/10;                          (* Radiation Proportion including Neutrinos *)
   ΩM = 11/10;                          (* Matter Proportion including Dark Matter *)
   ΩΛ = 0.0073225878457081148392542953;                  (* Dark Energy Proportion *)
   ΩT = ΩR+ΩM+ΩΛ;                           (* Total Density over Critical Density *)
   ΩK = 1-ΩT;                                                 (* Curvature Density *)
   
   H0 = 67150 m/Mpc/sek;                                        (* Hubble Constant *)
   H[a_] := H0 Sqrt[ΩR/a^4+ΩM/a^3+ΩK/a^2+ΩΛ]                   (* Hubble Parameter *)
   
   sol = Quiet[NDSolve[{A'[t]/A[t] == H[A[t]], A[0] == 1*^-15},
   A, {t, 0, tmax},
   MaxSteps->∞, WorkingPrecision->wp]];
   
   â[t_] := Evaluate[(A[t]/.sol)[[1]]];                (* Scale Factor a by Time t *)
   a[t_] := If[t<tmax, â[t], amax];                    (* Scale Factor a by Time t *)
   т[a_] := int[1/A/H[A], {A, 0, a}];                  (* Time t by Scale Factor a *)
   rP[t_] := a[t] int[c/a[т], {т, 0, t}];          (* Proper Particle Horizon by t *)
   rp[a_] := a int[c/A^2/H[A], {A, 0, a}];         (* Proper Particle Horizon by a *)
   RP[t_] := int[c/a[т], {т, 0, t}];             (* Comoving Particle Horizon by t *)
   Rp[a_] := int[c/A^2/H[A], {A, 0, a}];         (* Comoving Particle Horizon by a *)
   rE[t_] := if[a[t] int[c/a[т], {т, t, ∞}]];         (* Proper Event Horizon by t *)
   re[a_] := if[a int[c/A^2/H[A], {A, a, ∞}]];        (* Proper Event Horizon by a *)
   RE[t_] := if[int[c/a[т], {т, t, ∞}]];            (* Comoving Event Horizon by t *)
   Rε[a_] := if[int[c/A^2/H[A], {A, a, ∞}]];        (* Comoving Event Horizon by a *)
   rL[t0_, t_] := a[t] int[c/a[т], {т, t, t0}];          (* Proper Light Cone by t *)
   rl[a0_, a_] := a int[c/A^2/H[A], {A, a, a0}];         (* Proper Light Cone by a *)
   RL[t0_, t_] := int[c/a[т], {т, t, t0}];             (* Comoving Light Cone by t *)
   Rl[a0_, a_] := int[c/A^2/H[A], {A, a, a0}];         (* Comoving Light Cone by a *)
   rH[t_] := c/H[a[t]];                               (* Proper Hubble Radius by t *)
   rh[a_] := c/H[a];                                  (* Proper Hubble Radius by a *)
   RH[t_] := c/H[a[t]]/a[t];                        (* Comoving Hubble Radius by t *)
   Rh[a_] := c/H[a]/a;                              (* Comoving Hubble Radius by a *)
   
   ã[η_] := Quiet[FindRoot[Rp[Ã]/Glyr-η,     (* Scale Factor a by Conformal Time η *)
   {Ã, 0.00001}, WorkingPrecision->wp, MaxIterations->1000][[1, 2]]];
   ā = Quiet[Interpolation[Join[{{0, 0}},
   ParallelTable[{((Sin[η π/ηmax-π/2]+1) ηmax/2),
   ã[((Sin[η π/ηmax-π/2]+1) ηmax/2)]}, {η, ηmax/im, ηmax, ηmax/im}]]]];
   
   Ť[η_] := Quiet[FindRoot[RP[τ Gyr]/Glyr-η,                          (* t by η *)
   {τ, 1}, WorkingPrecision->wp, MaxIterations->1000][[1, 2]]]
   (* ţ = Quiet[Interpolation[Join[{0, 0},
   ParallelTable[{((Sin[η π/ηmax-π/2]+1) ηmax/2),
   Ť[((Sin[η π/ηmax-π/2]+1) ηmax/2)]}, {η, ηmax/im, ηmax, ηmax/im}]]]]; *)
   
   rpN = rp[1]/Glyr;
   
   t0 = Re[t/.FindRoot[a[t]-1, {t, 10 Gyr}]]; ti = t Gyr; τi = τ Gyr;
   "t0"->t0/Gyr "Gyr"                                              (* Current Time *)
   
   "PROPER DISTANCES, f(t)"
   
   pt = Quiet[Plot[Evaluate[
   {rH[τi]/Glyr, rP[τi]/Glyr, rE[τi]/Glyr}],
   {τ, 0, pmax}, Frame->True, AspectRatio->1,
   FrameTicks->None, PlotRange->{{0, pmax}, {0, pmax}},
   PlotStyle->{{Thickness[0.005]},
   {Darker[Green], Thickness[0.005]}, {Purple, Thickness[0.005]}},
   ImageSize->im, Filling->Top, FillingStyle->Opacity[0.1], ImagePadding->1,
   GridLines->{{}, {}}]];
   
   plot1[t_] := Rasterize[Grid[{{Rotate[Quiet[Show[Plot[Evaluate[
   {rL[ti, τi]/Glyr, -rL[ti, τi]/Glyr}],
   {τ, 0, pmax}, Frame->True, AspectRatio->1,
   FrameTicks->None, PlotRange->{{0, pmax}, {0, pmax}},
   PlotStyle->{{Orange, Thickness[0.005]}, {{Orange, Thickness[0.005]}, Dashed}},
   ImageSize->im, Filling->Top, FillingStyle->Opacity[0.1], ImagePadding->1,
   GridLines->{{}, {}}], pt]], 90 Degree]}}]];
   
   Do[Print[plot1[t]], {t, {tmax/Gyr}}]
   
   plot2 = Rasterize[Grid[{{Rotate[Quiet[Plot[Evaluate[
   Join[{0}, Table[1/amax a[τ Gyr] n^4/250, {n, 4, 55, 1}]]],
   {τ, 0, pmax}, Frame->True, AspectRatio->1,
   FrameTicks->None, PlotRange->{{0, pmax}, {0, pmax}},
   PlotStyle->Table[{Dashing->Large, Thickness[0.005],
   Gray}, {n, 1, 100}], ImageSize->im, ImagePadding->1]], 90 Degree]}}]]
   
   "COMOVING DISTANCES, f(t)"
   
   ct = Quiet[Plot[Evaluate[
   {rH[τi]/(a[τi]Glyr), rP[τi]/(a[τi]Glyr), rE[τi]/(a[τi]Glyr)}],
   {τ, 0, pmax}, Frame->True, AspectRatio->1,
   FrameTicks->None, PlotRange->{{0, pmax}, {0, pmax}},
   PlotStyle->{{Thickness[0.005]},
   {Darker[Green], Thickness[0.005]}, {Purple, Thickness[0.005]}},
   ImageSize->im, Filling->Top, FillingStyle->Opacity[0.1], ImagePadding->1,
   GridLines->{{}, {}}]];
   
   plot3[t_] := Rasterize[Grid[{{Rotate[Quiet[Show[Plot[Evaluate[
   {rL[ti, τi]/(a[τi]Glyr), -rL[ti, τi]/(a[τi]Glyr)}],
   {τ, 0, pmax}, Frame->True, AspectRatio->1,
   FrameTicks->None, PlotRange->{{0, pmax}, {0, pmax}},
   PlotStyle->{{Orange, Thickness[0.005]}, {{Orange, Thickness[0.005]}, Dashed}},
   ImageSize->im, Filling->Top, FillingStyle->Opacity[0.1], ImagePadding->1,
   GridLines->{{}, {}}], ct]], 90 Degree]}}]];
   
   Do[Print[plot3[t]], {t, {tmax/Gyr}}]
   
   plot4 = Rasterize[Grid[{{Rotate[Quiet[Plot[Evaluate[
   Join[{0}, Table[n, {n, 100, pmax, 100}]]],
   {τ, 0, pmax}, Frame->True, AspectRatio->1,
   FrameTicks->None, PlotRange->{{0, pmax}, {0, pmax}},
   PlotStyle->Table[{Dashing->Large, Thickness[0.005],
   Gray}, {n, 1, 100}], ImageSize->im, ImagePadding->1]], 90 Degree]}}]]
   
   "COMOVING DISTANCES, f(η)"
   
   cη = Quiet[Plot[Evaluate[
   {Rh[ā[Ct]]/Glyr, Ct, Rε[ā[Ct]]/Glyr}],
   {Ct, 0, ηmax}, Frame->True, AspectRatio->1,
   FrameTicks->None, PlotRange->{{0, ηmax}, {0, pmax}},
   PlotStyle->{{Thickness[0.005]},
   {Darker[Green], Thickness[0.005]}, {Purple, Thickness[0.005]}},
   ImageSize->im, Filling->Top, FillingStyle->Opacity[0.1], ImagePadding->1,
   GridLines->{{}, {}}]];
   
   plot9[η_] := Rasterize[Grid[{{Rotate[Quiet[Show[Plot[Evaluate[
   {η-Ct, Ct-η}], {Ct, 0, ηmax},
   Frame->True, AspectRatio->1,
   FrameTicks->None, PlotRange->{{0, ηmax}, {0, pmax}},
   PlotStyle->{{Orange, Thickness[0.005]}, {{Orange, Thickness[0.005]}, Dashed}},
   ImageSize->im, Filling->Top, FillingStyle->Opacity[0.1], ImagePadding->1,
   GridLines->{{}, {}}], cη]], 90 Degree]}}]];
   
   Do[Print[plot9[η]], {η, {RP[tmax]/Glyr}}]
   
   plot10 = Rasterize[Grid[{{Rotate[Quiet[Plot[Evaluate[
   Join[{0}, Table[n, {n, 100, pmax, 100}]]],
   {Ct, 0, ηmax}, Frame->True, AspectRatio->1,
   FrameTicks->None, PlotRange->{{0, ηmax}, {0, pmax}},
   PlotStyle->Table[{Dashing->Large, Thickness[0.005],
   Gray}, {n, 1, 100}], ImageSize->im, ImagePadding->1]], 90 Degree]}}]]
Bild
by Simon Tyran, Vienna @ youtube || rumble || odysee || minds || wikipedia || stackexchange || License: CC-BY 4 ▣ If images don't load: [ctrl]+[F5]Bild

Zurück zu „Yukterez Notepad“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste