(* |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| *) (* > raytracing.yukterez.net | 07.04.2018 - 29.04.2023 | Version 21 | Simon Tyran, Vienna *) (* |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| *) Pause[1] (* Boyer Lindquist Koordinaten *) wp = MachinePrecision; mt0 = Automatic; mt1 = {"StiffnessSwitching", Method-> {"ExplicitRungeKutta", Automatic}}; mta = mt0; (* mt0 für Geschwindigkeit, mt1 für Genauigkeit *) kernels = 6; (* Parallelisierung *) grain = 5; (* Subparallelisierung auf kernels*grain Streifen *) rsp = "Nearest"; (* Resampling *) breite = 240; (* Zielabmessungen in Pixeln *) hoehe = 120; (* Höhe sollte ein ganzzahliges Vielfaches von kernels*grain sein *) zoom = 1; (* doppelter Zoom ergibt halben Sichtwinkel *) LaunchKernels[kernels] wp = MachinePrecision; (* Genauigkeit *) st = 0.01; (* Auflösung des Gradienten *) pic1 = Import["http://www.yukterez.net/mw/1/flip70.png"]; (* Hintergrundpanorama laden *) pic2 = Import["http://www.yukterez.net/mw/1/worldmap.png"]; (* Sphärenoberfläche laden *) pic3 = Import["http://www.yukterez.net/mw/akkretionsscheibe.jpg"];(* Scheibentextur laden *) pic4 = Import["http://www.yukterez.net/mw/disk.png"]; (* Scheibengeometrie laden *) pic5 = Import["http://www.yukterez.net/mw/gradient1.png"]; (* Helligkeitsgradient laden *) pic6 = Import["http://www.yukterez.net/mw/gradient2.png"]; (* Farbgradient laden *) pic7 = Import["http://www.yukterez.net/mw/1/cl.png"]; (* Checkerboard laden *) (* |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| *) (* 1) Startbedingungen und Position des Beobachters ||||||||||||||||||||||||||||||||||||| *) (* |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| *) r0 = 10; (* Radialkoordinate des Beobachters *) R0 = 500; (* Radius des umspannenden Kugelschalenpanoramas *) R1 = Max[1, Re[1.0001 rA]]; (* Sphäre *) rT = 10; (* Lichtlaufzeit Synchronisation *) t0 = 0; (* Eigenzeit des Beobachters *) si = isco+0.1; (* Akkretionsscheibe Innenradius *) sr = 7; (* Akkretionsscheibe Außenradius *) θj = 10 π/180; (* Jet Winkeldurchmesser *) θ0 = 70 π/180; (* Breitengrad *) φ0 = 0; (* Längengrad *) tmax = -100 R0; (* zeitlicher Integrationsbereich *) a = 0.7; (* Spinparameter *) ℧ = 0.7; (* spezifische Ladung des schwarzen Lochs *) v0 = 1; (* Geschwindigkeit der Photonen *) q = 0; (* Ladung der Photonen *) vr = -vя; (* Radiale Geschwindigkeit des Beobachters *) vϑ = 0; (* Polare Geschwindigkeit des Beobachters *) vφ = 0; (* Azimutale Geschwindigkeit des Beobachters: 0 für ZAMO, -й0 für stationär *) vL = Sqrt[vr^2+vϑ^2+vφ^2]; hvs = 0; (* ArcSin[vφ/vL] *) (* horizontaler Versatz in Radianten *) vvs = 0; (* ArcSin[vϑ/vL] *) (* vertikaler Versatz in Radianten *) fmax = 2; fmin = 0; (* Doppler Frequenzbereich *) (* |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| *) (* 2) Bildreflektion |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| *) (* |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| *) fpt[{x_, y_}] := {If[y<0, x+1, x], If[y<0, -y, y]} pcr1 = ParallelTable[ ImageTransformation[pic1, fpt, DataRange->{{-1, 1}, {0, 1}}, PlotRange->{{-1, 1}, {-1+(x-1)/kernels, -1+x/kernels}}, Resampling->rsp, Padding->"Periodic"], {x, 1, 2 kernels}]; pct1 = ImageAssemble[Table[{pcr1[[x]]}, {x, 2 kernels, 1, -1}]]; pcr2 = ParallelTable[ ImageTransformation[pic2, fpt, DataRange->{{-1, 1}, {0, 1}}, PlotRange->{{-1, 1}, {-1+(x-1)/kernels, -1+x/kernels}}, Resampling->rsp, Padding->"Periodic"], {x, 1, 2 kernels}]; pct2 = ImageAssemble[Table[{pcr2[[x]]}, {x, 2 kernels, 1, -1}]]; pcr3 = ParallelTable[ ImageTransformation[pic7, fpt, DataRange->{{-1, 1}, {0, 1}}, PlotRange->{{-1, 1}, {-1+(x-1)/kernels, -1+x/kernels}}, Resampling->rsp, Padding->"Periodic"], {x, 1, 2 kernels}]; pct3 = ImageAssemble[Table[{pcr3[[x]]}, {x, 2 kernels, 1, -1}]]; (* |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| *) (* 3) Funktionen |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| *) (* |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| *) gtt = (2r0-℧^2)/Σ-1; grr = Σ/Δ; gθθ = Σ; gφφ = Χ/Σ Sin[θ0]^2; gtφ =-a (2r0-℧^2) Sin[θ0]^2/Σ; rA = 1+Sqrt[1-a^2-℧^2]; rE = 1+Sqrt[1-℧^2]; Σ = r0^2+a^2 Cos[θ0]^2; Δ = r0^2-2 r0+a^2+℧^2; Χ = (r0^2+a^2)^2-a^2 Sin[θ0]^2 Δ; Σs[rs_] := rs^2; Δs[rs_] := rs^2-2 rs+a^2+℧^2; Χs[rs_] := (rs^2+a^2)^2-a^2 Δs[rs]; κs[rs_] := a; Σj[rt_, θt_] := rt^2+a^2 Cos[θt]^2; Δj[rt_, θt_] := rt^2-2 rt+a^2+℧^2; Χj[rt_, θt_] := (rt^2+a^2)^2-a^2 Sin[θt]^2 Δj[rt, θt]; ωj[rt_, θt_] := (a(2 rt-℧^2))/Χj[rt, θt]; ωR1 = ωj[R1, π/2]; ς = Abs@Sqrt[Χ/Δ/Σ]; ςr[rs_] := Abs@Sqrt[Χs[rs]/Δs[rs]/Σs[rs]]; μ = If[Abs[N@v0]==1.0, 0, -1]; j[v_] := Sqrt[1-v^2]; Ы[rs_] := Sqrt[Χs[rs]/Σs[rs]]; ωs[rs_] := (a (2 rs - ℧^2))/Χs[rs]; ε[rs_, vt] := Sqrt[Δs[rs] Σs[rs]/Χs[rs]]/j[vt]+Lz[rs, vt] ωs[rs]; Lz[rs_, vt] := vt Ы[rs]/j[vt]; nq[x_] := If[NumericQ[x], If[Element[x, Reals], x, 0], 0]; rl[x_] := If[Abs[Im[x]]>Abs[Re[x]], 1, x] dΘF = Quiet[If[vL==0, 0, ArcCos[-vϑ/Sqrt[vr^2+vϑ^2+vφ^2]]]]; dθF = Quiet[If[vL==0, 0, If[vr>0, -dΘF, +dΘF]]]; dΦF = Quiet[If[vL==0, 0, ArcTan[Abs[vφ]/vr]]]; dφF = Quiet[If[vL==0, 0, If[vr!=0, -1, 1] If[vφ<0, +1, -1] If[NumericQ[dΦF], dΦF, π/2]]]; (* |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| *) (* 4) Geschwindigkeitskomponenten ||||||||||||||||||||||||||||||||||||||||||||||||||||||| *) (* |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| *) εj[rt_, δt_, δr_, δθ_, δφ_] := δt (1-(2 rt-℧^2)/rt^2)+(a δφ (2 rt-℧^2))/rt^2; vrj[rt_, δt_, δr_, δθ_, δφ_] := δr/Sqrt[Δj[rt, θt]] Sqrt[Σj[rt, π/2]]; vθj[rt_, δt_, δr_, δθ_, δφ_] := δθ Sqrt[Σj[rt, π/2]]; vφj[rt_, δt_, δr_, δθ_, δφ_] := (-(((a^2 Cos[(π/2)]^2+rt^2) (a^2+℧^2-2 rt+ rt^2) Sin[(π/2)] (-δφ- (a q ℧ rt)/((a^2 Cos[(π/2)]^2+rt^2) (a^2+℧^2-2 rt+rt^2))+ (εj[rt, δt, δr, δθ, δφ] Csc[(π/2)]^2 (a (-a^2-℧^2+2 rt-rt^2) Sin[(π/2)]^2+a (a^2+ rt^2) Sin[(π/2)]^2))/((a^2 Cos[(π/2)]^2+rt^2) (a^2+℧^2-2 rt+rt^2))+(a q ℧ rt (a^2+ ℧^2-2 rt+rt^2-a^2 Sin[(π/2)]^2))/((a^2 Cos[(π/2)]^2+rt^2)^2 (a^2+℧^2-2 rt+ rt^2))))/((a^2+℧^2-2 rt+rt^2-a^2 Sin[(π/2)]^2) Sqrt[((a^2+rt^2)^2- a^2 (a^2+℧^2-2 rt+rt^2) Sin[(π/2)]^2)/(a^2 Cos[(π/2)]^2+rt^2)]))); vtj[rt_, δt_, δr_, δθ_, δφ_] := Sqrt[vrj[rt, δt, δr, δθ, δφ]^2+ vθj[rt, δt, δr, δθ, δφ]^2+vφj[rt, δt, δr, δθ, δφ]^2]; vφt[rt_, δt_, δr_, δθ_, δφ_] := vφj[rt, δt, δr, δθ, δφ]/vtj[rt, δt, δr, δθ, δφ]; shf[rt_, δt_, δr_, δθ_, δφ_] := Abs[ς/ςr[rt] Sqrt[1-vs[rt]^2]/(1-vs[rt] vφt[rt, δt, δr, δθ, δφ])]; dφv[rt_, tt_] := tt φs[rt]/ts[rt]; vθ =-vϑ; θs = π/2; θi =-θ0+π; (* |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| *) (* 5) Photonensphäre und ISCO ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| *) (* |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| *) rp = ц/.Solve[4 a^2 (ц-℧^2)-(ц^2-3 ц+2 ℧^2)^2==0 && ц>=If[Element[rA, Reals], rA, 0], ц]; rP = 1.01 Min[rp]; Rp = 1.01 Max[rp]; isco = Quiet[Min[RI/.NSolve[0 == RI (6 RI-RI^2-9 ℧^2+3 a^2)+4 ℧^2 (℧^2-a^2)-8 a (RI- ℧^2)^(3/2) && RI>=If[Element[rA, Reals], rA, 0], RI]]]; {"r horizon" -> N@rA, "r ergosphere" -> N@rE, "r isco" -> N@isco, "r photon pro" -> N@Min[rp], "r photon ret" -> N@Max[rp], "r disk" -> N@sr, "r observer" -> N@r0, "θ observer" -> N@θ0 180/π} (* |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| *) (* 6) Geschwindigkeit und Zeitdilatation auf der Scheibe |||||||||||||||||||||||||||||||| *) (* |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| *) red[rs_] := Quiet[Reduce[ dt == (Lz[rs, vt] (-a (a^2+rs^2)+Δs[rs] κs[rs])+ε[rs, vt] ((a^2+rs^2)^2- Δs[rs] κs[rs]^2))/(Δs[rs] Σs[rs]) && 0 == ((a^2+(-2+rs) rs+℧^2) (16 a dt dΦ rs (rs-℧^2)+8 dt^2 rs (-rs+℧^2)+ dΦ^2 rs (8 rs (-a^2+rs^3)+a^2 (4 a^2+4 ℧^2-4 (a-℧) (a+℧)))))/(8 rs^6) && dΦ == (Lz[rs, vt] (-a^2+Δs[rs])+ε[rs, vt] (a (a^2+rs^2)-Δs[rs] κs[rs]))/(Δs[rs] Σs[rs]) && vt > 0, {vt, dΦ, dt}, Reals]]; vs = Interpolation[ParallelTable[{rr, If[Quiet@NumericQ[red[rr][[1, 2]]], red[rr][[1, 2]], 0]}, {rr, 0, sr, st}]]; φs = Interpolation[ParallelTable[{rr, If[Quiet@NumericQ[red[rr][[2, 2]]], red[rr][[2, 2]], 0]}, {rr, 0, sr, st}]]; ts = Interpolation[ParallelTable[{rr, If[Quiet@NumericQ[red[rr][[3, 2]]], red[rr][[3, 2]], 0]}, {rr, 0, sr, st}]]; "Akkretionsscheibe:" plot[func_, label_] := Plot[func, {rr, si, sr}, GridLines -> {{nq[Min[rp]], nq[Max[rp]], nq[rA], nq[si], nq[isco], nq[rE], nq[sr]}, {}}, Frame -> True, ImagePadding -> {{40, 12}, {12, 12}}, ImageSize -> 340, PlotLabel -> label, PlotRange->{{0, sr}, All}] Grid[{{ plot[Sqrt[Χs[rr]/Δs[rr]/Σs[rr]], "Gravitational time dilation: y=dt/dт, x=r"], plot[φs[rr]/ts[rr], "Shapirodelayed angular velocity: y=dφ/dt, x=r"]},{ plot[ts[rr], "Total time dilation: y=dt/dτ, x=r"], plot[φs[rr], "Coordinate speed: y=dφ/dτ, x=r"]}, { plot[(a (2 rr-℧^2))/((a^2+rr^2)^2-a^2 (a^2-2 rr+rr^2+℧^2)), "Frame Dragging: y=dφ/dт, x=r"], plot[vs[rr], "Local velocity: y=v=dl/dτ, x=r"]}}] (* |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| *) (* 7) Frame Dragging und Gammafaktor |||||||||||||||||||||||||||||||||||||||||||||||||||| *) (* |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| *) й0 = (a (2 r0-℧^2) Sin[θ0] Sqrt[((a^2+r0^2)^2-a^2 (a^2-2 r0+r0^2+℧^2) Sin[θ0]^2)/((a^2- 2 r0+r0^2+℧^2) (r0^2+a^2 Cos[θ0]^2))])/((r0^2+a^2 Cos[θ0]^2) Sqrt[((a^2+r0^2)^2-a^2 (a^2- 2 r0+r0^2+℧^2) Sin[θ0]^2)/(r0^2+a^2 Cos[θ0]^2)]); vя = Sqrt[((a^2+r0^2)(℧^2-2r0))/(a^2 Sin[θ0]^2(a^2+(r0-2)r0+℧^2)-(a^2+r0^2)^2)]; vR = Sqrt[(2 r0-℧^2)/(a^2+r0^2)]; U = {+vr, +vθ, +vφ}; γ = 1/Sqrt[1-Norm[U]^2]; (* |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| *) (* 8) Rotationsmatrix für die auf der Sichtebene eintreffenden Strahlen ||||||||||||||||| *) (* |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| *) Xyz[{x_, y_, z_}, α_] := {x Cos[α]-y Sin[α], x Sin[α]+y Cos[α], z}; xYz[{x_, y_, z_}, β_] := {x Cos[β]+z Sin[β], y, z Cos[β]-x Sin[β]}; xyZ[{x_, y_, z_}, ψ_] := {x, y Cos[ψ]-z Sin[ψ], y Sin[ψ]+z Cos[ψ]}; (* |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| *) (* 9) Raytracing Funktionscontainer ||||||||||||||||||||||||||||||||||||||||||||||||||||| *) (* |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| *) raytracer[{Ф_, ϑ_}] := Quiet[Module[{DGL, sol, εj, pθi, pr0, Q, k, V, W, vw, vr0i, vθ0i, vφ0i, vr0n, vθ0n, vφ0n, vr0a, vθia, vφ0a, vt0a, t10, r10, Θ10, Φ10, t, r, θ, φ, τ, т, т0, т1, т2, т3, т4, т5, plunge, plunge0, plunge1, plunge2, plunge3, plunge4, plunge5, plunge6, plunge7, plunge8, dθ0, dφ0, δφ0, δθ0, δr0, δt0, tt0, rt0, θt0, φt0, dθ1, dφ1, δφ1, δθ1, δr1, δt1, tt1, rt1, θt1, φt1, dθ2, dφ2, δφ2, δθ2, δr2, δt2, tt2, rt2, θt2, φt2, dθ3, dφ3, δφ3, δθ3, δr3, δt3, tt3, rt3, θt3, φt3, dθ4, dφ4, δφ4, δθ4, δr4, δt4, tt4, rt4, θt4, φt4, dθ5, dφ5, δφ5, δθ5, δr5, δt5, tt5, rt5, θt5, φt5, dθ6, dφ6, δφ6, δθ6, δr6, δt6, tt6, rt6, θt6, φt6, X, Y, Z, ξ, stepsize, laststep, mtl, ft, fτ, varb, ft0s, ft1s, ft2s, ft3s, ft4s, ft0v, ft1v, ft2v, ft3v, ft4v, ft5v, ft0f, ft1f, ft2f, ft3f, ft4f, ft5h, ft5b, ft5f, ft5x, ft5y, fjet, dt0y, dr0y, dθ0y, dφ0y, initcon, shF, rt8, θt8, φt8, δt8, δr8, δθ8, δφ8}, vw=xyZ[Xyz[{0, 1, 0}, ϑ], Ф+π/2]; (* Übersetzung des Einfallswinkels in den lokalen Tetrad *) vr0a = vw[[3]]; vφ0a = vw[[2]]; vθia = vw[[1]]; (* Betrag *) vt0a = Sqrt[vr0a^2+vφ0a^2+vθia^2]; (* Normierung *) vr0n = vr0a/vt0a; vφ0n = vφ0a/vt0a; vθ0n = vθia/vt0a; (* Relativistische Geschwindigkeitsaddition *) V={vr0n, vθ0n, vφ0n}; W=(U+V+γ/(1+γ)(U\[Cross](U\[Cross]V)))/(1+U.V); (* Aberration *) vr0i = W[[1]]; vθ0i = W[[2]]; vφ0i = W[[3]]; shF = Abs[If[vL==0, 1, Sqrt[1-vr^2-vϑ^2-vφ^2]/(1+vL (-Cos[If[vr>0, -dΘF, +dΘF]] Sin[ϑ]- Sin[If[vr>0, -dΘF, +dΘF]] (Cos[-Ф-π/2+If[vr>0, -1, +1] ArcSin[vφ/vL]] Cos[ϑ] Cos[1/2 π]- Cos[ϑ] Sin[-Ф-π/2+If[vr>0, -1, +1] ArcSin[vφ/vL]] Sin[1/2 π])))]]; initcon = TimeConstrained[NSolve[ dt0y == ς && vr0i == Sqrt[(a^2 Cos[θi]^2+r0^2)/(a^2+℧^2-2 r0+r0^2)] Sqrt[1-μ^2 v0^2] dr0y && vθ0i == Sqrt[a^2 Cos[θi]^2+r0^2] Sqrt[1-μ^2 v0^2] dθ0y && vφ0i == (Sin[θi]^2 Sqrt[1-μ^2 v0^2] (a q μ^2 ℧ r0 v0^2+a (℧^2- 2 r0) dt0y+((a^2+r0^2)^2-a^2 (a^2+℧^2- 2 r0+r0^2) Sin[θi]^2) dφ0y))/((a^2 Cos[θi]^2+r0^2) Sqrt[(Sin[θi]^2 ((a^2+ r0^2)^2-a^2 (a^2+℧^2-2 r0+r0^2) Sin[θi]^2))/(a^2 Cos[θi]^2+r0^2)]), {dt0y, dr0y, dθ0y, dφ0y}, Reals], 3]; DGL = If[NumericQ[dt0y /. initcon[[1]]] == False, {}, { (* Bewegungsgleichungen *) t''[τ] == Re[-(1/((a^2 Cos[θ[τ]]^2+r[τ]^2)^2))((q ℧ (a^2 Cos[θ[τ]]^2- r[τ]^2) (a^2+r[τ]^2) r'[τ])/(a^2+℧^2-2 r[τ]+r[τ]^2)-(2 (a^2 Cos[θ[τ]]^2+ ℧^2 r[τ]-r[τ]^2) (a^2+r[τ]^2) r'[τ] t'[τ])/(a^2+℧^2-2 r[τ]+r[τ]^2)+ a^2 q ℧ r[τ] Sin[2 θ[τ]] θ'[τ]+a^2 (℧^2-2 r[τ]) Sin[2 θ[τ]] t'[τ] θ'[τ]+ (a (2 a^4 Cos[θ[τ]]^2+a^2 ℧^2 (3+Cos[2 θ[τ]]) r[τ]-a^2 (3+Cos[2 θ[τ]]) r[τ]^2+ 4 ℧^2 r[τ]^3-6 r[τ]^4) Sin[θ[τ]]^2 r'[τ] φ'[τ])/(a^2+℧^2-2 r[τ]+r[τ]^2)- 2 a^3 Cos[θ[τ]] (℧^2-2 r[τ]) Sin[θ[τ]]^3 θ'[τ] φ'[τ])], t'[0] == dt0y/.initcon[[1]], t[0] == 0, r''[τ] == Re[-(1/(2 (a^2 Cos[θ[τ]]^2+r[τ]^2)^4))((2 (-a^2 Cos[θ[τ]]^2 (-1+r[τ])+(a^2+ ℧^2-r[τ]) r[τ]) (a^2 Cos[θ[τ]]^2+r[τ]^2)^3 r'[τ]^2)/(a^2+℧^2-2 r[τ]+r[τ]^2)+ q ℧ (a^2 Cos[θ[τ]]^2-r[τ]^2) (a^2+r[τ]^2) (a^2+2 ℧^2+a^2 Cos[2 θ[τ]]-4 r[τ]+ 2 r[τ]^2) t'[τ]-2 a^2 q ℧ (℧^2-2 r[τ]) (a^2 Cos[θ[τ]]^2-r[τ]^2) Sin[θ[τ]]^2 t'[τ]- 2 (a^2 Cos[θ[τ]]^2+℧^2 r[τ]-r[τ]^2) (a^2 Cos[θ[τ]]^2+r[τ]^2) (a^2+℧^2-2 r[τ]+ r[τ]^2) t'[τ]^2-4 a^2 Cos[θ[τ]] (a^2 Cos[θ[τ]]^2+r[τ]^2)^3 Sin[θ[τ]] r'[τ] θ'[τ]- 2 r[τ] (a^2 Cos[θ[τ]]^2+r[τ]^2)^3 (a^2+℧^2-2 r[τ]+r[τ]^2) θ'[τ]^2-2 a q ℧ (℧^2- 2 r[τ]) (a^2 Cos[θ[τ]]^2-r[τ]^2) (a^2+r[τ]^2) Sin[θ[τ]]^2 φ'[τ]+ 2 a q ℧ (a^2 Cos[θ[τ]]^2-r[τ]^2) (-(a^2+r[τ]^2)^2 Sin[θ[τ]]^2+a^2 (a^2+ ℧^2-2 r[τ]+r[τ]^2) Sin[θ[τ]]^4) φ'[τ]+4 a (a^2 Cos[θ[τ]]^2+(℧^2- r[τ]) r[τ]) (a^2 Cos[θ[τ]]^2+r[τ]^2) (a^2+℧^2-2 r[τ]+r[τ]^2) Sin[θ[τ]]^2 t'[τ] φ'[τ]+ 2 (a^2 Cos[θ[τ]]^2+r[τ]^2) (a^2+℧^2-2 r[τ]+r[τ]^2) Sin[θ[τ]]^2 (-r[τ] (-a^4+r[τ]^4+ a^2 (a^2+℧^2-r[τ]) Sin[θ[τ]]^2)+Cos[θ[τ]]^2 (-2 a^2 r[τ] (a^2+r[τ]^2)+a^4 (-1+ r[τ]) Sin[θ[τ]]^2)) φ'[τ]^2)], r'[0] == dr0y/.initcon[[1]], r[0] == r0, θ''[τ] == Re[-(1/(2 (a^2 Cos[θ[τ]]^2+r[τ]^2)^3))((a^2 (a^2 Cos[θ[τ]]^2+ r[τ]^2)^2 Sin[2 θ[τ]] r'[τ]^2)/(a^2+℧^2-2 r[τ]+r[τ]^2)+4 r[τ] (a^2 Cos[θ[τ]]^2+ r[τ]^2)^2 r'[τ] θ'[τ]-1/8 Sin[2 θ[τ]] (8 r[τ]^6 φ'[τ]^2+16 a r[τ]^3 φ'[τ] (q ℧- 2 t'[τ]+2 a Sin[θ[τ]]^2 φ'[τ])+8 a^2 r[τ]^4 (θ'[τ]^2+(2+Cos[2 θ[τ]]) φ'[τ]^2)+ a^2 (-8 ℧^2 t'[τ]^2+8 a^4 Cos[θ[τ]]^4 θ'[τ]^2+16 a ℧^2 t'[τ] φ'[τ]+a^2 (3 a^2- 5 ℧^2+4 (a^2+℧^2) Cos[2 θ[τ]]+(a^2+℧^2) Cos[4 θ[τ]]) φ'[τ]^2)+ r[τ]^2 (16 a^4 Cos[θ[τ]]^2 θ'[τ]^2+a φ'[τ] (16 ℧^2 t'[τ]+a (11 a^2- 8 ℧^2+4 (3 a^2+2 ℧^2) Cos[2 θ[τ]]+a^2 Cos[4 θ[τ]]) φ'[τ]))+ 8 a^2 r[τ] (2 t'[τ]^2-2 t'[τ] (q ℧+2 a φ'[τ])+a φ'[τ] (2 q ℧+ a (3+Cos[2 θ[τ]]) Sin[θ[τ]]^2 φ'[τ]))))], θ'[0] == dθ0y/.initcon[[1]], θ[0] == θi, φ''[τ] == Re[-(1/(4 (a^2 Cos[θ[τ]]^2+r[τ]^2)^2))((4 a q ℧ (a^2 Cos[θ[τ]]^2- r[τ]^2) r'[τ])/(a^2+℧^2-2 r[τ]+r[τ]^2)-(8 a (a^2 Cos[θ[τ]]^2+℧^2 r[τ]- r[τ]^2) r'[τ] t'[τ])/(a^2+℧^2-2 r[τ]+r[τ]^2)+8 a q ℧ Cot[θ[τ]] r[τ] θ'[τ]+ 8 a Cot[θ[τ]] (℧^2-2 r[τ]) t'[τ] θ'[τ]+(1/(a^2+℧^2-2 r[τ]+r[τ]^2))(a^2 (3 a^2+ 8 ℧^2+4 a^2 Cos[2 θ[τ]]+a^2 Cos[4 θ[τ]]) r[τ]-4 a^2 (3+Cos[2 θ[τ]]) r[τ]^2+ 8 (a^2+℧^2+a^2 Cos[2 θ[τ]]) r[τ]^3-16 r[τ]^4+8 r[τ]^5+ 2 a^4 Sin[2 θ[τ]]^2) r'[τ] φ'[τ]+Cot[θ[τ]] (a^2 (3 a^2-4 ℧^2+4 (a^2+ ℧^2) Cos[2 θ[τ]]+a^2 Cos[4 θ[τ]])+16 a^2 Cos[θ[τ]]^2 r[τ]^2+8 r[τ]^4+ 16 a^2 r[τ] Sin[θ[τ]]^2) θ'[τ] φ'[τ])], φ'[0] == dφ0y/.initcon[[1]], φ[0] == φ0, WhenEvent[Abs[r[τ]] == N[R0]||Abs[r[τ]]>R0 && NumericQ[plunge6] == False, (plunge6=τ) && (tt6=t[τ]) && (rt6=r[τ]) && (θt6=θ[τ]) && (φt6=φ[τ]); "StopIntegration"], WhenEvent[Abs[r[τ]] == N[R1] && NumericQ[plunge5] == False, (plunge5=τ) && (tt5=t[τ]) && (rt5=r[τ]) && (θt5=θ[τ]) && (φt5=φ[τ]); If[r0>R1, "StopIntegration"]], WhenEvent[Mod[180/π Re[θ[τ]], 180] == 90.0 && r[τ]>N[si] && r[τ]N[si] && r[τ]0 && τ < -0.05 && NumericQ[plunge1] == False, (plunge1=τ) && (tt1=t[τ]) && (rt1=r[τ]) && (θt1=θ[τ]) && (φt1=φ[τ]) && (δt1=t'[τ]) && (δr1=r'[τ]) && (δθ1=θ'[τ]) && (δφ1=φ'[τ])], WhenEvent[Mod[180/π Re[θ[τ]], 180] == 90.0 && r[τ]>N[si] && r[τ]N[si] && r[τ]0 && τ < plunge1-0.05 && NumericQ[plunge3] == False && NumericQ[plunge1] == True, (plunge3=τ) && (tt3=t[τ]) && (rt3=r[τ]) && (θt3=θ[τ]) && (φt3=φ[τ]) && (δt3=t'[τ]) && (δr3=r'[τ]) && (δθ3=θ'[τ]) && (δφ3=φ'[τ])], WhenEvent[Mod[180/π Re[θ[τ]], 180] == 90.0 && r[τ]>N[si] && r[τ] π-θj/2 && τ < -0.05 && NumericQ[plunge8] == False, (plunge8=τ) && (tt8=t[τ]) && (rt8=r[τ]) && (θt8=θ[τ]) && (φt8=φ[τ]) && (δt8=t'[τ]) && (δr8=r'[τ]) && (δθ8=θ'[τ]) && (δφ8=φ'[τ])] }]; (* Integrator *) sol = TimeConstrained[If[NumericQ[dt0y /. initcon[[1]]] == False, {}, NDSolve[DGL, {t, r, θ, φ}, {τ, 0, tmax}, WorkingPrecision-> wp, Method-> mta, MaxSteps-> Infinity, StepMonitor :> (laststep=plunge7; plunge7=τ; stepsize=plunge7-laststep;), Method->{"EventLocator", "Event" :> (If[stepsize<1*^-4, 0, 1])} ]], 10]; ft5h=If[NumericQ[plunge5], {φt5-π, θt5+π/2}, {0, -π/2}]; ft5b=If[NumericQ[plunge6], If[rt64 R0, {0, -π/2}, {φt6-π, θt6+π/2}]], {0, -π/2}]; ft5f={0, Min[fmax, ς shF]}; ft5x=If[NumericQ[plunge6], {0, 1}, {0, 0}]; ft5y=If[NumericQ[plunge5], {0, 1}, {0, 0}]; ft0s=If[NumericQ[plunge0], {φt0, rt0}, {π, sr}]; ft1s=If[NumericQ[plunge1], {φt1, rt1}, {π, sr}]; ft2s=If[NumericQ[plunge2], {φt2, rt2}, {π, sr}]; ft3s=If[NumericQ[plunge3], {φt3, rt3}, {π, sr}]; ft4s=If[NumericQ[plunge4], {φt4, rt4}, {π, sr}]; ft0v=If[NumericQ[plunge0], {-dφv[rt0, tt0+t0+rT], 0}, {0, 0}]; ft1v=If[NumericQ[plunge1], {-dφv[rt1, tt1+t0+rT], 0}, {0, 0}]; ft2v=If[NumericQ[plunge2], {-dφv[rt2, tt2+t0+rT], 0}, {0, 0}]; ft3v=If[NumericQ[plunge3], {-dφv[rt3, tt3+t0+rT], 0}, {0, 0}]; ft4v=If[NumericQ[plunge4], {-dφv[rt4, tt4+t0+rT], 0}, {0, 0}]; ft5v=If[NumericQ[plunge5], {-(tt5+t0+rT) ωR1, 0}, {0, 0}]; ft0f=If[NumericQ[plunge0], {0, Min[fmax, shF shf[rt0, δt0, δr0, δθ0, δφ0]]}, {0, 0}]; ft1f=If[NumericQ[plunge1], {0, Min[fmax, shF shf[rt1, δt1, δr1, δθ1, δφ1]]}, {0, 0}]; ft2f=If[NumericQ[plunge2], {0, Min[fmax, shF shf[rt2, δt2, δr2, δθ2, δφ2]]}, {0, 0}]; ft3f=If[NumericQ[plunge3], {0, Min[fmax, shF shf[rt3, δt3, δr3, δθ3, δφ3]]}, {0, 0}]; ft4f=If[NumericQ[plunge4], {0, Min[fmax, shF shf[rt4, δt4, δr4, δθ4, δφ4]]}, {0, 0}]; fjet=If[NumericQ[plunge8], {0, 1}, {0, 0}]; { ft0s, ft1s, ft2s, ft3s, ft4s, ft0s+ft0v, ft1s+ft1v, ft2s+ft2v, ft3s+ft3v, ft4s+ft4v, ft0f, ft1f, ft2f, ft3f, ft4f, ft5h+ft5v, ft5b, ft5f, ft5x, ft5y, fjet, Fjet }]]; (* |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| *) (* 10) Memoryfunktion ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| *) (* |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| *) mem : raytrace[{Ф_, ϑ_}] := mem = Quiet[Re[raytracer[{Ф, ϑ}]]]; ray01[{Ф_, ϑ_}] := raytrace[{Ф, ϑ}][[01]]; ray02[{Ф_, ϑ_}] := raytrace[{Ф, ϑ}][[02]]; ray03[{Ф_, ϑ_}] := raytrace[{Ф, ϑ}][[03]]; ray04[{Ф_, ϑ_}] := raytrace[{Ф, ϑ}][[04]]; ray05[{Ф_, ϑ_}] := raytrace[{Ф, ϑ}][[05]]; ray06[{Ф_, ϑ_}] := raytrace[{Ф, ϑ}][[06]]; ray07[{Ф_, ϑ_}] := raytrace[{Ф, ϑ}][[07]]; ray08[{Ф_, ϑ_}] := raytrace[{Ф, ϑ}][[08]]; ray09[{Ф_, ϑ_}] := raytrace[{Ф, ϑ}][[09]]; ray10[{Ф_, ϑ_}] := raytrace[{Ф, ϑ}][[10]]; ray11[{Ф_, ϑ_}] := raytrace[{Ф, ϑ}][[11]]; ray12[{Ф_, ϑ_}] := raytrace[{Ф, ϑ}][[12]]; ray13[{Ф_, ϑ_}] := raytrace[{Ф, ϑ}][[13]]; ray14[{Ф_, ϑ_}] := raytrace[{Ф, ϑ}][[14]]; ray15[{Ф_, ϑ_}] := raytrace[{Ф, ϑ}][[15]]; ray16[{Ф_, ϑ_}] := raytrace[{Ф, ϑ}][[16]]; ray17[{Ф_, ϑ_}] := raytrace[{Ф, ϑ}][[17]]; ray18[{Ф_, ϑ_}] := raytrace[{Ф, ϑ}][[18]]; ray19[{Ф_, ϑ_}] := raytrace[{Ф, ϑ}][[19]]; ray20[{Ф_, ϑ_}] := raytrace[{Ф, ϑ}][[20]]; ray21[{Ф_, ϑ_}] := raytrace[{Ф, ϑ}][[21]]; ray22[{Ф_, ϑ_}] := raytrace[{Ф, ϑ}][[22]]; (* |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| *) (* 11) Proportionen ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| *) (* |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| *) width1 = ImageDimensions[pic1][[1]]; height1 = ImageDimensions[pic1][[2]]; width2 = ImageDimensions[pic2][[1]]; height2 = ImageDimensions[pic2][[2]]; width3 = ImageDimensions[pic3][[1]]; height3 = ImageDimensions[pic3][[2]]; width4 = ImageDimensions[pic4][[1]]; height4 = ImageDimensions[pic4][[2]]; width5 = ImageDimensions[pic5][[1]]; height5 = ImageDimensions[pic5][[2]]; width6 = ImageDimensions[pic7][[1]]; height6 = ImageDimensions[pic7][[2]]; hzoom = If[breite>2 hoehe, 1/zoom, 1/zoom/2/hoehe*breite]; vzoom = If[breite>2 hoehe, 1/zoom*2 hoehe/breite, 1/zoom]; "Geschätzte Rechenzeit" -> 1.2 (AbsoluteTiming[Do[raytracer[{ RandomReal[{-π, π}]/zoom, RandomReal[{-π/2, π/2}]/zoom }], {ü, 1, 50}]][[1]])/50*hoehe*breite/kernels/60 "Minuten" FOV->{360.0 hzoom "degree", 180.0 vzoom "degree"} (* |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| *) (* 12) Output ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| *) (* |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| *) img = ParallelTable[{ (* 1 Hintergrundpanorama *) Quiet@ImageTransformation[pct1, ray17, {breite, Ceiling[hoehe/kernels/grain]}, DataRange->{ {-π, π-2π/width1}, {-π/2, 3π/2} }, PlotRange->{ {-π+hvs/hzoom, π+hvs/hzoom} hzoom, {-π/2+x+vvs/vzoom, -π/2+x+vvs/vzoom+π/kernels/grain} vzoom }, Resampling->rsp, Padding->"Periodic"], (* 2 Sphäre *) Quiet@ImageTransformation[pct2, ray16, {breite, Ceiling[hoehe/kernels/grain]}, DataRange->{ {-3π/2, π/2-2π/width2}, {-π/2, 3π/2} }, PlotRange->{ {-π+hvs/hzoom, π+hvs/hzoom} hzoom, {-π/2+x+vvs/vzoom, -π/2+x+π/kernels/grain+vvs/vzoom} vzoom }, Resampling->rsp, Padding->"Periodic"], (* 3 Scheibe Textur komplett *) Quiet@ImageTransformation[pic3, ray01, {breite, Ceiling[hoehe/kernels/grain]}, DataRange->{ {0, 2π-2π/width3}, {si, sr+(sr-si)/height3} }, PlotRange->{ {-π+hvs/hzoom, π+hvs/hzoom} hzoom, {-π/2+vvs/vzoom+x, -π/2+vvs/vzoom+x+π/kernels/grain} vzoom }, Resampling->rsp, Padding->"Periodic"], (* 4 Scheibe Textur Front *) Quiet@ImageTransformation[pic3, ray02, {breite, Ceiling[hoehe/kernels/grain]}, DataRange->{ {0, 2π-2π/width3}, {si, sr+(sr-si)/height3} }, PlotRange->{ {-π+hvs/hzoom, π+hvs/hzoom} hzoom, {-π/2+vvs/vzoom+x, -π/2+vvs/vzoom+x+π/kernels/grain} vzoom }, Resampling->rsp, Padding->"Periodic"], (* 5 Scheibe Textur Echo 1 *) Quiet@ImageTransformation[pic3, ray03, {breite, Ceiling[hoehe/kernels/grain]}, DataRange->{ {0, 2π-2π/width3}, {si, sr+(sr-si)/height3} }, PlotRange->{ {-π+hvs/hzoom, π+hvs/hzoom} hzoom, {-π/2+vvs/vzoom+x, -π/2+vvs/vzoom+x+π/kernels/grain} vzoom }, Resampling->rsp, Padding->"Periodic"], (* 6 Scheibe Textur Echo 2 *) Quiet@ImageTransformation[pic3, ray04, {breite, Ceiling[hoehe/kernels/grain]}, DataRange->{ {0, 2π-2π/width3}, {si, sr+(sr-si)/height3} }, PlotRange->{ {-π+hvs/hzoom, π+hvs/hzoom} hzoom, {-π/2+vvs/vzoom+x, -π/2+vvs/vzoom+x+π/kernels/grain} vzoom }, Resampling->rsp, Padding->"Periodic"], (* 7 Scheibe Textur Echo 3 *) Quiet@ImageTransformation[pic3, ray05, {breite, Ceiling[hoehe/kernels/grain]}, DataRange->{ {0, 2π-2π/width3}, {si, sr+(sr-si)/height3} }, PlotRange->{ {-π+hvs/hzoom, π+hvs/hzoom} hzoom, {-π/2+vvs/vzoom+x, -π/2+vvs/vzoom+x+π/kernels/grain} vzoom }, Resampling->rsp, Padding->"Periodic"], (* 8 Scheibe Geometrie still komplett *) Quiet@ImageTransformation[pic4, ray01, {breite, Ceiling[hoehe/kernels/grain]}, DataRange->{ {0, 2π-2π/width4}, {si, sr} }, PlotRange->{ {-π+hvs/hzoom, π+hvs/hzoom} hzoom, {-π/2+vvs/vzoom+x, -π/2+vvs/vzoom+x+π/kernels/grain} vzoom }, Resampling->rsp, Padding->"Periodic"], (* 9 Scheibe Geometrie still Front *) Quiet@ImageTransformation[pic4, ray02, {breite, Ceiling[hoehe/kernels/grain]}, DataRange->{ {0, 2π-2π/width4}, {si, sr} }, PlotRange->{ {-π+hvs/hzoom, π+hvs/hzoom} hzoom, {-π/2+vvs/vzoom+x, -π/2+vvs/vzoom+x+π/kernels/grain} vzoom }, Resampling->rsp, Padding->"Periodic"], (* 10 Scheibe Geometrie still Echo 1 *) Quiet@ImageTransformation[pic4, ray03, {breite, Ceiling[hoehe/kernels/grain]}, DataRange->{ {0, 2π-2π/width4}, {si, sr} }, PlotRange->{ {-π+hvs/hzoom, π+hvs/hzoom} hzoom, {-π/2+vvs/vzoom+x, -π/2+vvs/vzoom+x+π/kernels/grain} vzoom }, Resampling->rsp, Padding->"Periodic"], (* 11 Scheibe Geometrie still Echo 2 *) Quiet@ImageTransformation[pic4, ray04, {breite, Ceiling[hoehe/kernels/grain]}, DataRange->{ {0, 2π-2π/width4}, {si, sr} }, PlotRange->{ {-π+hvs/hzoom, π+hvs/hzoom} hzoom, {-π/2+vvs/vzoom+x, -π/2+vvs/vzoom+x+π/kernels/grain} vzoom }, Resampling->rsp, Padding->"Periodic"], (* 12 Scheibe Geometrie still Echo 3 *) Quiet@ImageTransformation[pic4, ray05, {breite, Ceiling[hoehe/kernels/grain]}, DataRange->{ {0, 2π-2π/width4}, {si, sr} }, PlotRange->{ {-π+hvs/hzoom, π+hvs/hzoom} hzoom, {-π/2+vvs/vzoom+x, -π/2+vvs/vzoom+x+π/kernels/grain} vzoom }, Resampling->rsp, Padding->"Periodic"], (* 13 Scheibe Geometrie rotierend komplett *) Quiet@ImageTransformation[pic4, ray06, {breite, Ceiling[hoehe/kernels/grain]}, DataRange->{ {0, 2π-2π/width4}, {si, sr} }, PlotRange->{ {-π+hvs/hzoom, π+hvs/hzoom} hzoom, {-π/2+vvs/vzoom+x, -π/2+vvs/vzoom+x+π/kernels/grain} vzoom }, Resampling->rsp, Padding->"Periodic"], (* 14 Scheibe Geometrie rotierend Front *) Quiet@ImageTransformation[pic4, ray07, {breite, Ceiling[hoehe/kernels/grain]}, DataRange->{ {0, 2π-2π/width4}, {si, sr} }, PlotRange->{ {-π+hvs/hzoom, π+hvs/hzoom} hzoom, {-π/2+vvs/vzoom+x, -π/2+vvs/vzoom+x+π/kernels/grain} vzoom }, Resampling->rsp, Padding->"Periodic"], (* 15 Scheibe Geometrie rotierend Echo 1 *) Quiet@ImageTransformation[pic4, ray08, {breite, Ceiling[hoehe/kernels/grain]}, DataRange->{ {0, 2π-2π/width4}, {si, sr} }, PlotRange->{ {-π+hvs/hzoom, π+hvs/hzoom} hzoom, {-π/2+vvs/vzoom+x, -π/2+vvs/vzoom+x+π/kernels/grain} vzoom }, Resampling->rsp, Padding->"Periodic"], (* 16 Scheibe Geometrie rotierend Echo 2 *) Quiet@ImageTransformation[pic4, ray09, {breite, Ceiling[hoehe/kernels/grain]}, DataRange->{ {0, 2π-2π/width4}, {si, sr} }, PlotRange->{ {-π+hvs/hzoom, π+hvs/hzoom} hzoom, {-π/2+vvs/vzoom+x, -π/2+vvs/vzoom+x+π/kernels/grain} vzoom }, Resampling->rsp, Padding->"Periodic"], (* 17 Scheibe Geometrie rotierend Echo 3 *) Quiet@ImageTransformation[pic4, ray10, {breite, Ceiling[hoehe/kernels/grain]}, DataRange->{ {0, 2π-2π/width4}, {si, sr} }, PlotRange->{ {-π+hvs/hzoom, π+hvs/hzoom} hzoom, {-π/2+vvs/vzoom+x, -π/2+vvs/vzoom+x+π/kernels/grain} vzoom }, Resampling->rsp, Padding->"Periodic"], (* 18 Frequenzverschiebung komplett SW *) Quiet@ImageTransformation[pic5, ray11, {breite, Ceiling[hoehe/kernels/grain]}, DataRange->{ {-1, 1}, {fmin, fmax} }, PlotRange->{ {-π+hvs/hzoom, π+hvs/hzoom} hzoom, {-π/2+vvs/vzoom+x, -π/2+vvs/vzoom+x+π/kernels/grain} vzoom }, Resampling->rsp, Padding->"Fixed"], (* 19 Frequenzverschiebung Front SW *) Quiet@ImageTransformation[pic5, ray12, {breite, Ceiling[hoehe/kernels/grain]}, DataRange->{ {0, 2π}, {fmin, fmax} }, PlotRange->{ {-π+hvs/hzoom, π+hvs/hzoom} hzoom, {-π/2+vvs/vzoom+x, -π/2+vvs/vzoom+x+π/kernels/grain} vzoom }, Resampling->rsp, Padding->"Fixed"], (* 20 Frequenzverschiebung Echo 1 SW *) Quiet@ImageTransformation[pic5, ray13, {breite, Ceiling[hoehe/kernels/grain]}, DataRange->{ {0, 2π}, {fmin, fmax} }, PlotRange->{ {-π+hvs/hzoom, π+hvs/hzoom} hzoom, {-π/2+vvs/vzoom+x, -π/2+vvs/vzoom+x+π/kernels/grain} vzoom }, Resampling->rsp, Padding->"Fixed"], (* 21 Frequenzverschiebung Echo 2 SW *) Quiet@ImageTransformation[pic5, ray14, {breite, Ceiling[hoehe/kernels/grain]}, DataRange->{ {0, 2π}, {fmin, fmax} }, PlotRange->{ {-π+hvs/hzoom, π+hvs/hzoom} hzoom, {-π/2+vvs/vzoom+x, -π/2+vvs/vzoom+x+π/kernels/grain} vzoom }, Resampling->rsp, Padding->"Fixed"], (* 22 Frequenzverschiebung Echo 3 SW *) Quiet@ImageTransformation[pic5, ray15, {breite, Ceiling[hoehe/kernels/grain]}, DataRange->{ {0, 2π}, {fmin, fmax} }, PlotRange->{ {-π+hvs/hzoom, π+hvs/hzoom} hzoom, {-π/2+vvs/vzoom+x, -π/2+vvs/vzoom+x+π/kernels/grain} vzoom }, Resampling->rsp, Padding->"Fixed"], (* 23 Frequenzverschiebung komplett Farbe *) Quiet@ImageTransformation[pic6, ray11, {breite, Ceiling[hoehe/kernels/grain]}, DataRange->{ {0, 2π}, {fmin, fmax} }, PlotRange->{ {-π+hvs/hzoom, π+hvs/hzoom} hzoom, {-π/2+vvs/vzoom+x, -π/2+vvs/vzoom+x+π/kernels/grain} vzoom }, Resampling->rsp, Padding->"Fixed"], (* 24 Frequenzverschiebung Front Farbe *) Quiet@ImageTransformation[pic6, ray12, {breite, Ceiling[hoehe/kernels/grain]}, DataRange->{ {0, 2π}, {fmin, fmax} }, PlotRange->{ {-π+hvs/hzoom, π+hvs/hzoom} hzoom, {-π/2+vvs/vzoom+x, -π/2+vvs/vzoom+x+π/kernels/grain} vzoom }, Resampling->rsp, Padding->"Fixed"], (* 25 Frequenzverschiebung Echo 1 Farbe *) Quiet@ImageTransformation[pic6, ray13, {breite, Ceiling[hoehe/kernels/grain]}, DataRange->{ {0, 2π}, {fmin, fmax} }, PlotRange->{ {-π+hvs/hzoom, π+hvs/hzoom} hzoom, {-π/2+vvs/vzoom+x, -π/2+vvs/vzoom+x+π/kernels/grain} vzoom }, Resampling->rsp, Padding->"Fixed"], (* 26 Frequenzverschiebung Echo 2 Farbe *) Quiet@ImageTransformation[pic6, ray14, {breite, Ceiling[hoehe/kernels/grain]}, DataRange->{ {0, 2π}, {fmin, fmax} }, PlotRange->{ {-π+hvs/hzoom, π+hvs/hzoom} hzoom, {-π/2+vvs/vzoom+x, -π/2+vvs/vzoom+x+π/kernels/grain} vzoom }, Resampling->rsp, Padding->"Fixed"], (* 27 Frequenzverschiebung Echo 3 Farbe *) Quiet@ImageTransformation[pic6, ray15, {breite, Ceiling[hoehe/kernels/grain]}, DataRange->{ {0, 2π}, {fmin, fmax} }, PlotRange->{ {-π+hvs/hzoom, π+hvs/hzoom} hzoom, {-π/2+vvs/vzoom+x, -π/2+vvs/vzoom+x+π/kernels/grain} vzoom }, Resampling->rsp, Padding->"Fixed"], (* 28 Hintergrundpanorama *) ImageTransformation[pct3, ray17, {breite, Ceiling[hoehe/kernels/grain]}, DataRange->{ {-π, π-2π/width6}, {-π/2, 3π/2} }, PlotRange->{ {-π+hvs/hzoom, π+hvs/hzoom} hzoom, {-π/2+x+vvs/vzoom, -π/2+x+vvs/vzoom+π/kernels/grain} vzoom }, Resampling->rsp, Padding->"Periodic"], (* 29 Sphäre *) ImageTransformation[pct3, ray16, {breite, Ceiling[hoehe/kernels/grain]}, DataRange->{ {-π, π-2π/width6}, {-π/2, 3π/2} }, PlotRange->{ {-π+hvs/hzoom, π+hvs/hzoom} hzoom, {-π/2+x+vvs/vzoom, -π/2+x+π/kernels/grain+vvs/vzoom} vzoom }, Resampling->rsp, Padding->"Periodic"], (* 30 Scheibe Textur komplett *) ImageTransformation[pic7, ray01, {breite, Ceiling[hoehe/kernels/grain]}, DataRange->{ {0, 2π-2π/width6}, {si, sr+(sr-si)/height6} }, PlotRange->{ {-π+hvs/hzoom, π+hvs/hzoom} hzoom, {-π/2+vvs/vzoom+x, -π/2+vvs/vzoom+x+π/kernels/grain} vzoom }, Resampling->rsp, Padding->"Periodic"], (* 31 Frequenzverschiebung Hintergrund Farbe *) Quiet@ImageTransformation[pic6, ray18, {breite, Ceiling[hoehe/kernels/grain]}, DataRange->{ {0, 2π}, {fmin, fmax} }, PlotRange->{ {-π+hvs/hzoom, π+hvs/hzoom} hzoom, {-π/2+vvs/vzoom+x, -π/2+vvs/vzoom+x+π/kernels/grain} vzoom }, Resampling->rsp, Padding->"Fixed"], (* 32 Frequenzverschiebung Hintergrund SW *) Quiet@ImageTransformation[pic5, ray18, {breite, Ceiling[hoehe/kernels/grain]}, DataRange->{ {0, 2π}, {fmin, fmax} }, PlotRange->{ {-π+hvs/hzoom, π+hvs/hzoom} hzoom, {-π/2+vvs/vzoom+x, -π/2+vvs/vzoom+x+π/kernels/grain} vzoom }, Resampling->rsp, Padding->"Fixed"], (* 33 Kontur BH *) Quiet@ImageTransformation[pic5, ray19, {breite, Ceiling[hoehe/kernels/grain]}, DataRange->{ {0, 2π}, {0, 1} }, PlotRange->{ {-π+hvs/hzoom, π+hvs/hzoom} hzoom, {-π/2+vvs/vzoom+x, -π/2+vvs/vzoom+x+π/kernels/grain} vzoom }, Resampling->rsp, Padding->"Fixed"], (* 34 Kontur IH *) Quiet@ImageTransformation[pic5, ray20, {breite, Ceiling[hoehe/kernels/grain]}, DataRange->{ {0, 2π}, {0, 1} }, PlotRange->{ {-π+hvs/hzoom, π+hvs/hzoom} hzoom, {-π/2+vvs/vzoom+x, -π/2+vvs/vzoom+x+π/kernels/grain} vzoom }, Resampling->rsp, Padding->"Fixed"], (* 35 Jet 1 *) Quiet@ImageTransformation[pic5, ray21, {breite, Ceiling[hoehe/kernels/grain]}, DataRange->{ {0, 2π}, {0, 1} }, PlotRange->{ {-π+hvs/hzoom, π+hvs/hzoom} hzoom, {-π/2+vvs/vzoom+x, -π/2+vvs/vzoom+x+π/kernels/grain} vzoom }, Resampling->rsp, Padding->"Fixed"], (* 36 Jet 2 *) Quiet@ImageTransformation[pic5, ray21, {breite, Ceiling[hoehe/kernels/grain]}, DataRange->{ {0, 2π}, {0, 1} }, PlotRange->{ {-π+hvs/hzoom, π+hvs/hzoom} hzoom, {-π/2+vvs/vzoom+x, -π/2+vvs/vzoom+x+π/kernels/grain} vzoom }, Resampling->rsp, Padding->"Fixed"] }, {x, 0, π-π/kernels/grain, π/kernels/grain}]; image[num_] := ImageAssemble[Table[{img[[x, num]]}, {x, kernels grain, 1, -1}]]; fi[x_] := ColorNegate[x]; (* |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| *) (* 13) Composite |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| *) (* |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| *) ParallelTable[image[n], {n, 1, 35, 1}] ds1 = image[8] ds2 = ImageMultiply[fi@image[09], fi@image[10]]; ds3 = ImageMultiply[fi@image[11], fi@image[12]]; ds4 = fi@ImageMultiply[ds2, ds3] ds5 = image[13] ds6 = ImageMultiply[fi@image[14], fi@image[15]]; ds7 = ImageMultiply[fi@image[16], fi@image[17]]; ds8 = fi@ImageMultiply[ds6, ds7] bf1 = image[31] bf2 = image[32] bf3 = image[33] bf4 = image[34] bl1 = image[23] bl2 = ImageMultiply[fi@image[24], fi@image[25]]; bl3 = ImageMultiply[fi@image[26], fi@image[27]]; bl4 = fi@ImageMultiply[bl2, bl3] gr1 = image[18] gr2 = ImageMultiply[fi@image[19], fi@image[20]]; gr3 = ImageMultiply[fi@image[21], fi@image[22]]; gr4 = fi@ImageMultiply[gr2, gr3] sea = ImageMultiply[image[04], image[19]]; seb = ImageMultiply[image[05], image[20]]; sec = ImageMultiply[image[06], image[21]]; sed = ImageMultiply[image[07], image[22]]; se1 = image[03] se2 = ImageMultiply[fi@image[04], fi@image[05]]; se3 = ImageMultiply[fi@image[06], fi@image[07]]; se4 = fi@ImageMultiply[se2, se3] se5 = ImageMultiply[fi@sea, fi@seb]; se6 = ImageMultiply[fi@sec, fi@sed]; se7 = fi@ImageMultiply[se5, se6] se8 = fi@ImageMultiply[fi@se7, fi@se7] se9 = fi@ImageMultiply[fi@se8, fi@se7] bkg = image[1] hrz = image[2] cb1 = image[28] cb2 = image[29] cb3 = image[30] jet = image[35] Quit[] (* |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| *) (* 14) Alternative initcon dt/dτ falls Partikel statt Photonen verwendet werden ||||||||| *) (* |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| *) (* initcon = NSolve[ -μ == -(((r0^2+a^2 Cos[θ0]^2) dr0y^2)/(a^2-2 r0+r0^2+℧^2))+((a^2-2 r0+ r0^2+℧^2-a^2 Sin[θ0]^2) (dt0y)^2)/(r0^2+a^2 Cos[θ0]^2)+(-r0^2- a^2 Cos[θ0]^2) dθ0y^2+(2 a (2 r0-℧^2) Sin[θ0]^2 dt0y dφ0y)/(r0^2+ a^2 Cos[θ0]^2)+((-(a^2+r0^2)^2 Sin[θ0]^2+a^2 (a^2-2 r0+r0^2+ ℧^2) Sin[θ0]^4) dφ0y^2)/(r0^2+a^2 Cos[θ0]^2) && dt0y > 0 && vr0i == Sqrt[(a^2 Cos[θi]^2+r0^2)/(a^2+℧^2-2 r0+r0^2)] Sqrt[1-μ^2 v0^2] dr0y && vθ0i == Sqrt[a^2 Cos[θi]^2+r0^2] Sqrt[1-μ^2 v0^2] dθ0y && vφ0i == (Sin[θi]^2 Sqrt[1-μ^2 v0^2] (a q μ^2 ℧ r0 v0^2+a (℧^2- 2 r0) dt0y+((a^2+r0^2)^2-a^2 (a^2+℧^2- 2 r0+r0^2) Sin[θi]^2) dφ0y))/((a^2 Cos[θi]^2+r0^2) Sqrt[(Sin[θi]^2 ((a^2+ r0^2)^2-a^2 (a^2+℧^2-2 r0+r0^2) Sin[θi]^2))/(a^2 Cos[θi]^2+r0^2)]), {dt0y, dr0y, dθ0y, dφ0y}, Reals]; *)