Zum Inhalt springen

Datei:Multiple Scattering.gif

Seiteninhalte werden in anderen Sprachen nicht unterstützt.
Zur Beschreibungsseite auf Commons
aus Wikipedia, der freien Enzyklopädie

Multiple_Scattering.gif (609 × 336 Pixel, Dateigröße: 4,21 MB, MIME-Typ: image/gif, Endlosschleife, 131 Bilder, 13 s)

Diese Datei und die Informationen unter dem roten Trennstrich werden aus dem zentralen Medienarchiv Wikimedia Commons eingebunden.

Zur Beschreibungsseite auf Commons


Beschreibung

Beschreibung
English: A pulse of light scrambled by a random collection of scatterers.
Datum
Quelle https://twitter.com/j_bertolotti/status/1460637298035503109
Urheber Jacopo Bertolotti
Genehmigung
(Weiternutzung dieser Datei)
https://twitter.com/j_bertolotti/status/1030470604418428929

Mathematica 12.0 code

c = 1; (*speed of light*)
\[Omega]min = 1.; \[Omega]max = 5.;
\[Omega]0 = Mean[{\[Omega]min, \[Omega]max}]; \[Sigma]0 = (\[Omega]max - \[Omega]min)/10;
amplitude[w_] := E^(-(1/(2 \[Sigma]0^2)) ((w - \[Omega]0)^2) );

k0 = N[\[Omega]0/c];  \[Lambda]0 = N[(2 \[Pi])/k0]; d = \[Lambda]0/2; (*typical scale of the absorbing layer*)
\[Delta] = \[Lambda]0/10; \[CapitalDelta] = 30*\[Lambda]0;  (*Parameters for the grid*)
ReMapC[x_] := RGBColor[(2 x - 1) UnitStep[x - 0.5], 0, (1 - 2 x) UnitStep[0.5 - x]];
imn = Table[
   Chop[5 (E^-((x + \[CapitalDelta]/2)/d) + E^((x - \[CapitalDelta]/2)/d) + E^-((y + \[CapitalDelta]/2)/d) + E^((y - \[CapitalDelta]/2)/d))], {x, -\[CapitalDelta]/2, \[CapitalDelta]/2, \[Delta]}, {y, -\[CapitalDelta]/2, \[CapitalDelta]/2, \[Delta]}]; (*Imaginary part of the refractive index (used to emulate absorbing boundaries)*)
dim = Dimensions[imn][[1]];
L = -1/\[Delta]^2*KirchhoffMatrix[GridGraph[{dim, dim}]]; (*Discretized Laplacian*)
ren0 = 1.5 - 1;
ren = ren0*Clip[ Total[ Table[ RotateRight[ DiskMatrix[3, dim], {RandomInteger[{0, dim}], RandomInteger[{Round[dim/8], Round[dim/2] - 5}]}], {150}] ], {0, 1}] + 1;
n = ren + I imn;
\[Sigma] = 2 \[Lambda]0;
sourcef[x_, y_, w_] := Sqrt[w/c] E^(-(x^2/(2 \[Sigma]^2))) E^(-((y + \[CapitalDelta]/2)^2/(2 (\[Lambda]0/2)^2))) E^(I w/c y);
\[Delta]\[Omega] = (\[Omega]max - \[Omega]min)/200;
\[Phi] = Table[
   \[Phi]in = Table[amplitude[\[Omega]]*sourcef[x, y, \[Omega]] , {x, -\[CapitalDelta]/2, \[CapitalDelta]/2, \[Delta]}, {y, -\[CapitalDelta]/2, \[CapitalDelta]/2, \[Delta]}];
   b = -(Flatten[n]^2 - 1) (\[Omega]/c)^2 Flatten[\[Phi]in]; (*Right-hand side of the equation we want to solve*)
   M = L + DiagonalMatrix[ SparseArray[Flatten[n]^2 (\[Omega]/c)^2]]; (*Operator on the left-hand side of the equation we want to solve*)
   Partition[LinearSolve[M, b], dim], {\[Omega], \[Omega]min, \[Omega]max, 1*\[Delta]\[Omega]}];
