Schnelles Multipolverfahren { Algorithmus · PDF fileSchnelles Multipolverfahren Fast...

13
Schnelles Multipolverfahren – Algorithmus M. Gutting Dezember 2016

Transcript of Schnelles Multipolverfahren { Algorithmus · PDF fileSchnelles Multipolverfahren Fast...

Schnelles Multipolverfahren – Algorithmus

M. Gutting

Dezember 2016

Schnelles Multipolverfahren Raumunterteilung

Statische Unterteilung

Nahfeld: alle direkt angrenzenden Wurfel (Nachbarn) an den WurfelX (weiß).

Fernfeld: Kinder der Nachbarn des Vaters von X (rot). Bis zu 189Wurfel in 3D.

M. Gutting (Uni Siegen) FMM Algorithmus Dezember 2016 2 / 13

Schnelles Multipolverfahren Raumunterteilung

Adaptive Unterteilung:

Liste 1: Nahfeld, falls X kinderlos (weiß).

Liste 2: Interaktionsliste von X (rot).

Liste 3: Kinder von Nachbarn von X ohne gemeinsamen Punkt mitX (blau).

Liste 4: kinderlose Nachbarn des Vaters von X , nicht an Xangrenzend (gelb).

M. Gutting (Uni Siegen) FMM Algorithmus Dezember 2016 3 / 13

Schnelles Multipolverfahren Adaptive Listenbestimmung

Adaptive ListenbestimmungGegeben der Wurfel X .if X ist aus Level 0

Fuge X zur eigenen Nachbarnliste hinzu.else (d.h. wir sind mind. in Level 1)

do fur alle Nachbarn Y des Vaters von Xif Y ist ein Blatt

if X ist angrenzend an YFuge Y zu X ’s Nachbarnliste hinzu.if X ist ein Blatt

Fuge Y zu X ’s Liste 1 hinzu.end if

elseFuge Y zu X ’s Liste 4 hinzu.

end ifelse (d.h. Y ist nicht kinderlos)

do fur alle Kinder Z von Yif X ist wohlsepariert von Z

Fuge Z zu X ’s Liste 2 hinzu.else

Fuge Z zu X ’s Nachbarn hinzu.Prufe, ob Z oder Z ’s Kinder (falls existent)zu Liste 1 oder 3 von X gehoren (Testen, ob angrenzend).

end ifend do

end ifend do

end if

M. Gutting (Uni Siegen) FMM Algorithmus Dezember 2016 4 / 13

Schnelles Multipolverfahren Fast Multipole Algorithmus

Fast Multipole Algorithmus –Initialisierung

Gegeben: Punktemenge xi ∈ S2R,ext, i = 1, . . . ,N; Koeffizienten ai ,i = 1, . . . ,N; Parameter h des Singularity-Kerns, Radius R.Berechnet werden soll die Summe

F =N∑i=1

aiKH(xi , ·).

An einer weiteren Menge von Punkten yj ∈ S2R,ext, j = 1, . . . ,M, soll dieSumme ausgewertet werden.Festgesetzt wird der Grad der Multipolentwicklung p, die maximale AnzahlPunkte s pro Wurfel bei adaptiver Zerlegung oder der maximale Level Lim statischen Fall.

M. Gutting (Uni Siegen) FMM Algorithmus Dezember 2016 5 / 13

Schnelles Multipolverfahren Fast Multipole Algorithmus

Berechne die Zielpunkte, d.h. die Kelvin transformierten Punkte mit demFaktor h:

hyKTj = h

R2

|yj |2yj , j = 1, . . . ,M

Suche Bounding Box, die alle Punkte und Zielpunkte enthaltErstelle Octtree (Adaptiv/statisch) und sortiere alle Punkte sowieZielpunkte ein.Setze L als maximalen Level (falls nicht bereits vorgeschrieben).Eliminiere alle leeren Wurfel.Bestimme Nachbarn und Interackionsliste bzw. Liste 1 bis Liste 4.Reserviere Speicher fur die verschiedenen Entwicklungskoeffizeinten einesjeden Wurfels X : Multipolentwicklung mit Koeffizientenvektor MX , lokaleEntwicklung mit Koeffizientenvektor LX .do fur alle Level l = 0, . . . , L

Erstelle Liste aller Wurfel des Levels l .end do

Sammle alle Blatter in einer Liste.

M. Gutting (Uni Siegen) FMM Algorithmus Dezember 2016 6 / 13

Schnelles Multipolverfahren Fast Multipole Algorithmus

Fast Multipole Durchlauf

do for level l = 0, . . . , Ldo for each cube X of level l

Setze MX , LX auf 0.end do

end doSetze Ergebnisvektor F auf 0.

M. Gutting (Uni Siegen) FMM Algorithmus Dezember 2016 7 / 13

Schnelles Multipolverfahren Fast Multipole Algorithmus

1. Generieren der Multipol-Koeffizienten(P2M) und M2M

do fur alle Blatter XBerechne die Multipol-Koeffizienten MX der Multipol-Entwicklungbis zum Grad p mit dem Zentrum von X als Entwicklungspunkt ausden Punkten in X .

end dodo fur Level l = L− 1, . . . , 2

do fur alle Wurfel X des Levels lVerschiebe die Multipol-Koeffizienten der Kinder von X nach Xselbst durch Rotieren der Entwicklung auf die ε3-Achse,dann Verschieben und schließlich die Anwendung der inversenRotation.

end doend do

M. Gutting (Uni Siegen) FMM Algorithmus Dezember 2016 8 / 13

Schnelles Multipolverfahren Fast Multipole Algorithmus

2. Interaktionsphase fur Liste 4 (P2L)

do fur Level l = 2, . . . , Ldo fur alle Wurfel X des Levels l

do fur alle Wurfel Y der Liste 4 von Xif die Anzahl der Zielpunkte in X ≤ p2 und X ist ein Blatt

Benutze die direkte Kernauswertung fur den Anteil derPunkte in Y und addiere das Ergebnis an denZielpunkten in X zu F .

elseBerechne die Entwicklungskoeffizienten einer innerharmonics Entwiccklung um das Zentrum von X ausden Punkten in Y und addiere sie zu LX .

end ifend do

end doend do

M. Gutting (Uni Siegen) FMM Algorithmus Dezember 2016 9 / 13

Schnelles Multipolverfahren Fast Multipole Algorithmus

3. Multipol zu Lokal Translation (M2L)

do fur Level l = 2, . . . , Ldo fur alle Wurfel X des Levels l

do fur alle Wurfel Y der Liste 2 von XBenutze die M2L-Translation mit Hilfe von Rotationen umdie Koeffizienten MX nach Y zu verschieben,addiere die Resultate zu LY .

end doend do

end do

M. Gutting (Uni Siegen) FMM Algorithmus Dezember 2016 10 / 13

Schnelles Multipolverfahren Fast Multipole Algorithmus

4. Translation der inner harmonicEntwicklungen (L2L)

do for level l = 2, . . . , L− 1do fur alle Wurfel X des Levels l

Verschiebe die lokalen Koeffizienten LX in die Kinder von X(falls vorhanden) durch Rotation der Entwicklung auf dieε3-Achse, dann Translation und inverse Rotation.Addiere the resultierenden Koeffizienten zu LZ , wobeiZ das zugehorige Kind von X ist.

end doend do

M. Gutting (Uni Siegen) FMM Algorithmus Dezember 2016 11 / 13

Schnelles Multipolverfahren Fast Multipole Algorithmus

5. Auswertung der Entwicklungen (L2T,M2T)/direkte Interaktion (P2T)

do fur alle Blatter XWerte die inner harmonics Entwicklung von X an allen Zielpunkten in X aus.Speichere das Resultat in F .do fur alle Wurfel Y in Liste 1 von X

Addiere die direkte Auswertung des Kernsummenanteils derPunkte in Y an den Zielpunkten in X zu F .

end dodo fur alle Wurfel Y in Liste 3 von X

if Anzahl der Punkte in Y ≤ p2 und Y ist ein BlattBenutze die direkte Kernauswertung fur den Anteil derPunkte in Y und addiere das Ergebnis an den Zielpunkten in X zu F .

elseWerte die Multipol-Entwicklung um das Zentrum von Y (mit denKoeffizienten MY ) an den Zielpunkten in X aus.Addiere das Ergebnis zu F .

end ifend do

end doM. Gutting (Uni Siegen) FMM Algorithmus Dezember 2016 12 / 13

Schnelles Multipolverfahren Fast Multipole Algorithmus

6. Umkehrung der Kelvin Transformation

do j = 1, . . . ,M

Fj =|yKT

j |R Fj .

end doAusgabe des Resultats F .

M. Gutting (Uni Siegen) FMM Algorithmus Dezember 2016 13 / 13