(* | 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[ä]
(* | 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
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]}}]]