\[Phi]dim = Dimensions[\[Phi]][[1]];

frames = Table[
   Grid[{{Style["Re(E)", White, Bold, Large], Style["|E\!\(\*SuperscriptBox[\(|\), \(2\)]\)", White, Bold, Large]}, {
      ImageAdd[
       ArrayPlot[
        Transpose[(Re@Total[Table[\[Phi][[j]] E^(I (\[Omega]min + \[Delta]\[Omega] (j - 1) ) t), {j, 1, \[Phi]dim}] ][[(4 d)/\[Delta] ;; (-4 d)/\[Delta], (4 d)/\[Delta] ;; (-4 d)/\[Delta]]])/3], DataReversed -> True, Frame -> False, PlotRange -> {-1, 1}, LabelStyle -> {Black, Bold}, ColorFunctionScaling -> True, ColorFunction -> ReMapC, ClippingStyle -> {Blue, Red}, ImageSize -> 300, Background -> Black]
       ,
       ArrayPlot[Transpose[(ren - 1)/5] , DataReversed -> True , ColorFunctionScaling -> False, ColorFunction -> GrayLevel, Frame -> False]
       ]
      ,
      ImageAdd[
       ArrayPlot[ Transpose[((Abs@Total[Table[\[Phi][[j]] E^(I (\[Omega]min + \[Delta]\[Omega] (j - 1) ) t), {j, 1, \[Phi]dim}] ][[(4 d)/\[Delta] ;; (-4 d)/\[Delta], (4 d)/\[Delta] ;; (-4 d)/\[Delta]]])/3)^2],         DataReversed -> True, Frame -> False, PlotRange -> {0, 1}, LabelStyle -> {Black, Bold}, ColorFunctionScaling -> True, ColorFunction -> "AvocadoColors", ClippingStyle -> White, Background -> Black, ImageSize -> 300]
       ,
       ArrayPlot[Transpose[(ren - 1)/5] , DataReversed -> True , ColorFunctionScaling -> False, ColorFunction -> GrayLevel, Frame -> False]
       ]
      }}, Background -> Black]
   , {t, 50, -80, -1}];

ListAnimate[frames]

Lizenz

Ich, der Urheber dieses Werkes, veröffentliche es unter der folgenden Lizenz:
Creative Commons CC-Zero Diese Datei wird unter der Creative-Commons-Lizenz CC0 1.0 Verzicht auf das Copyright zur Verfügung gestellt.
Die Person, die das Werk mit diesem Dokument verbunden hat, übergibt dieses weltweit der Gemeinfreiheit, indem sie alle Urheberrechte und damit verbundenen weiteren Rechte – im Rahmen der jeweils geltenden gesetzlichen Bestimmungen – aufgibt. Das Werk kann – selbst für kommerzielle Zwecke – kopiert, modifiziert und weiterverteilt werden, ohne hierfür um Erlaubnis bitten zu müssen.

Kurzbeschreibungen

Ergänze eine einzeilige Erklärung, was diese Datei darstellt.
A pulse of light scrambled by a random collection of scatterers.

In dieser Datei abgebildete Objekte

Motiv

Einige Werte ohne einen Wikidata-Eintrag

image/gif

Dateiversionen

Klicke auf einen Zeitpunkt, um diese Version zu laden.

Version vomVorschaubildMaßeBenutzerKommentar
aktuell11:07, 17. Nov. 2021Vorschaubild der Version vom 11:07, 17. Nov. 2021609 × 336 (4,21 MB)BertoUploaded own work with UploadWizard

Keine Seiten verwenden diese Datei.

Globale Dateiverwendung

Die nachfolgenden anderen Wikis verwenden diese Datei:

Metadaten