Een snelle multipoolmethode voor de verstrooiing aan extreem...

86
Faculteit Toegepaste Wetenschappen Vakgroep Informatietechnologie Voorzitter: Prof. Dr. Ir. P. LAGASSE Een snelle multipoolmethode voor de verstrooiing aan extreem grote planaire metallisaties door Joris PEETERS Promotor: Prof. Dr. Ir. F. Olyslager Scriptiebegeleider: Ir. K. Cools en Ir. L. Meert Scriptie ingediend tot het behalen van de academische graad van burgerlijk ingenieur in de natuurkunde Academiejaar 2005–2006

Transcript of Een snelle multipoolmethode voor de verstrooiing aan extreem...

Page 1: Een snelle multipoolmethode voor de verstrooiing aan extreem …lib.ugent.be/fulltxt/RUG01/001/311/808/RUG01-001311808... · 2010. 6. 7. · ook Pearl Jam, Joe Satriani, Madrugada,

Faculteit Toegepaste Wetenschappen

Vakgroep Informatietechnologie

Voorzitter: Prof. Dr. Ir. P. LAGASSE

Een snelle multipoolmethode voor de verstrooiing

aan extreem grote planaire metallisaties

door

Joris PEETERS

Promotor: Prof. Dr. Ir. F. Olyslager

Scriptiebegeleider: Ir. K. Cools en Ir. L. Meert

Scriptie ingediend tot het behalen van de academische graad van

burgerlijk ingenieur in de natuurkunde

Academiejaar 2005–2006

Page 2: Een snelle multipoolmethode voor de verstrooiing aan extreem …lib.ugent.be/fulltxt/RUG01/001/311/808/RUG01-001311808... · 2010. 6. 7. · ook Pearl Jam, Joe Satriani, Madrugada,

Voorwoord

Deze eerste woorden zijn, traditioneel, het laatst geschreven en ik kan nu terugkijken op het werk dat

de lezer hierna nog te wachten staat. De ietwat droge materie in de komende pakweg tachtig bladzijden

zou verkeerdelijk de indruk kunnen geven dat alles zonder veel moeilijkheden tot stand gekomen is.

Ik wil u bij deze verzekeren dat dat absoluut niet het geval is. Integendeel, in september en oktober

liep ik lichtelijk verloren in het ganse elektromagnetisme-labyrint en heb ik de uitgang alleen gevonden

dankzij de wegwijzers van Lieven Meert. Op dat moment was eigenlijk alleen nog maar het zogenaamde

gemakkelijke werk gedaan, een toenertijd ietwat verontrustende gedachte. Had ik toen geweten wat ik

nu weet, namelijk dat Kristof Cools al mijn vragen met een bijzondere trefzekerheid zou beantwoorden

(waarvan er sommige behoorlijk dom waren, heb ik mij nadien gerealiseerd), zou ik de wereld wellicht met

meer vertrouwen bewandeld hebben van oktober tot mei. Ergens in die periode verscheen ook nog Jurgen

De Zaeytijd met een schat van informatie over FFT-interpolatie, waarvan ik dankbaar gebruik gemaakt

heb en die mij massa’s tijd bespaard heeft. Over alle periodes heen kon ik steeds gaan aankloppen bij

Prof. Femke Olyslager, wiens opmerkingen eigenlijk grotendeels de richting bepaald hebben waarin deze

thesis zich voortbewogen heeft. Ik denk niet dat het resultaat hetzelfde zou zijn zonder een van deze

mensen.

Naast de fysica en wiskunde, was er ook nog het hele gedoe met het programmeren. Ik had er wel

wat amateurervaring in vergaard gedurende de voorbije jaren, maar dat is schromelijk te weinig gebleken.

Bjorn Olievier heeft me quasi vanaf nul onderwezen in de esthetica en efficientie die gepaard gaat (of kan

gaan) met programmeren. Er was mijn eigenwijsheid te overwinnen en helaas is ook op dit moment de

code wellicht alleen leesbaar voor mezelf, maar ware het niet voor hem, dan had ik er ongetwijfeld zelf

ook geen touw aan kunnen vastknopen.

Naast bovenvernoemden is er nog een hele lijst mensen die een rol gespeeld hebben op minder technisch

vlak. Zonder enige exhaustiviteit te betrachten, ga ik een poging wagen dezen hier op te sommen.

Allereerst is er Angus Young, met AC/DC, een niet aflatende inspiratie. In dezelfde categorie vinden we

ook Pearl Jam, Joe Satriani, Madrugada, Van Halen, Led Zeppelin, The Ramones en The Red Hot Chili

Peppers. Ik heb op dit moment ook een haat-liefde verhouding ontwikkeld met mijn Senseo-toestel, dus

mijn dank gaat eveneens uit naar de mij onbekende illustere uitvinder van koffie. De combinatie van rock

en koffie is bijzonder krachtig en niet te onderschatten (in het bijzonder in de vorm van een overdosis).

Het voorbije jaar was verre van mijn makkelijkste, vooral om redenen die niets met deze thesis te

maken hebben. Ik heb mezelf vaak moeten overwinnen en ook daarbij ben ik gelukkig bijgestaan door

enkele, meestal nietsvermoedende, mensen. De meest doorslaggevende hulp is wellicht van Ellen ’Eithne’

Vlerick en alweer Bjorn ’SprudL’ Olievier gekomen. Daarenboven was er nog Leen ’Louise’ Vanhoutte, die

nu ongetwijfeld een traantje wegpinkt van ontroering bij deze eervolle vermelding. Op een meer indirecte

Page 3: Een snelle multipoolmethode voor de verstrooiing aan extreem …lib.ugent.be/fulltxt/RUG01/001/311/808/RUG01-001311808... · 2010. 6. 7. · ook Pearl Jam, Joe Satriani, Madrugada,

wijze ondermeer Wordsworth, met bijvoorbeeld Patience uit 1883.

If this great world of joy and pain

Revolve in one sure track;

If freedom, set, will rise again,

And virtue, flown, come back;

Woe to the purblind crew who fill

The heart with each day’s care;

Nor gain, from past or future, skill

To bear, and to forbear!

Alvorens de lezer los te laten op het hiernavolgende materiaal, wil ik hem nog verzekeren dat het voor

mij alvast een zeer waardevolle ervaring was.

Joris Peeters, mei 2006

Page 4: Een snelle multipoolmethode voor de verstrooiing aan extreem …lib.ugent.be/fulltxt/RUG01/001/311/808/RUG01-001311808... · 2010. 6. 7. · ook Pearl Jam, Joe Satriani, Madrugada,

Toelating tot bruikleen

“De auteur geeft de toelating deze scriptie voor consultatie beschikbaar te stellen en delen van de scriptie

te kopieren voor persoonlijk gebruik.

Elk ander gebruik valt onder de beperkingen van het auteursrecht, in het bijzonder met betrekking tot

de verplichting de bron uitdrukkelijk te vermelden bij het aanhalen van resultaten uit deze scriptie.”

Joris Peeters, mei 2006

Page 5: Een snelle multipoolmethode voor de verstrooiing aan extreem …lib.ugent.be/fulltxt/RUG01/001/311/808/RUG01-001311808... · 2010. 6. 7. · ook Pearl Jam, Joe Satriani, Madrugada,

Een snelle multipoolmethode voor deverstrooiing aan extreem grote planaire

metallisatiesdoor

Joris PEETERS

Scriptie ingediend tot het behalen van de academische graad vanburgerlijk ingenieur in de computerwetenschappen

Academiejaar 2005–2006

Promotor: Prof. Dr. Ir. F. OlyslagerScriptiebegeleider: Ir. K. Cools en Ir. L. Meert

Faculteit Toegepaste WetenschappenUniversiteit Gent

Vakgroep InformatietechnologieVoorzitter: Prof. Dr. Ir. P. LAGASSE

Samenvatting

Een computationele methode wordt ontworpen en getest om een specifieke klasse van elektromagnetischeproblemen te simuleren, met name driedimensionele verstrooiing aan planaire metallisaties die ofwelperfect elektrische geleiders (PEC) zijn, ofwel gekarakteriseerd worden door een oppervlakte-impedantie.Het geımplementeerde Multi-Level Fast Multipole Algorithm (MLFMA) wordt vergeleken met de meertradionele momentenmethode, waarvan het afgeleid is. De bedoeling van het algoritme is een verhogingvan de snelheid en een verlaging van het geheugengebruik te bekomen, ten koste van controleerbare kleinefouten.

Trefwoorden

Computationeel Elektromagnetisme, Galerkin Momentenmethode, Fast Multipole Method, FMM, Multi-Level Fast Multipole Algorithm, MLFMA.

Page 6: Een snelle multipoolmethode voor de verstrooiing aan extreem …lib.ugent.be/fulltxt/RUG01/001/311/808/RUG01-001311808... · 2010. 6. 7. · ook Pearl Jam, Joe Satriani, Madrugada,

A Fast Multipole Method For Scattering AtExtremely Large Planar Metallisations

Joris Peeters

Supervisor(s): Pr. Dr. Ir. F. Olyslager, Ir. K. Cools, Ir. L. Meert, Ir. J. De Zaeytijd

Abstract—In this work a computational method is developed and testedto simulate a specific class of electromagnetic problems in the frequency do-main, namely threedimensional scattering at planar metallisations, whichare either perfect electrical conductors (PEC) or characterized by a sur-face impedance. The implemented Multi-Level Fast Multipole Algorithm(MLFMA) is compared to the more traditional moment method, fromwhich it is derived. The idea of the algorithm is to dramatically increasethe speed and decrease the memory use, at the cost of introducing small butcontrollable errors.

Keywords— Computational electromagnetism, fast multipole method,MLFMA

I. I NTRODUCTION

Computational methods to solve electromagnetic scatteringproblems [3] have been under intense investigation for at leastthe past 30 years. Developement of new algorithms and the in-creased performance of affordable hardware is allowing everlarger problems to be solved, for instance the scattering at acomplete airplane. In this work we have looked at a specificclass of problems, namely (infinitely) thin planar metallisations,all lying in the same plane in space. They can be perfect elec-trical conductors or each can have its own surface impedance.A simple example of such a configuration is shown in Figure 1,which shows a number of square metal plates, each some wave-lengths in size. Classical moment methods use the Maxwell and

Fig. 1. Example of planar metallisations

boundary equations to arrive at an integral equation containingthe unknown induced currents on the metallisations. This in-duced current is then expanded in a set of base functions. Thisleads to a linear system of equations. The dimensionN of thesystem is the amount of base functions, whereas the unknownsare the expansion coefficients. In the moment method, this sys-tem is solved iteratively at a computational cost ofO(N2), dueto the matrix-vector products. This cost becomes unacceptablefor very large problems. On top of that, the memory usageis of O(N2). The Fast Multipole Methods (FMM) are devel-oped to speed up this matrix-vector product and at the same

time reduce the required memory. It will appear that the imple-mented MLFMA leads toO(N log2 N) speed complexity andO(N log N) theoretical memory complexity, although in prac-tical problems, this is even smaller. A first section will give ashort overview and idea of how fast multipole methods are ableto speed up the matrix-vector product. An introduction to FMMcan be found in [5] and a more recent and detailed treatise in[1]. In a next section, we will then compare our method to themoment method, regarding both speed and memory. A final sec-tion is then dedicated to the correctness of the implementation,which was verified through comparison with some known ana-lytical solutions.

II. FAST MULTIPOLE METHODS

The starting point is an integral equation linking the incomingelectric field to the induced current (the EFIE). We have thenexpanded the induced current in localized roof-top base func-tions. The essence of the method is that we group interactionstogether. In the matrix-vector product the contribution of everysingle source base function has to be calculated in every sin-gle observing base function, giving rise to itsO(N2) behaviour.Now, in FMM, we divide the base functions in localized groups.The mathematical background of FMM is an addition theoremfor the 3D Green kernel, which leads to a series expansion. Thisexpansion can then be truncated, introducing a small but con-trollabe error. This expansion will allow us to calculate theinteraction between two groups as the interactions of the basefunctions with their own groupcenter and then the interaction ofthe two groupcenters. This dramatically decreases the amountof connections. One can think of this to be similar to how atelephone central works. The lines in one village all lead to onecentral, which is connected to another village, distributing againlines to all the houses. This is obviously more efficient than lay-ing lines from every house in the first village to every house inthe second village. Multi-level algorithms take this another stepfurther and group villages in provinces, provinces in countriesand countries in continents, thereby achieving even higher effi-ciency. One must be careful not to oversimplify the problem bylooking at it in this way. Controlling the errors requires muchcare and MLFMA introduces the problem of interpolation. Thisis done by a powerful FFT method, as is described in [6]. Thisinterpolation is necessary because the far field radiation patternof a group, which is translated to the groups it interacts withon that level, depends on the spatial size of the group. As wego to higher levels, grouping child-groups, the parent-groupsbecome larger and we need larger matrices to store their pat-tern. The child-group patterns thus need to be interpolated tothis higher bandwidth. The matrix-vector product is part of the

Page 7: Een snelle multipoolmethode voor de verstrooiing aan extreem …lib.ugent.be/fulltxt/RUG01/001/311/808/RUG01-001311808... · 2010. 6. 7. · ook Pearl Jam, Joe Satriani, Madrugada,

iterative solution of the linear system of equations. We haveused a Quasi Minimal Residual (QMR) algorithm [7] to carryout this process. Others have been tested as well, but QMR wasempirically shown to converge to the solution in a stable way.Due to the fact that convergence was reached after an accept-able amount of iterations, no preconditioner was implemented.

III. C OMPARISON BETWEENMFLMA AND MOMENT

METHOD

Detailed calculation of all the steps shows that MLFMAachieves anO(N log2 N) speed complexity, which is a dra-matic improvement compared to theO(N2), in particular forvery large problems, which are after all the object of this work.Much attention was also given to the memory usage. The factthat the metallisations all lie in the same plane and are stuckon a Manhattan grid allows for very powerful re-use of interac-tions. This has allowed problems of over 1.000.000 unknownsto be treated within 1 GB of RAM-memory, an unimaginablething for the brute force moment method. It appears that thecross point (where MLFMA becomes faster than the momentmethod) lies at N=40.000. This corresponds more or less to asquare plate of11λ× 11λ, with λ the wavelength. Consideringthat the extreme configurations we wish to treat are significantlylarger than this square plate, MLFMA is the preferred method.On top of that, the memory usage of the MLFMA implemen-tation is significantly smaller than that of the moment method,up to many orders of magnitude for large configurations. Bothcomplexities are shown in Figure 2.

Fig. 2. Comparison of complexities between MLFMA (triangles) and momentmethod (dots) for memory usage (top) and speed (bottom)

IV. A CCURACY

We have previously emphasized that the fast multipole meth-ods introduce a small error on the matrix elements, due to thetruncation of the series expansion. In principle this error canbe chosen arbitrarily small, however always at the cost of in-creased calculation time. Obviously, a compromise must befound. In general, we content ourselves with a10−3 accuracyfor the distant matrix-elements (elements whose base functionsare a considerable distance apart). The near matrix-elementsare calculated with higher precision, using the classical momentmethod, because the expansion of the Green kernel isn’t validthere anyway. Of course, error might also be introduced due toimplementation errors. To eliminate implementation errors andto verify that our truncation-errors are under control, we haveverified the program by comparing it with a number of analyt-ical solutions. Analytical solutions falling within our class ofproblems are rather limited. We have used the following:• Scattering of a plane wave at an infinitely large PEC-plate.• Scattering of the field due to a dipole antenna, at an infintelylarge PEC-plate.• Scattering of a plane wave at a one dimensional diffractiongrating.Scattering at an infinite plate can obviously not be simulatedwith a finite amount of base functions and therefore in the firsttwo cases a number of simulations was performed, with increas-ing plate-size, verifying whether the results converged to thecorrect solution. This was indeed observed. The last test doesnot require infinite sized plates. When a plane wave falls on adiffraction grating, under a certain angle with the normal, re-flected waves are expected in a number of specific directions.This was also verified and the results were completely in accor-dance with the analytical calculations.

V. CONCLUSION

The MLFMA method was implemented, compared to the tra-ditional moment method and verified. All results show that theMLFMA implementation is successfull in treating the class ofproblems under scope.

ACKNOWLEDGMENTS

The author would like to acknowledge the suggestions ofmany people, in particular those mentioned as supervisor at thetop of this abstract.

REFERENCES

[1] W.C. Chew, J. Jin, E. Michielssen, J. Song, “Fast And Efficient AlgorithmsIn Computational Electromagnetics”, 2001.

[2] K. Cools, L. Meert, “Simulatie van meta-materialen”, Thesis UGent, 2003-2004.

[3] I.V. Lindell, “Methods for Electromagnetic Field Analysis”, 1992.[4] F. OLyslager, “Elekromagnetisme I”, Cursus UGent, 2003-2004.[5] R. Coifman, V. Rokhlin, S. Wandzura “The Fast Multipole Method for the

Wave Equation: A Pedestrian Prescription”, IEEE Antennas and Propaga-tion Magazine, Vol. 35, No. 3, pp 7-12, 1993.

[6] J. Sarvas, “Performing Interpolation And Anterpolation Entirely By FastFourier Transformation In The 3-D Multilevel Fast Multipole Algorithm”,Siam J. Num. Anal., Vol. 41, No. 6, pp 2180-2196, 2003.

[7] R. Barrett, M. Berry, T. Chan, J. Demmel, J. Donato, J. Dongarra, V.Eijkhout, R. Pozo, C. Romine, H. Van Der Vorst, “Templates For The So-lution Of Linear Systems: Building Blocks For Iterative Methods”, SIAM,Philadelphia, 1995.

Page 8: Een snelle multipoolmethode voor de verstrooiing aan extreem …lib.ugent.be/fulltxt/RUG01/001/311/808/RUG01-001311808... · 2010. 6. 7. · ook Pearl Jam, Joe Satriani, Madrugada,

INHOUDSOPGAVE i

Inhoudsopgave

1 Inleiding 1

2 Momentenmethode 4

2.1 Doel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2.2 Afleiding van de MPIE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2.3 Afleiding van de EFIE met Greense Dyade . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.4 Ontbinding van de stroom in basisfuncties . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2.5 Galerkin Momentenmethode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.5.1 Afleiding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.5.2 Complexiteit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.6 Berekening van het verstrooide elektrisch veld . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.6.1 Via de potentialen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.6.2 Via de Greense Dyade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.6.3 Berekening van het verre veld . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

3 FMM 14

3.1 Doel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

3.2 Theoretische afleiding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

3.3 Complexiteitsbepaling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

4 ML-FMA 21

4.1 Doel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

4.2 Theoretische afleiding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

4.2.1 Van FMM naar ML-FMA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

4.2.2 Het berekenen van het matrix-vectorproduct . . . . . . . . . . . . . . . . . . . . . 24

4.2.3 Gebruik van de formulering met Greense dyade . . . . . . . . . . . . . . . . . . . . 25

4.2.4 De instabiliteit van de reeksontwikkeling . . . . . . . . . . . . . . . . . . . . . . . . 27

4.2.5 Integratie en interpolatie met uniforme samples en FFT . . . . . . . . . . . . . . . 28

4.3 Snelheidscomplexiteit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

Page 9: Een snelle multipoolmethode voor de verstrooiing aan extreem …lib.ugent.be/fulltxt/RUG01/001/311/808/RUG01-001311808... · 2010. 6. 7. · ook Pearl Jam, Joe Satriani, Madrugada,

INHOUDSOPGAVE ii

4.3.1 Near Interactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

4.3.2 Up-sweep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

4.3.3 Down-sweep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

4.3.4 Besluit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

4.4 Geheugencomplexiteit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

4.4.1 Achtergrondgeheugen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

4.4.2 Dynamisch geheugenverbruik tijdens het iteratief oplossen . . . . . . . . . . . . . . 37

4.4.3 Globaal geheugenverbruik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

5 Prestaties 39

5.1 Doel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

5.2 Snelheidscomplexiteit voor ideale structuren . . . . . . . . . . . . . . . . . . . . . . . . . . 39

5.3 Geheugencomplexiteit voor ideale structuren . . . . . . . . . . . . . . . . . . . . . . . . . 40

5.4 Invloed van de parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

5.5 Niet-ideale structuren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

5.5.1 Een lange strip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

5.5.2 Het minst ideale geval . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

5.5.3 Realistische niet-ideale gevallen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

5.6 Aantal iteratiestappen tot convergentie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

5.7 Grenzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

6 Verificaties 49

6.1 Doel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

6.2 Oneindige vlakke plaat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

6.2.1 Verstrooiing ten gevolge van een vlakke golf . . . . . . . . . . . . . . . . . . . . . . 50

6.2.2 Verstrooiing ten gevolge van een dipoolbron . . . . . . . . . . . . . . . . . . . . . . 52

6.3 Verstrooiingsrooster . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

7 Numerieke voorbeelden 56

7.1 Doel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

7.2 Voorbeelden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

8 Besluit 59

A Relevante basisbeginselen van elektromagnetisme 60

A.1 De wetten van Maxwell en de constitutieve vergelijkingen . . . . . . . . . . . . . . . . . . 60

A.2 Potentialen en Greense functies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

A.3 Greense dyades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

A.4 Randvoorwaarde . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

Page 10: Een snelle multipoolmethode voor de verstrooiing aan extreem …lib.ugent.be/fulltxt/RUG01/001/311/808/RUG01-001311808... · 2010. 6. 7. · ook Pearl Jam, Joe Satriani, Madrugada,

INHOUDSOPGAVE iii

B Interpolatie met FFT 65

B.1 Fourier transformatie van (anti)sferische functies . . . . . . . . . . . . . . . . . . . . . . . 65

B.2 Numerieke kwadratuur met uniform verdeelde punten . . . . . . . . . . . . . . . . . . . . 69

B.3 Interpolatie en anterpolatie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

B.4 De Fourier coefficienten van αm′m(k, rm′m)| sin(θ)| . . . . . . . . . . . . . . . . . . . . . . 71

Page 11: Een snelle multipoolmethode voor de verstrooiing aan extreem …lib.ugent.be/fulltxt/RUG01/001/311/808/RUG01-001311808... · 2010. 6. 7. · ook Pearl Jam, Joe Satriani, Madrugada,

INLEIDING 1

Hoofdstuk 1

Inleiding

De recentelijke ontwikkeling van enkele snelle methodes om de wetten van Maxwell numeriek op te

lossen, hebben ertoe geleid dat steeds grotere problemen met steeds meer onbekenden met de computer

doorgerekend kunnen worden. In deze thesis wordt een speciale klasse van problemen behandeld die heel

wat nuttige toepassingen kan hebben, namelijk (oneindig) dunne antennes die zich in eenzelfde vlak in

de vrije ruimte bevinden. Een typische configuratie wordt getoond in Figuur 1.1. Deze antennes kunnen

perfecte elektrische geleiders zijn of worden gekarakteriseerd door een complexe oppervlakte-impedantie

en zijn bovendien typisch van dezelfde grootte-orde als of groter dan de golflengte, zodat hoogfrequente

oplossingsmethodes zich aanbieden. Deze thesis concentreert zich op het oplossen van dit probleem in

het frequentiedomein.

Een mogelijke manier om dit aan te pakken is het opstellen van een integraalvergelijking. Er wordt

hier gekozen voor de Electric Field Integral Equation, omdat deze voor dit type problemen goede resul-

taten levert. Het ontbinden van de stroomdichtheden op de antennes leidt dan uiteindelijk tot een stelsel

lineaire vergelijkingen in de onbekende coefficienten van deze ontbinding. Dit is het typische resultaat van

de discretisatie van een integraalvergelijking. Om tot een oplossing te komen voor het probleem moet dit

stelsel vergelijkingen opgelost worden. Hiervoor zijn meerdere methodes beschikbaar. De exacte metho-

des, bijvoorbeeld via LU-decompositie, geven typisch aanleiding tot een rekencomplexiteit van O(N3) of

hoger. Dit is alleen aanvaardbaar voor zeer kleine problemen, gezien de enorme explosie aan rekentijd bij

toename van het aantal onbekenden. Een tweede klasse van oplossingsmethodes zijn de iteratieve solvers.

Deze genereren steeds beter wordende benaderingen van de exacte oplossing, tot bij een aanvaardbare

tolerantie de procedure wordt stopgezet. De algoritmes van iteratieve solvers steunen sterk op het matrix-

vectorproduct, dat een complexiteit van O(N2) heeft. Over het algemeen wordt verwacht dat de solver

voldoende convergeert in een aantal stappen Nit veel kleiner N. Het stelsel iteratief oplossen zou dus tot

een complexiteit van O(NitN2) leiden, hetgeen reeds een verbetering is, maar nog steeds onaanvaardbaar.

Bovendien geldt deze zelfde O(N2) complexiteit ook voor het geheugenverbruik. In deze thesis wordt

gekeken naar snelle multipoolmethodes die tot doel hebben dit matrix-vectorproduct te versnellen. In een

Page 12: Een snelle multipoolmethode voor de verstrooiing aan extreem …lib.ugent.be/fulltxt/RUG01/001/311/808/RUG01-001311808... · 2010. 6. 7. · ook Pearl Jam, Joe Satriani, Madrugada,

INLEIDING 2

Figuur 1.1: Voorbeeld van een configuratie

eerste luik wordt een klassieke momentenmethode uitgewerkt, met de O(N2) complexiteit. Als tweede

stap wordt dan een relatief eenvoudige Fast Multipole Methode (FMM) ontwikkeld, die de complexiteit

tot O(N1.5) reduceert. Nadien wordt deze methode veralgemeend tot het Multi-Level Fast Multipole

Algoritm (ML-FMA), dat zal toelaten het matrix-vectorproduct in O(N log2 N) te berekenen. Dit is, in

het bijzonder voor zeer grote problemen, een zeer grote stap voorwaarts. Bij de snelle multipoolmethodes

zal een keuze gemaakt kunnen worden tussen snelheid en gewenste nauwkeurigheid, steeds met behoud

van dezelfde complexiteit.

Naast deze zeer wenselijke snelheidseigenschappen is ook zeer veel aandacht besteed aan het geheugen.

De PC waarop alle simulaties zijn gebeurd had beschikking over 1GB RAM-geheugen. Vooruitlopend

op de resultaten kan nu reeds vermeld worden dat het mogelijk is problemen tot 1.000.000 onbekendes

op een dergelijke machine door te rekenen (al moet hier dan wellicht wel een tweetal weken aan tijd

voorzien worden). De redenen voor deze bijzondere geheugenprestaties liggen in de regelmatigheid van

de structuur. Het vlak waarin de antennes zich bevinden wordt opgedeeld in een Manhattan-rooster

waarop de stroom ontbonden wordt in rooftop-basisfuncties. Het gaat hier over hoogfrequente systemen,

waarbij dus elke antenne een hele hoop basisfuncties bevat. Dit garandeert tot op zekere hoogte een

densiteit van het probleem die gebruikt zal kunnen worden om vele interacties te hergebruiken, hetgeen

dan aanleiding geeft tot grote geheugenbesparingen. Ter vergelijking wordt vermeld dat een probleem

van 300.000 onbekenden ongeveer 300MB nodig heeft, terwijl het zonder deze geheugenbesparingen, in

een klassieke momentenmethode, ongeveer 700GB zou vereisen, wat volkomen onaanvaardbaar is.

Na de bespreking van het ML-FMA zal via enkele analytisch oplosbare problemen, zoals een oneindig

grote plaat, aangetoond worden dat de methode wel degelijk tot juiste oplossingen komt. In een laatste

deel worden dan enkele interessante numerieke voorbeelden behandeld, die een illustratie vormen van de

mogelijke toepassingen van deze thesis. De nadruk ligt hierbij ondermeer op de diffusor.

Tot slot dient vermeld te worden dat alle simulaties en complexiteitsgrafieken op dezelfde PC gebeurd

Page 13: Een snelle multipoolmethode voor de verstrooiing aan extreem …lib.ugent.be/fulltxt/RUG01/001/311/808/RUG01-001311808... · 2010. 6. 7. · ook Pearl Jam, Joe Satriani, Madrugada,

INLEIDING 3

zijn. Het betreft een Pentium IV 2.4Ghz met 1GB aan RAM-geheugen. De code is ontwikkeld in C++ en

maakt ondermeer gebruik van templates (via de UBLAS library), die C++ qua performantie op dezelfde

lijn als C brengen, en tegelijkertijd de hogere abstractie van programmeren toelaten. Alles is gecompileerd

op een Linux (Ubuntu 4.0.1 Breezy Badger) platform met de g++ 4.0.2 compiler. Meer informatie over

de implementatie kan ook in de tekst gevonden worden.

Page 14: Een snelle multipoolmethode voor de verstrooiing aan extreem …lib.ugent.be/fulltxt/RUG01/001/311/808/RUG01-001311808... · 2010. 6. 7. · ook Pearl Jam, Joe Satriani, Madrugada,

MOMENTENMETHODE 4

Hoofdstuk 2

Momentenmethode

2.1 Doel

In dit hoofdstuk wordt een oplossingsmethode voor het probleem voorgesteld, die dient als referentie-

oplossing. Aangezien de multipoolmethodes een uitbreiding zijn van de momentenmethode is ze ook een

logische eerste stap in de ontwikkeling. De theorie wordt met enige grondigheid behandeld omdat ze ook

later nog van belang zal zijn. De afleiding is gebaseerd op [3] en [2].

2.2 Afleiding van de MPIE

Voor een inleiding tot de elektromagnetische begrippen en principes wordt verwezen naar Appendix A.

Als eerste stap wordt de randvoorwaarde voor het elektrisch veld uitgedrukt:

Etot(r) · t = Z(r)J(r) · t (2.1)

waarbij meteen een welbepaalde oppervlakte-impedantie Z geıntroduceerd wordt. Het elektrisch veld kan

nu ontbonden worden in het invallende elektrisch veld, opgewekt door externe stroombronnen, en het

verstrooide elektrisch veld, opgewekt door de stromen die geınduceerd worden in de patch antennes en

hier dus voorgesteld worden door J(r).

(Ei(r) + Es(r)) · t = Z(r)J(r) · t (2.2)

Hierin is t een willekeurige vector tangentieel aan het oppervlak van de patch antennes. Het verstrooid

elektrisch veld wordt nu voorgesteld door:

Es(r) = −jωA(r)− ∇φ(r) (2.3)

Gebruiken we nu de Greense functie in 3D, dan hebben we:

A(r) = µ

∫V

J(r′)G(r|r′)dV (r′) (2.4)

Page 15: Een snelle multipoolmethode voor de verstrooiing aan extreem …lib.ugent.be/fulltxt/RUG01/001/311/808/RUG01-001311808... · 2010. 6. 7. · ook Pearl Jam, Joe Satriani, Madrugada,

2.3 Afleiding van de EFIE met Greense Dyade 5

en

φ(r) =1ε

∫V

ρ(r′)G(r|r′)dV (r′) (2.5)

met

G(r|r′) =14π

e−jk|r−r′|

|r − r′|(2.6)

Invullen geeft:

Es(r) = −jωµ

∫V

J(r′)G(r|r′)dV (r′)− 1ε∇

∫V

ρ(r′)G(r|r′)dV (r′) (2.7)

Deze uitdrukking geeft samen met de randvoorwaarde aan het oppervlak de volgende integraalvergelijking:

Ei(r) · t = jωµ

∫V

J(r′) · tG(r|r′)dV (r′) +1ε∇

∫V

ρ(r′)G(r|r′)dV (r′) · t + Z(r)J(r) · t (2.8)

We gebruiken nu nog de wet op ladingsbehoud om de ladingsdichtheid te elimineren ten gunste van de

stroomdichtheid.

Ei(r) · t = jωµ

∫V

J(r′) · tG(r|r′)dV (r′) + t · j

εω∇

∫V

(∇′s · J(r′))G(r|r′)dV (r′) + Z(r)J(r) · t (2.9)

Dit is de Mixed Potential Integral Equation (MPIE) en deze staat in principe toe de stroom J(r) op de

antennes te berekenen. ∇′s duidt hier op de oppervlakte-divergentie, aangezien de stromen en ladingen

zich tot een oppervlak beperken.

2.3 Afleiding van de EFIE met Greense Dyade

Een tweede, volledig equivalente formulering van de integraalvergelijking kan gevonden worden door het

verstrooide elektrisch veld voor te stellen als:

Es(r) =∫V

G(r|r′) · J(r′)dV (r′) (2.10)

Dit geeft dan direct aanleiding tot de volgende integraalvergelijking:

Ei(r) · t = −∫V

(G(r|r′) · J(r′)) · tdV (r′) + Z(r)J(r) · t (2.11)

Deze formulering zal later bij de multipoolmethodes weer bovengehaald worden, maar voor de klassieke

momentenmethode is gebruik gemaakt van de MPIE. We merken trouwens op dat (2.10) alleen geldt

voor die r waar J(r) = 0. Aangezien we de integraalvergelijking opleggen aan het oppervlak van de

patch antennes, waar de stroom dus niet verschillend is van nul, is het mogelijk dat ons observatiepunt in

een niet-stroomvrije zone ligt. In dat geval moet eigenlijk de alternatieve voorstelling gebruikt worden,

die kort vermeld staat in Appendix A. Tesamen met de hogere orde van de optredende singulariteiten

(die nauwkeurige integratie bemoeilijken) maakt dit het gebruik van deze formulering voor de klassieke

momentenmethode minder geschikt dan de MPIE.

Page 16: Een snelle multipoolmethode voor de verstrooiing aan extreem …lib.ugent.be/fulltxt/RUG01/001/311/808/RUG01-001311808... · 2010. 6. 7. · ook Pearl Jam, Joe Satriani, Madrugada,

2.4 Ontbinding van de stroom in basisfuncties 6

Figuur 2.1: De rooftop basisfuncties

2.4 Ontbinding van de stroom in basisfuncties

In bovenstaande integraalvergelijkingen speelt J(r) de rol van onbekende. Van zodra deze bepaald is,

kan men zeggen dat het probleem opgelost is, aangezien het verstrooide veld dan eenvoudig berekend kan

worden uit de stroomdichtheden op de antennes. De oneindig dimensionale ruimte waarin een oplossing

voor J(r) gezocht moet worden, wordt gereduceerd door de stroomdichtheid te ontbinden in N basis-

functies. Het werken met oneindig dunne rechthoekige patch antennes suggereert de keuze voor ’rooftop’

basisfuncties. Stellen we vanaf nu het vlak waarin de antennes liggen voor door het XY-vlak, dan wordt

dit vlak onderverdeeld in een Manhattan-rooster, met gridstappen ∆x en ∆y. Er wordt gebruik gemaakt

van de volgende basisfuncties op dit rooster, voorgesteld in figuur 2.1.

bjx =

x−xj−1

∆xals xj−1 < x < xj en yj < y < yj+1

xj+1−x∆x

als xj < x < xj+1 en yj < y < yj+1

(2.12)

bjy =

y−yj−1

∆yals yj−1 < y < yj en xj < x < xj+1

yj+1−x∆y

als xj < x < xj+1 en xj < x < xj+1

(2.13)

Aan de hand van deze basisfuncties kunnen we dan de stroomdichtheid op de patch antennes benaderen

door

J(r) ≈Nx∑j=1

Ixj bx

j (r)ux +Ny∑j=1

Iyj by

j (r)uy (2.14)

De onbekenden in het probleem zijn dus nu Ixj en Iy

j . In de gemengde potentiaal integraalvergelijking

(MPIE) hebben we ook ∇s · J(r) nodig:

∇s · J(r) ≈Nx∑j=1

Ixj ∇ · bx

j (r)ux +Ny∑j=1

Iyj ∇ · by

j (r)uy (2.15)

∇s · J(r) ≈Nx∑j=1

Ixj

∂bxj (r)∂x

+Ny∑j=1

Iyj

∂byj (r)∂y

(2.16)

Page 17: Een snelle multipoolmethode voor de verstrooiing aan extreem …lib.ugent.be/fulltxt/RUG01/001/311/808/RUG01-001311808... · 2010. 6. 7. · ook Pearl Jam, Joe Satriani, Madrugada,

2.5 Galerkin Momentenmethode 7

∇s · J(r) ≈Nx∑j=1

Ixj px

j (r) +Ny∑j=1

Iyj py

j (r) (2.17)

met

pjx =

1

∆xals xj−1 < x < xj en yj < y < yj+1

− 1∆x

als xj < x < xj+1 en yj < y < yj+1

(2.18)

pjy =

1

∆yals yj−1 < y < yj en xj < x < xj+1

− 1∆y

als yj < y < yj+1 en xj < x < xj+1

(2.19)

Ingevuld in de integraalvergelijking geeft dit dan het volgende:

Einc(r) · t =jωµ

∫V

(Nx∑j=1

Ixj bx

j (r)ux

Ny∑j=1

Iyj by

j (r)uy) · tG(r|r′)dV (r′)+

t · j

εω∇

∫V

(Nx∑j=1

Ixj px

j (r) +Ny∑j=1

Iyj py

j (r))G(r|r′)dV (r′)+

Z(r)(Nx∑j=1

Ixj bx

j (r)ux

Ny∑j=1

Iyj by

j (r)uy)) · t

(2.20)

2.5 Galerkin Momentenmethode

2.5.1 Afleiding

De bedoeling is nu een stelsel van N lineaire vergelijkingen te bekomen in de onbekende coefficienten.

In de momentenmethode wordt hiertoe de integraalvergelijking vermenigvuldigd met een testfunctie en

nadien geıntegreerd over het ganse volume. Er zijn een aantal mogelijke keuzes voor de testfuncties. In de

collocatiemethode wordt getest in N verschillende punten, met name door een deltafunctie als testfunctie

te gebruiken. Een nauwkeuriger methode, die echter ingewikkelder is, is de Galerkin momentenmethode,

waarbij als testfuncties de basisfuncties gebruikt worden. De basisfuncties strekken zich alleen uit over

een oppervlak en dus wordt ook de integraal over het volume beperkt tot een integraal in een vlak. Ook

wordt de volgorde van sommatie en integratie omgewisseld. Dit geeft dan aanleiding tot het volgende

stelsel vergelijkingen:∫S

bxi (r)ux · Ei(r)dS(r) =jωµ

Nx∑j=1

Ixj

∫S

bxi (r)

∫S

bxj (r′)G(r|r′)dS(r′)dS(r)+

j

εω

Nx∑j=1

Ixj

∫S

bxi (r)ux · ∇

∫S

pxj (r′)G(r|r′)dS(r′)dS(r)+

j

εω

Ny∑j=1

Iyj

∫S

bxi (r)ux · ∇

∫S

pyj (r′)G(r|r′)dS(r′)dS(r)+

Nx∑j=1

Ixj

∫S

bxi (r)

∫S

Z(r′)bxj (r′)dS(r′)dS(r)

(2.21)

Page 18: Een snelle multipoolmethode voor de verstrooiing aan extreem …lib.ugent.be/fulltxt/RUG01/001/311/808/RUG01-001311808... · 2010. 6. 7. · ook Pearl Jam, Joe Satriani, Madrugada,

2.5 Galerkin Momentenmethode 8

Figuur 2.2: Geometrische illustratie van het wegvallen van de tweede integraalterm

voor i = 1..Nx en een analoog stel voor de y-gerichte basisfuncties. Dit geeft dan inderdaad N (= Nx+Ny)

vergelijkingen in evenveel onbekendes, waaruit de onbekende coefficienten Ixj en Iy

j opgelost kunnen

worden. Rest nu nog de berekening van de matrix-elementen. De integralen op de tweede en derde lijn

bevatten nog een gradient die we kunnen elimineren op basis van de volgende identiteit:

∇s · ab = as · ∇sb + b∇s · a (2.22)

met a = bxi (r)ux, b =

∫S

pxj (r′)G(r|r′)dS(r′), en voor a gelegen in het vlak waarin de oppervlaktediver-

gentie gedefinieerd is. We vinden dus dat

bxi (r)ux · ∇s

∫S

pxj (r′)G(r|r′)dS(r′) =∇s · (bx

i (r)ux

∫S

pxj (r′)G(r|r′)dS(r′))−

(∫S

pxj (r′)G(r|r′)dS(r′))∇ · bx

i (r)ux

(2.23)

We integreren over de drager van a om deze formule te herleiden tot die uit de tweede term, waarbij we

meteen gebruik maken van pxi (r) = ∇ · bx

i (r)ux∫S

bxi (r)ux · ∇

∫S

pxj (r′)G(r|r′)dS(r′) =

∫S

∇ · (bxi (r)ux

∫S

pxj (r′)G(r|r′)dS(r′))dS(r)−

∫S

pxi (r)

∫S

pxj (r′)G(r|r′)dS(r′)dS(r)

(2.24)

Bekijken we nu de eerste term uit het rechterlid en passen we formule van Green toe.∫S

∇ · (bxi (r)ux

∫S

pxj (r′)G(r|r′)dS(r′))dS(r) =

∮C

(bxi (r)ux

∫S

pxj (r′)G(r|r′)dS(r′)) · nds (2.25)

Hierin is C de rand van S en n de uitwendige normaal. Deze integraal is 0 omdat bxi ux · n = 0 op de

randen van de beschouwde ruimte, hetzij omdat bxi = 0 of omdat ux · n = 0 (zie Figuur 2.2). Een analoge

Page 19: Een snelle multipoolmethode voor de verstrooiing aan extreem …lib.ugent.be/fulltxt/RUG01/001/311/808/RUG01-001311808... · 2010. 6. 7. · ook Pearl Jam, Joe Satriani, Madrugada,

2.5 Galerkin Momentenmethode 9

redenering geldt voor de derde term. De lineaire vergelijkingen worden nu gegeven door:∫S

bxi (r)ux · Einc(r)dS(r) =jωµ

Nx∑j=1

Ixj

∫S

bxi (r)

∫S

bxj (r′)G(r|r′)dS(r′)dS(r)−

j

εω

Nx∑j=1

Ixj

∫S

pxi (r)

∫S

pxj (r′)G(r|r′)dS(r′)dS(r)−

j

εω

Ny∑j=1

Iyj

∫S

pxi (r)

∫S

pyj (r′)G(r|r′)dS(r′)dS(r)+

Nx∑j=1

Ixj

∫S

bxi (r)

∫S

Z(r′)bxj (r′)dS(r′)dS(r)

(2.26)

en uiteraard ook hier weer duale vergelijkingen voor de y-gerichte basisfuncties. Het is deze finale vorm

van de vergelijkingen die quasi rechtstreeks numeriek geımplementeerd kan worden. Het dient echter

opgemerkt te worden dat de Greense functie in drie dimensies singulier wordt als r′ = r. Met de matrix-

elementen die overeenkomen met volledig of gedeeltelijk overlappende basisfuncties moet dus nauwkeurig

omgesprongen worden. Gezien de compacte drager van een basisfunctie zijn dit er echter slechts enkele en

uit het vervolg zal blijken dat het volledige singuliere gedrag samengebald kan worden in zeven integralen

die met de nodige precisie bepaald moeten worden. De methode die hierbij gevolgd wordt is extractie van

de singulariteit, door de integraal op te splitsen in een regulier deel en een singulier deel. Het reguliere

deel kan dan op de normale methodes geımplementeerd worden.

Kijken we vooreerst naar de eerste integraal in het rechtlid. Uitgeschreven, met invulling van de

Greense functie en de uitdrukkingen voor de basisfuncties, wordt deze

xi∫xi−1

yi+1∫yi

x− xi−1

∆x

xj∫xj−1

yj+1∫yj

x′ − x′j−1

∆x

14π

e−jk√

(x−x′)2+(y−y′)2√(x− x′)2 + (y − y′)2

dx′dy′dxdy+

xi∫xi−1

yi+1∫yi

x− xi−1

∆x

xj+1∫xj

yj+1∫yj

x′j+1 − x′i∆x

14π

e−jk√

(x−x′)2+(y−y′)2√(x− x′)2 + (y − y′)2

dx′dy′dxdy+

xi+1∫xi

yi+1∫yi

xi+1 − x

∆x

xj∫xj−1

yj+1∫yj

x′ − x′j−1

∆x

14π

e−jk√

(x−x′)2+(y−y′)2√(x− x′)2 + (y − y′)2

dx′dy′dxdy+

xi+1∫xi

yi+1∫yi

xi+1 − x

∆x

xj+1∫xj

yj+1∫yj

x′j+1 − x′

∆x

14π

e−jk√

(x−x′)2+(y−y′)2√(x− x′)2 + (y − y′)2

dx′dy′dxdy

(2.27)

Als in een of meerdere van deze vier termen de kernel singulier wordt, wordt dit opgevangen door de

volgende opsplitsing:

e−jk√

(x−x′)2+(y−y′)2√(x− x′)2 + (y − y′)2

=e−jk

√(x−x′)2+(y−y′)2 − 1√

(x− x′)2 + (y − y′)2+

1√(x− x′)2 + (y − y′)2

(2.28)

waarbij de eerste term duidelijk een reguliere functie is en de tweede term een singuliere. Er geldt immers

limr→0

e−jkr − 1r

= −jk (2.29)

Page 20: Een snelle multipoolmethode voor de verstrooiing aan extreem …lib.ugent.be/fulltxt/RUG01/001/311/808/RUG01-001311808... · 2010. 6. 7. · ook Pearl Jam, Joe Satriani, Madrugada,

2.5 Galerkin Momentenmethode 10

zodat het reguliere deel geen singulariteiten bevat. Het reguliere deel wordt dan op dezelfde manier be-

handeld als de matrix-elementen waarbij het integrandum geen singulariteit bevat. Voor de verschillende

mogelijke overlappingen leidt dit tot lichtjes verschillende singuliere integralen. Een analoge behandeling

wordt gedaan voor de integralen in de tweede en derde term van het rechterlid van de integraalvergelijking.

De verschillende singuliere integralen kunnen uiteindelijk door een transformatie van de veranderlijken

gereduceerd worden tot de volgende zeven verschillende integralen:

∆x∫0

∆y∫0

∆x∫0

∆y∫0

xx′√(x− x′)2 + (y − y′)2

dx′dy′dxdy (2.30)

∆x∫0

∆y∫0

∆x∫0

∆y∫0

xx′√(∆x − (x + x′))2 + (y − y′)2

dx′dy′dxdy (2.31)

∆x∫0

∆y∫0

∆x∫0

∆y∫0

1√(x− x′)2 + (y − y′)2

dx′dy′dxdy (2.32)

∆x∫0

∆y∫0

∆x∫0

∆y∫0

1√(∆x − (x + x′))2 + (y − y′)2

dx′dy′dxdy (2.33)

Voor de eerste, tweede en de vierde moet uiteraard ook nog het analogon met y uitgerekend worden. De

derde is xy-symmetrisch. De berekening van deze integralen gebeurt gedeeltelijk analytisch en gedeelte-

lijk numeriek. Met een wiskundeprogramma zoals Maple kunnen voor alle integralen de twee binnenste

integralen (naar x′ en y′) uitgewerkt worden. Deze functie bevat dan nog steeds een singulariteit. De

singulariteit wordt nauwkeurig numeriek weg-geıntegreerd (met een trapeziummethode) in de voorlaatste

integratie. De buitenste integraal is dan van een reguliere functie en kan met een Gaussische kwadra-

tuur behandeld worden. Dit schema werkt voor de zeven bovenvernoemde singuliere integralen. Op

deze manier kunnen deze zonder beduidend verlies aan programmatijd tot op minstens 10−5 relatieve

nauwkeurigheid berekend worden.

Alle reguliere integralen worden eveneens met een Gaussische kwadratuurformule berekend. Als de

basisfuncties zeer dicht bij elkaar liggen (of elkaar overlappen) wordt een iets hogere orde van kwadra-

tuurformule gebruikt, om een vooropgestelde nauwkeurigheidstolerantie te bereiken (typisch 10−5).

2.5.2 Complexiteit

De momentenmethode leidt uiteindelijk tot een symmetrisch stelsel van N lineaire vergelijkingen met

complexe coefficienten. Er zijn verschillende exacte manieren om dit op te lossen, die allen O(N3) of meer

rekentijd vereisen. Het doel van deze thesis is het behandelen van grote tot zeer grote problemen en O(N3)

is dan bijzonder duur. Alternatief kan dit stelsel van vergelijkingen iteratief opgelost worden, en het is

deze weg die gevolgd wordt. Iteratieve oplossingsmethodes maken gebruik van een matrix-vectorproduct

om via opeenvolgende iteraties een steeds betere benadering van de oplossing (de coefficienten van de

Page 21: Een snelle multipoolmethode voor de verstrooiing aan extreem …lib.ugent.be/fulltxt/RUG01/001/311/808/RUG01-001311808... · 2010. 6. 7. · ook Pearl Jam, Joe Satriani, Madrugada,

2.6 Berekening van het verstrooide elektrisch veld 11

ontbinding van de stroomdichtheid in basisfuncties). Een matrix-vectorproduct kost O(N2) aan rekentijd

en dit moet per iteratie twee keer uitgevoerd worden. Alle iteratieve oplossingsmethodes garanderen een

quasi exacte oplossing na N iteraties, maar vaak, en dat is de reden waarom ze gebruikt worden, is na Nit

iteraties (met Nit << N) de oplossing al voldoende nauwkeurig. Bij wijze van voorbeeld wordt hier reeds

vooruitgelopen op resultaten met de multipoolmethodes, die het iteratieve algoritme versnellen, en waar

een probleem van N=300000 opgelost werd in 800 iteraties. In de ontwikkelingsfase zijn enkele iteratieve

oplossingsmethodes [10] de revue gepasseerd (ondermeer Conjugate Gradient en Bi-Conjugate Gradient

Stabilised), waarna uiteindelijk de keuze gevallen is op de Quasi Minimal Residual (QMR) methode. Deze

was zeker niet de enige mogelijkheid (en in het programma zijn in feite nog twee andere geımplementeerd,

waaronder CMSY [11]) maar ze heeft in elk geval steeds tot betrouwbare resultaten geleid binnen een

aanvaardbaar aantal iteraties. Wat de rekentijd betreft kunnen we dus besluiten tot een complexiteit van

O(NitN2). Ook de setup-tijd (de opstelling van het stelsel vergelijkingen) neemt een aanzienlijke tijd

in beslag omdat elk individueel matrix-element neerkomt op een viervoudige integratie. De berekening

van de bronterm (ten gevolge van Ei) en de bijdrage ten gevolge van ZJ nemen in vergelijking hiermee

slechts een verwaarloosbare tijd in.

Om het matrix-vectorproduct te kunnen berekenen, moeten de coefficienten van de matrix opgeslagen

worden. Er kan gebruik gemaakt worden van symmetrie om dit aantal met een factor twee te reduceren,

maar dan nog kan niets afgedaan worden aan de O(N2) complexiteit in geheugen. Dit betekent bijvoor-

beeld, om het wat concreet te situeren, dat een probleem van N=10000 zou leiden tot 16·100002

2·10242 = 760

MB geheugen, wat reeds een behoorlijk aanzienlijke hoeveelheid is voor niet eens zo’n grote configuratie.

2.6 Berekening van het verstrooide elektrisch veld

In de vorige sectie is besproken hoe op iteratieve wijze uiteindelijk de coefficienten van de basisfuncties

in de ontbinding van de stroomdichtheid berekend kunnen worden. Deze oplossing geeft ons dus een

benaderde uitdrukking voor de stroom op de patch antennes, geınduceerd door het invallend elektrisch

veld, met name

J(r) ≈Nx∑j=1

Ixj bx

j (r)ux +Ny∑j=1

Iyj by

j (r)uy (2.34)

Deze geınduceerde stromen geven aanleiding tot een verstrooid elektrisch veld, dat nu relatief eenvoudig

berekend kan worden, op basis van eerder gegeven formules. Er zijn in essentie twee manieren, een exacte

op basis van de potentialen of op basis van de Greense dyade, en een benaderde verre veld oplossing die

alleen geldig zal zijn op voldoende grote afstand van de patch antennes maar wel sneller berekend kan

worden.

Page 22: Een snelle multipoolmethode voor de verstrooiing aan extreem …lib.ugent.be/fulltxt/RUG01/001/311/808/RUG01-001311808... · 2010. 6. 7. · ook Pearl Jam, Joe Satriani, Madrugada,

2.6 Berekening van het verstrooide elektrisch veld 12

2.6.1 Via de potentialen

We hernemen een eerder afgeleide formule:

Es(r) = −jωµ

∫V

J(r′)G(r|r′)dV (r′)− 1ε∇

∫V

ρ(r′)G(r|r′)dV (r′) (2.35)

De gradient duidt hier op de r-coordinaten en kan dus onder het integraalteken gebracht worden. Daar-

naast wordt ook hier gebruik gemaakt van de wet van ladingsbehoud om de ladingsdichtheid te elimineren

ten gunste van de stroomdichtheid. Als laatste wordt dan de eerder gevonden uitdrukking voor de stroom-

dichtheid hierin gesubsitueerd, net zoals de uitdrukking voor zijn divergentie.

Es(r) =− jωµ

Nx∑j=1

Ixj ux

∫S

bjx(r′)G(r|r′)dS(r′)−

jωµ

Ny∑j=1

Iyj uy

∫S

bjy(r′)G(r|r′)dS(r′)−

j

ωε

Nx∑j=1

Ixj

∫S

pjx(r′)∇G(r|r′)dS(r′)−

j

ωε

Ny∑j=1

Iyj

∫S

pjy(r′)∇G(r|r′)dS(r′)

(2.36)

Hierin is ∇G(r|r′) een vector die componenten heeft volgens de drie cartesiaanse richtingen. Numerieke

implementatie van deze formule wordt gedaan door met een wiskundig programma zoals Maple een

analytische uitdrukking te berekenen voor ∇G(r|r′). Een alternatief dat vaak gehanteerd wordt is om de

gradient te berekenen op basis van een centrale differentie, maar deze weg is hier niet gevolgd.

2.6.2 Via de Greense Dyade

Deze methode steunt op de volgende uitdrukking, die ook eerder gegeven is en hier opnieuw hernomen

wordt:

Es(r) =∫V

G(r|r′) · J(r′)dV (r′) (2.37)

Hierin kan rechtstreeks de ontbinding van de stroom gesubstitueerd worden en we vonden triviaal:

Es(r) =Nx∑j=1

Ixj

∫S

G(r|r′) · uxbjx(r′)dV (r′)+

Ny∑j=1

Iyj

∫S

G(r|r′) · uybjy(r′)dV (r′)

(2.38)

Numerieke implementatie vereist een uitdrukking voor de tensor G(r|r′) die, hoewel behoorlijk lelijk

van vorm, voor een programma als Maple geen problemen stelt.

Page 23: Een snelle multipoolmethode voor de verstrooiing aan extreem …lib.ugent.be/fulltxt/RUG01/001/311/808/RUG01-001311808... · 2010. 6. 7. · ook Pearl Jam, Joe Satriani, Madrugada,

2.6 Berekening van het verstrooide elektrisch veld 13

Er is uiteraard geverifieerd dat zowel de methode met de potentialen als die met de Greense dyade

dezelfde resultaten opleveren. Voor de rest is er weinig onderscheid tussen beide methodes en typisch

geven ze tot op ongeveer 10−13 hetzelfde resultaat. Het enige probleem stelt zich in de buurt van de

singulariteit, waar de integratie behandeld moet worden als een principal value integraal en waarbij een

extra term verschijnt, zoals besproken in de Appendix. Dit geval is in de thesis niet geımplementeerd en

zal dus ook niet in detail besproken worden.

2.6.3 Berekening van het verre veld

Bovenstaande methodes om het veld te berekenen leiden nog steeds tot een integratie over het gebied van

de basisfuncties, die numeriek berekend moeten worden en dus veel tijd in beslag kunnen nemen. Een

benaderende methode, die echter goede resultaten geeft op voldoende afstand van de stroomdichtheden

op de antennes, is de verre veld methode. De formule voor deze wordt afgeleid in elk basishandboek over

elektromagnetisme [4] en is als volgt

limkr→∞

Es = F (θ, φ)e−jkr

r(2.39)

met

F (θ, φ) = jωur × ur × N(θ, φ) (2.40)

en

N(θ, φ) =µ0

∫V

ejkur·r′ j(r′)dV (r′) (2.41)

Rekenen we dit uit voor elke basisfunctie apart en kiezen we steeds de oorsprong van het assenstelsel in

het midden van de basisfunctie, dan leidt deze uitdrukking tot nauwkeurige resultaten reeds op enkele

golflengtes van de antennes. Het essentiele punt is hierbij ook dat voor N(θ, φ) een analytische uitdrukking

berekend kan worden, alweer met een wiskundeprogramma zoals Maple. Verre veldberekeningen gaan

dus bijzonder snel. Ook hier is geverifieerd dat voor toenemende afstand tot de antennes het berekende

veld convergeert naar de oplossing via potentialen of via de dyade. De snelheid van berekening wordt

van aanzienlijk belang als men zich realiseert dat voor elk punt waarin men het verstrooide veld wil

kennen, men normaal gezien N keer een dubbele integraal moet uitwerken. Voor het verre veld herleidt

deze dubbele integraal zich tot een analytische uitdrukking. Er wordt dus niets veranderd aan de O(N)

complexiteit die gepaard gaat met het berekenen van het verstrooide veld, maar wel in zeer substantiele

mate aan de voorfactoren.

Page 24: Een snelle multipoolmethode voor de verstrooiing aan extreem …lib.ugent.be/fulltxt/RUG01/001/311/808/RUG01-001311808... · 2010. 6. 7. · ook Pearl Jam, Joe Satriani, Madrugada,

FMM 14

Hoofdstuk 3

FMM

3.1 Doel

In dit hoofdstuk wordt de Fast Multipole Method (FMM) besproken. De theorie wordt afgeleid en een

schatting van de complexiteit wordt gegeven. FMM is slechts een tussenstap op weg naar ML-FMA

en wordt hier alleen gegeven om reeds enkele gemeenschappelijke aspecten met ML-FMA in een iets

minder ingewikkeld kader te kunnen behandelen. Het doel van dit hoofdstuk is dus voornamelijk een

uiteenzetting van de theoretische aspecten en niet een gedetailleerde prestatievergelijking met de klassieke

momentenmethode. De theorie is gebaseerd op [1] en [5].

3.2 Theoretische afleiding

Bij de FMM wordt gebruik gemaakt van de EFIE integraalvergelijking in MPIE vorm, net zoals in

het vorige hoofdstuk. Dezelfde ontbinding in basisfuncties wordt vooropgesteld en ook hier worden de

basisfuncties zelf als testfuncties gebruikt. Dit leidt ertoe dat voor de FMM methode hetzelfde stelsel

lineaire vergelijkingen bekomen wordt als voor de klassieke momentenmethode. Om het overzicht te

behouden wordt dit stelsel vergelijkingen hier nog eens gegeven.

∫S

bxi (r)ux · Einc(r)dS(r) =jωµ

Nx∑j=1

Ixj

∫S

bxi (ri)

∫S

bxj (rj)G(ri|rj)dS(rj)dS(ri)−

j

εω

Nx∑j=1

Ixj

∫S

pxi (ri)

∫S

pxj (rj)G(ri|rj)dS(rj)dS(ri)−

j

εω

Ny∑j=1

Iyj

∫S

pxi (ri)

∫S

pyj (r′)G(r|rj)dS(rj)dS(ri)+

Nx∑j=1

Ixj

∫S

bxi (ri)

∫S

Z(rj)bxj (ri)dS(rj)dS(ri)

(3.1)

Page 25: Een snelle multipoolmethode voor de verstrooiing aan extreem …lib.ugent.be/fulltxt/RUG01/001/311/808/RUG01-001311808... · 2010. 6. 7. · ook Pearl Jam, Joe Satriani, Madrugada,

3.2 Theoretische afleiding 15

Figuur 3.1: Opdeling in groepen (rood) van basisfuncties (blauw bolletje = centrum)

voor i = 1..Nx en analoge vergelijkingen voor y. Dit brengt het totaal op Nx + Ny = N vergelijkingen in

evenveel onbekenden.

De Greense functie in 3D wordt gegeven door

G(r|r′) =14π

e−jk|r−r′|

|r − r′|(3.2)

We proberen deze nu in een vorm te brengen die ons uiteindelijk zal toelaten het matrix-vectorproduct

aanzienlijk te versnellen. We maken gebruik van volgende reeksontwikkeling

e−jk|D+d|

|D + d|= −jk

∞∑l=0

(−1)l(2l + 1)jl(kd)h(2)l (kD)Pl(d · D) (3.3)

geldig als d < D. Daarnaast wordt ook nog volgende identiteit toegepast.

4πjljl(kd)Pl(d · D) =∫

d2kejk·dPl(k · D) (3.4)

met∫

d2k de integratie over de eenheidsbol. Combinatie van deze twee uitdrukking levert dan, na

omwisseling van de volgorde van integratie en sommatie,

e−jk|D+d|

|D + d|≈ −jk

∫d2kejk·dTL(k · D) (3.5)

met

TL(k · D) =L∑

l=0

jl(2l + 1)h(2)l (kD)Pl(k · D) (3.6)

Merk op dat in deze laatste uitdrukking de oneindige reeks reeds tot op orde L afgekapt is. Dit gaat een

fout introduceren, die verder besproken zal worden. De Greense kernel op deze manier schrijven zal nu

toelaten, na opdeling in groepen, interacties te bundelen.

De basisfuncties worden nu opgedeeld in G groepen van elk ongeveer M=N/G basisfuncties, zoals

getoond in Figuur 3.1. Daartoe wordt dus zoals gewoonlijk het vlak opgedeeld in groepen (die zowel x-

als y-gerichte basisfuncties bevatten) (best met vierkante vorm) waarvan de centra aangeduid worden met

Page 26: Een snelle multipoolmethode voor de verstrooiing aan extreem …lib.ugent.be/fulltxt/RUG01/001/311/808/RUG01-001311808... · 2010. 6. 7. · ook Pearl Jam, Joe Satriani, Madrugada,

3.2 Theoretische afleiding 16

de vector rm. Stel dat rj tot de groep m behoort en ri tot de groep m’, dan kan rij ook geschreven worden

als rim′ + rm′m − rjm. Gebruiken we nu in bovenbeschreven ontbinding D = rm′m en d = rim′ − rjm,

dan krijgen we:e−jk|ri−rj |

|ri − rj |=

∫d2kejk·(rim′−rjm)αm′m(k, rm′m) (3.7)

met dus

αm′m(k, rm′m) =−jk

L∑l=0

jl(2l + 1)h(2)l (krm′m)Pl(k · rm′m) (3.8)

Merk op dat Figuur 3.1 een vereenvoudigd beeld geeft. Typisch bevat een groep ongeveer 13 × 13

segmentjes en dus ongeveer 340 basisfuncties. De basisfuncties wiens centrum op de rand van twee

groepen vallen, worden in een van beide onderverdeeld. De keuze om de groepen op het rooster te

’sticken’, geeft aanleiding tot een hoge herbruikbaarheid van interacties, zoals verder zal blijken, en

bijgevolg tot aanzienlijke winsten in geheugenverbruik.

Brengen we dit nu in de uitdrukking voor de matrix-elementen, dan vinden we ondermeer dat∫S

bxi (ri)

∫S

bxj (rj)

e−jk|ri−rj |

|ri − rj |dS(rj)dS(ri)

=∫

d2k

∫S

bxi (ri)ejk·rim′

∫S

bxj (rj)e−jk·rjmαm′m(k, rm′m)dS(rj)dS(ri)

=∫

d2k(∫S

bxi (ri)ejk·rim′dS(ri))(αm′m(k, rm′m))(

∫S

bxj (rj)e−jk·rjmdS(rj))

(3.9)

Er wordt nu de volgende verkorte notatie ingevoerd, om de notatie te verlichten.

Zbxim′(k) =∫S

bxi (ri)ejk·rim′dS(ri)

Zpxim′(k) =∫S

pxi (ri)ejk·rim′dS(ri)

en hun logische analogons voor y. Voor het bovengaande vinden we dus:∫S

bxi (ri)

∫S

bxj (rj)

e−jk|ri−rj |

|ri − rj |dS(rj)dS(ri) =

∫d2kZbxim′(k)(αm′m(k, rm′m))Z∗

bxjm(k) (3.10)

en volkomen analoog∫S

pxi (ri)

∫S

pxj (rj)

e−jk|ri−rj |

|ri − rj |dS(rj)dS(ri) =

∫d2kZpxim′(k)(αm′m(k, rm′m))Z∗

pxjm(k) (3.11)

Deze integralen kunnen met een kwadratuurformule numeriek uitgerekend worden. In het geval van FMM

is met een Gaussische kwadratuurformule en trapeziumregel gewerkt. De eerste formule herleidt zich dan

bijvoorbeeld tot∫S

bxi (ri)

∫S

bxj (rj)

e−jk|ri−rj |

|ri − rj |dS(rj)dS(ri) =

Q∑q=1

Zbxim′(kq)(αm′m(kq, rm′m))Zbxjm(kq) (3.12)

en uiteraard analoog voor de tweede. De keuze van Q, de orde van de kwadratuurformule, zal eveneens

verder besproken worden. De gewichten van de integratie zijn hier meteen opgenomen in αm′m(kq, rm′m),

om de notatie niet nodeloos te verzwaren.

Page 27: Een snelle multipoolmethode voor de verstrooiing aan extreem …lib.ugent.be/fulltxt/RUG01/001/311/808/RUG01-001311808... · 2010. 6. 7. · ook Pearl Jam, Joe Satriani, Madrugada,

3.2 Theoretische afleiding 17

Merk op dat deze methode slechts geldt als ri en rj voldoende ver uit elkaar gelegen zijn, met name

als |rim′ − rjm| < |rm− rm′ |. Omdat dit zeker niet voor alle interacties het geval is, worden de interacties

opgedeeld in twee types: nabije en verre interacties. Als de basisfuncties zich in naburige groepen

bevinden (waarbij naburig verder gespecifieerd zal worden), dan geldt de interactie als nabij. Als de

groepen waartoe de basisfuncties behoren zich voldoende ver van elkaar bevinden, dan klasseren we het

als een verre interactie. Op die manier wordt het stelsel

[A][X] = [B] (3.13)

opgesplitst als

([A]near + [A]far)[X] = [B] (3.14)

Hierin is [X] de vector met de onbekende stroom-coefficienten, [B] de vector die het linkerlid van het

stelsel lineaire vergelijkingen bevat en [A] de matrix met matrix-elementen. De matrix [A]near wordt

opgesteld zoals in de klassieke momentenmethode. De multipoolmethodes zijn alleen van toepassing op

het verre gedeelte.

Bovenstaande methode om de matrix-elementen te herschrijven staat ons nu toe het stelsel lineaire

vergelijkingen als volgt te noteren, waarbij we zoveel mogelijk interacties bundelen.

∫S

bxi (r)ux · Einc(r)dS(r) = [A]near,i[X]

+jωµ

Q∑q=0

Zbxim′(kq)∑

m/∈NN(m′)

αm′m(kq, rm′m)∑

j∈G(m)

Zbxjm(−kq)Ix

− j

4πεω

Q∑q=0

Zpxim′(kq)∑

m/∈NN(m′)

αm′m(kq, rm′m)(∑

j∈G(m),x

Zpxjm(−kq)Ix +∑

j∈G(m),y

Zpyjm(−kq)Iy)

(3.15)

en ook hier weer een analoog stel vergelijking voor de y-gerichte basisfuncties. Hierin is NN(m) de verza-

meling van groepen die naburig zijn aan groep m en G(m) de verzameling van basisfuncties die tot groep

m behoren. [A]near,i[X] is de bijdrage van de nabije elementen. Deze bevat uiteraard ook de term met

de oppervlakte-impedantie. Het rechterlid van bovenstaande formule is eigenlijk een uitdrukking van het

matrix-vector product. Om de complexiteit hiervan uit te drukken, moeten echter eerst de afkap-grenzen

bepaald worden, met name L als grens van de truncatiereeks en Q als orde van de kwadratuurformule.

In Chew wordt aangetoond dat

L ≈ kd + 1.8d2/30 (kd)1/3 (3.16)

waarin d0 = log(1/ε) en ε de gewenste relatieve nauwkeurigheid op de matrix-elementen. Een hoge L

zal tot een langere rekentijd leiden, maar ook tot hogere nauwkeurigheid. Merk echter op dat L niet

willekeurig verhoogd kan worden, vanwege de instabiliteit van de ontbinding. Dit zal in het volgende

hoofdstuk over MLFMA nog afdoende behandeld worden. In [1] wordt eveneens aangetoond dat de 2L+1

Page 28: Een snelle multipoolmethode voor de verstrooiing aan extreem …lib.ugent.be/fulltxt/RUG01/001/311/808/RUG01-001311808... · 2010. 6. 7. · ook Pearl Jam, Joe Satriani, Madrugada,

3.3 Complexiteitsbepaling 18

trapeziumregel integratie op het interval [0,2π] voor φ en de L+1 Gauss-kwadratuur integratie op het

interval [0,π] voor θ nauwkeurige resultaten oplevert. Het is dan ook op deze manier geımplementeerd.

Deze keuze van Gaussische kwadratuur voor de integratie naar θ en equidistante integratiepunten voor

φ impliceert eigenlijk dat de integranda ontbonden worden in termen van sferische harmonieken. In de

praktijk blijkt overigens dat een licht oversamplen nodig is (een hogere Q) opdat de fout ten gevolge van

de numerieke integratie niet dominant wordt ten opzichte van die ten gevolge van de truncatie van de

reeks.

Met het oog op de complexiteitsbepaling, kunnen we dit nog herschrijven in matrix-vorm:∫S

bxi (r)ux · Einc(r)dS(r) = [A]near,i[X]

+jωµ

4π[Z]bxim′

∑m/∈NN(m′)

[α]m′m(rm′m)∑

j∈G(m)

[Z]bxjmIx

− j

4πεω[Z]pxim′

∑m/∈NN(m′)

[α]m′m(rm′m)(∑

j∈G(m),x

[Z]pxjmIx +∑

j∈G(m),y

[Z]pyjmIy)

(3.17)

Hierin zijn dus [Z]bxim′ en [Z]bxim′ 1xQ matrices, [α]m′m(rm′m) een diagonale QxQ matrix en [Z]bxjm,

[Z]pxjm en [Z]pyjm Qx1 matrices.

3.3 Complexiteitsbepaling

Met deze informatie uit het voorgaande zijn we nu in staat om de complexiteit te berekenen. Noemen we

d de maximale diameter van een groep. L is dan evenredig met d en Q evenredig met d2. Verder zal bij

een welbepaalde golflengte en grootte van de gridstap ook M (het aantal elementen per groep) evenredig

zijn met d2 en dus Q ∼ M . We onderscheiden in het matrix-vectorproduct nu drie afzonderlijke stappen:

de aggregatie, de translatie en de desaggregatie. Bekijken we nu van elk afzonderlijk de complexiteit.

De aggregatie betreft het berekenen van

∑j∈G(m)[Z]bxjmIx∑j∈G(m)[Z]byjmIy∑

j∈G(m),x[Z]pxjmIx +∑

j∈G(m),y[Z]pyjmIy

Het vermenigvuldigen van de stroomcoefficienten met de [Z]-matrices kost een tijd evenredig met NQ,

aangezien er N dergelijke stroomcoefficienten zijn en elke [Z]-matrix de dimensie Qx1 heeft. Nadien moet

ook de som gemaakt worden, per groep. Dit betekent dat we nog eens N keer twee Qx1 matrices moeten

optellen, of dus weer een tijd evenredig met NQ. We besluiten dus dat

Tagg ∼ NQ ∼ NM (3.18)

Bij de translatie worden deze aggregaties dan getransleerd en de translatie betreft dus het berekenen van

Page 29: Een snelle multipoolmethode voor de verstrooiing aan extreem …lib.ugent.be/fulltxt/RUG01/001/311/808/RUG01-001311808... · 2010. 6. 7. · ook Pearl Jam, Joe Satriani, Madrugada,

3.3 Complexiteitsbepaling 19

∑m/∈NN(m′)[α]m′m[AGG]x∑m/∈NN(m′)[α]m′m[AGG]y∑m/∈NN(m′)[α]m′m[AGG]xy

met [AGG] de in de aggregatie-stap berekende Qx1 matrices per groep(in respectievelijke volgorde).

Aangezien [α]m′m een diagonale QxQ matrix is, kost een product Q bewerkingen. Dit moet van ongeveer

G groepen naar ongeveer G groepen gedaan worden (op de correctie ten gevolge van de naburige groepen

na, hetgeen echter niets afdoet aan de complexiteit) en dus G2 keer. We vinden dus

Ttransl ∼ G2Q ∼ N2

M2M =

N2

M(3.19)

De laatste stap is de desaggregatiestap. Hierin wordt het volgende berekend

[Z]bxim′ [TR]xm′

[Z]byim′ [TR]ym′

[Z]pxim′ [TR]xym′

[Z]pyim′ [TR]xym′

met [TR] dus de in de voorgaande stap berekende Qx1 translaties. [Z][TR] kost dus Q bewerkingen, en

dit moet evenredig met N keer herhaald worden. We vinden dus voor de desaggregaties:

Tdesagg ∼ NQ ∼ NM (3.20)

Voor de totale tijd besteed aan de verre interacties vinden we dus:

T = Tagg + Ttransl + Tdesagg = C1N2

M+ C2NM (3.21)

We hebben nog de keuze in M om deze tijd te optimaliseren. Dit geeft M =√

C1C2N en voor voor T dan

finaal:

T = 2√

C1C2N1.5 (3.22)

Bekijken we nu nog de tijd die nodig is om de bijdrage van de nabije interacties uit te rekenen. Elk

element heeft een vast aantal nabije elementen, namelijk BM, waarbij B het aantal nabije groepen is.

Voor elk element moeten dus BM vermenigvuldingen gedaan worden en dit voor elk element, dus nog

eens maal N. Dit leidt tot dezelfde N1.5 afhankelijkheid voor de tijdsduur. We kunnen dus besluiten dat,

als we M goed kiezen, voor de totale tijdsduur Ttot gespendeerd aan een matrix-vectorproduct geldt

Ttot = O(N1.5) (3.23)

Wanneer we dit vergelijken met de O(N2) van de klassieke momentenmethode is dit een sterke vooruit-

gang, zeker als naar zeer grote N gekeken wordt. De O(N1.5)-afhankelijkheid wordt in simulaties goed

Page 30: Een snelle multipoolmethode voor de verstrooiing aan extreem …lib.ugent.be/fulltxt/RUG01/001/311/808/RUG01-001311808... · 2010. 6. 7. · ook Pearl Jam, Joe Satriani, Madrugada,

3.3 Complexiteitsbepaling 20

gevolgd. Ook de setup-tijd is een heel stuk korter, maar dit, tesamen met het geheugengebruik, wordt

hier niet in detail behandeld, aangezien FMM slechts een tussen-methode is. In het volgende hoofdstuk

over ML-FMA zal grondig aandacht besteed worden aan alle aspecten van tijdsduur en geheugen.

Page 31: Een snelle multipoolmethode voor de verstrooiing aan extreem …lib.ugent.be/fulltxt/RUG01/001/311/808/RUG01-001311808... · 2010. 6. 7. · ook Pearl Jam, Joe Satriani, Madrugada,

ML-FMA 21

Hoofdstuk 4

ML-FMA

4.1 Doel

In dit hoofdstuk wordt het eindpunt van deze thesis behandeld, met name het Multi-Level Fast Multipole

Algoritm (ML-FMA). De behandeling van de theorie gaat voort op die van FMM, aangezien het er een

logische uitbreiding van is, die echter wel wat moeilijkheden met zich meebrengt. In een tweede deel

worden meer implementatiegerichte maatregelen besproken, die tot doel hebben vooral het geheugenge-

bruik nog extra te beperken. Nadien wordt het ML-FMA op verschillende vlakken vergeleken met de

momentenmethode, die als referentie dienst doet. Snelheid, accuraatheid en geheugenverbruik komen

allen aan bod. De theorie is gebaseerd op [1].

4.2 Theoretische afleiding

4.2.1 Van FMM naar ML-FMA

ML-FMA is een veralgemening van FMM in de zin dat het zich niet beperkt tot het samennemen van

basisfuncties in groepen, maar daarenboven ook nog eens de groepen samenneemt in grotere groepen en

dit alles in meerdere lagen. Op deze manier wordt een hierarchische structuur bekomen op verschillende

’levels’. Het hoogste level wordt level 0 genoemd en is een vierkant dat de hele configuratie omvat. Dit

vierkant wordt dan onderverdeeld in 4 gelijke vierkanten die het eerste level uitmaken. Alleen vierkanten

waarin basisfuncties zitten worden bijgehouden. Op deze manier wordt verdergegaan tot het level L,

waar de groepen de grootte-orde van een golflengte hebben. Deze hierarchische opdeling wordt getoond

in Figuur 4.1 (de kleuren geven de groepen op een welbepaald level aan).

Het feit dat deze thesis werkt in het hoogfrequente gebied garandeert dat in zulke groepen nog een heel

aantal basisfuncties zitten, aangezien de gridstap ongeveer 1/10 van de golflengte is en een basisfunctie

zich over twee gridvakjes uitstrekt. Het idee is op zich eenvoudig: door tot op nog hogere levels te

aggregeren kan het aantal translaties en dus ook de rekentijd sterk verminderd worden. Hierbij moet

Page 32: Een snelle multipoolmethode voor de verstrooiing aan extreem …lib.ugent.be/fulltxt/RUG01/001/311/808/RUG01-001311808... · 2010. 6. 7. · ook Pearl Jam, Joe Satriani, Madrugada,

4.2 Theoretische afleiding 22

Figuur 4.1: Hierarchische opdeling in groepen op verschillende levels (vereenvoudigde voorstelling)

echter wel enige voorzichtigheid aan de dag gelegd worden, zoals in het volgende duidelijk zal worden.

Om te tonen op welke manier deze verdere opdeling in groepen tot voordeel leidt, wordt hier nog eens de

eerder afgeleide benadering van de Greense kernel gegeven:

e−jk|D+d|

|D + d|=−jk

∫d2kejk·dTL(k · D) (4.1)

met

TL(k · D) ≈L∑

l=0

jl(2l + 1)h(2)l (kD)Pl(k · D) (4.2)

Er wordt nogmaals vermeld, vanwege het grote belang, dat in deze uitdrukking moet gelden dat d < D,

anders gaat de formule niet op. Het is deze eis die enige voorzichtigheid vereist bij de behandeling. Bij

FMM maakten we hiervan gebruik door rij te schrijven als rim′ + rm′m − rjm en daarbij dan te stellen

dat D = rm′m en d = rim′ − rjm. ML-FMA veralgemeent dit principe naar meerdere lagen, met name

door te stellen:

rij = rim′L

+ rm′Lm′

L−1+ ... + rm′

KmK− ...− rmLmL−1 − rjmL

(4.3)

met hierin dus translatie op level K. De uitdrukking voor de Greense kernel kan dan gebruikt worden

door te stellen:

d = rim′L

+ rm′Lm′

L−1+ ...− ...− rmLmL−1 − rjmL

D = rm′KmK

Omdat de eis d < D moet gelden, zien we reeds dat niet elke interactie op het hoogste translatieniveau

behandeld zal kunnen worden. Dit gaat ertoe leiden dat er translaties zullen zijn op elke niveau en dat

Page 33: Een snelle multipoolmethode voor de verstrooiing aan extreem …lib.ugent.be/fulltxt/RUG01/001/311/808/RUG01-001311808... · 2010. 6. 7. · ook Pearl Jam, Joe Satriani, Madrugada,

4.2 Theoretische afleiding 23

alleen de interacties tussen die basisfuncties die zeer ver uit elkaar gelegen zijn op het hoogste niveau

getransleerd worden. Dit principe stelt het proces van translateren zo lang mogelijk uit opdat steeds

zoveel mogelijk interacties gebundeld kunnen worden.

Voor een welbepaalde interactie van j naar i zou de aggregatie-translatie-desaggregatieprocedure neer-

komen op het volgende:

• Als de basisfuncties nabij zijn (als hun moedergroepen te dicht bij elkaar liggen) wordt het matrix-

element volgens de klassieke momentenmethode berekend.

• Zo niet, wordt i geaggregeerd naar zijn moedergroep m. Er wordt nu gekeken of de moedergroep

van m dichtbij de moedergroep van de moedergroep van j ligt. Als dat het geval is, wordt er

getranslateerd, waarna er gedesaggregeerd wordt tot in j.

• Als dit niet het geval is, wordt er naar de hogere moedergroep geaggregeerd. Dit proces wordt

herhaald totdat de respectievelijke moedergroepen nabij zijn.

Dit geeft aanleiding tot een interactielijst voor elke groep. Deze interactielijst bevat de groepen op

haar level waarmee de groep zelf ver interageert, maar wiens moedergroepen nabij interageren. De

interactielijst bevat dus eigenlijk de lijst van groepen waarnaar getranslateerd wordt. De andere groepen

worden ofwel op een lager level reeds getranslateerd ofwel op een hoger level, namelijk als ook hun

moedergroepen zich voldoende ver van elkaar bevinden.

Een tweede probleem gaat over de bandbreedte van de functies die geıntegreerd worden over het k

bol-oppervlak. Deze problematiek is reeds kort aangeraakt in het deel over FMM, maar zal hier ver-

der uitgediept worden. Het punt is dat het aantal integratiepunten dat nodig is om een nauwkeurige

kwadratuurformule te hebben afhankelijk is van de bandbreedte. Een functie met een hoge bandbreedte

en dus met sterke oscillaties zal een hoge orde kwadratuurformule nodig hebben voor nauwkeurige in-

tegratie, terwijl net het omgekeerde geldt voor een functie met lage bandbreedte. Het integrandum is

quasi-bandbeperkt met bandbreedte 2L, waarbij L de truncatiegrens is. De bandbreedte van de geag-

gregeerde stralingspatronen is rechtevenredig met de diameter van de groep. Dit betekent dat naarmate

de translatie op een hoger niveau doorgaat we steeds meer integratiepunten nodig hebben. Het is echter

niet nodig om dit reeds te voorzien op het laagste niveau en alle stralingspatronen bij te houden voor alle

mogelijk aantal integratiepunten dat ze nodig zullen zijn. Het is voldoende om een stralingspatroon bij

te houden met een voldoende aantal punten om het op dat niveau zelf nauwkeurig te kunnen integreren.

Van zodra het stralingspatroon dan naar een hogere groep geaggregeerd moet worden, wordt een inter-

polatie naar de hogere bandbreedte uitgevoerd. Dezelfde redenering geldt bij de desaggregatie, waarbij

van een hoge bandbreedte naar een lagere bandbreedte gegaan wordt. Hier kunnen we het, dan reeds

getranslateerde, stralingspatroon anterpoleren. Dit interpoleren en anterpoleren is zowel nodig om de

snelheidscomplexiteit te kunnen halen (anders zouden steeds vectoren vermenigvuldigd moeten worden

met de dimensie van de hoogste bandbreedte) als om het geheugen te beperken (anders zouden alle ag-

gregatiepatronen moeten opgeslagen worden met de dimensie van het hoogste niveau). Rest dus nog het

Page 34: Een snelle multipoolmethode voor de verstrooiing aan extreem …lib.ugent.be/fulltxt/RUG01/001/311/808/RUG01-001311808... · 2010. 6. 7. · ook Pearl Jam, Joe Satriani, Madrugada,

4.2 Theoretische afleiding 24

probleem van een efficiente methode te vinden om deze interpolaties en anterpolaties uit te voeren. De

keuze is hierbij gevallen op het gebruik maken van een FFT: Fourier transformeren, zero-padden en weer

invers transformeren. Deze stappen zullen verder nog duidelijk gemaakt worden. Belangrijk is reeds op

te merken dat FFT een snelheidscomplexiteit van O(N log N) heeft. Het zal blijken dat gebruik van de

FFT-interpolatie zal leiden tot een globale snelheidscomplexiteit van O(N log2 N)

4.2.2 Het berekenen van het matrix-vectorproduct

Met deze informatie over interpolatie bij de hand kan nu een schema gegeven worden van de uit te voeren

taken bij een matrix-vectorproduct. Het komt neer op een up-sweep voor aggregaties en een down-sweep

voor translaties en desaggregaties.

• Up-sweep: In deze stap worden level per level de stralingspatronen geaggregeerd. Eerst worden,

net zoals in FMM, de stralingspatronen voor de laagste level groepen berekend en opgeslagen.

Nadien wordt dan het stralingspatroon van de moedergroepen berekend door de stralingspatronen

van haar (maximaal) vier kindergroepen te interpoleren en te aggregeren en nadien op te tellen bij

elkaar. Ook deze stralingspatronen worden opgeslagen. Dit wordt herhaald tot op het allerhoogste

niveau waarop translatie kan gebeuren. Het resultaat van deze stap zijn dus de geaggregeerde

stralingspatronen van alle groepen op alle levels, in steeds groter wordende matrices (waarbij de rij

duidt op de θ-coordinaat en de kolom op de φ-coordinaat) naargelang het level stijgt, om aan de

stijgende bandbreedte te voldoen.

• Down-sweep: Deze stap vertrekt van het hoogste interactie-level. De translaties tussen groepen die

op dit level in elkaars interactielijst staat worden eerst uitgevoerd. Nu wordt overgegaan naar het

level vlak onder het hoogste en hier worden nu de inkomende stralingspatronen voor alle groepen

berekend. Een groep kan op twee manieren een stralingspatroon ontvangen. Ofwel via desaggregatie

van haar moedergroep ofwel via translatie van een groep op haar eigen level die in haar interactielijst

staat. Desaggregatie gebeurt door het stralingspatroon van de moedergroep te verschuiven naar het

centrum van de kindergroep en nadien een anterpolatie uit te voeren naar de nieuwe bandbreedte.

Daarnaast krijgt de groep via translatie ook nog inkomende stralingspatronen van groepen uit haar

interactielijst, die bij dit eerder berekende stralingspatroon opgeteld worden. Wanneer deze stap

uitgevoerd is voor alle groepen op dit level, wordt op dezelfde manier weer een level gedaald. Merk

op dat het niet meer nodig is de stralingspatronen van hoger gelegen groepen bij te houden. Deze

kunnen nu eventueel gewist worden om geheugen te besparen. Dit principe wordt herhaald tot men

bij het laagste level gekomen is. Er wordt nu gedesaggregeerd naar de basisfuncties zelf.

Het resultaat van deze twee sweeps is dat het matrix-vectorproduct uitgerekend is. De winst ten opzichte

van FMM (dat eigenlijk MLFMA op slechts een level is), ligt in het feit dat er veel minder translaties

zijn. Elk stralingspatroon wordt pas dan getransleerd als het echt niet meer anders kan.

Page 35: Een snelle multipoolmethode voor de verstrooiing aan extreem …lib.ugent.be/fulltxt/RUG01/001/311/808/RUG01-001311808... · 2010. 6. 7. · ook Pearl Jam, Joe Satriani, Madrugada,

4.2 Theoretische afleiding 25

4.2.3 Gebruik van de formulering met Greense dyade

Dit algemene schema is geldig voor de formulering in vorm van de MPIE en met de Greense Dyade. Voor

FMM is gesteund op de MPIE, zowel voor de verre als de nabije interacties. Dit leidde tot het feit dat

er drie verschillende stralingspatronen per groep moesten geaggregeerd, getransleerd en gedesaggregeerd

worden, toen X,Y en XY genoemd. Dit betekende toen dat voor een x-gerichte basisfunctie bijdrages

van bx, px en py meegerekend moesten worden, terwijl voor een y-gerichte basisfunctie by, px en py

telden. Het gevolg was dat, omdat groepen zowel x-gerichte als y-gerichte basisfuncties bevatten, er drie

verschillende aggregaties gedaan moesten worden. Voor de concrete uitwerking wordt verwezen naar het

vorige hoofdstuk.

Het is nu mogelijk dit aantal van drie nog te reduceren tot twee wanneer gebruik gemaakt wordt van

een formulering van de EFIE op basis van de Greense dyade. Dit leidt dan tot een effectieve winst van

33% voor de verre interacties. De redenering is echter niet zo eenvoudig en wordt hier in detail gegeven.

Leiden we eerst het stelsel lineaire vergelijkingen af voor formulering met de Greense dyade. Uit

hoofdstuk 2 wordt deze integraalvergelijking hernomen:

Ei(r) · t =∫V

(G(r|r′) · J(r′)) · tdV (r′) + Z(r)J(r) · t (4.4)

Voor de dichte interacties is het gewenst nog steeds het eerder geımplementeerde en goed geteste MPIE

formalisme te gebruiken, dus om tot de formulering met de dyade te komen wordt exact dezelfde ont-

binding in basisfuncties gebruikt voor de stroomdichtheid en worden bovendien ook hier de basisfuncties

zelf als testfuncties gebruikt. Dit leidt dan eenvoudig tot de volgende uitdrukking voor het stelsel verge-

lijkingen: ∫S

bxi (r)ux · Einc(r)dS(r) =−

Nx∑j=1

Ixj

∫S

bxi (r)ux ·

∫S

G(r|r′) · bxj (r′)uxdS(r′)dS(r)−

Ny∑j=1

Iyj

∫S

bxi (r)ux ·

∫S

G(r|r′) · byj (r′)uydS(r′)dS(r)+

Nx∑j=1

Ixj

∫S

bxi (r)

∫S

Z(r)bxj (r)dS(r′)dS(r)

(4.5)

en een analoog stel voor de y-gerichte basisfuncties. Het is mogelijk de hele MPIE te vervangen door deze

formulering met Greense dyade. De matrix-elementen kunnen ook op deze manier uitgewerkt worden.

Dit is dan ook gedaan, bij wijze van verificatie, voor de elementen wiens basisfuncties niet overlappen.

Voor de nabije elementen en in het bijzonder voor de elementen waarbij de basisfuncties overlappen is

het echter aangewezen om met de MPIE te blijven werken omdat de singulareit bij de Greense dyade

veel moeilijker te extraheren is en daarenboven sterker is. Voor de verre elementen biedt het hier echter

voordelen, zoals hieronder aangetoond zal worden.

De Greense dyade in drie dimensies wordt gegeven door

G(r) = −jωµ(I +∇∇k2

)G(r) (4.6)

Page 36: Een snelle multipoolmethode voor de verstrooiing aan extreem …lib.ugent.be/fulltxt/RUG01/001/311/808/RUG01-001311808... · 2010. 6. 7. · ook Pearl Jam, Joe Satriani, Madrugada,

4.2 Theoretische afleiding 26

met G(r) de Greense functie in drie dimensies. We kunnen nu opnieuw het additietheorema toepassen en

vinden op analoge wijze als voor het geval met de Greense functie

G(r|r′) = −jωµ−jk

∫d2k(I − kk)ejk·dTL(k · D) (4.7)

Bekijken we het op dit moment voor de eenvoud vanuit een zuiver FMM-standpunt (de veralgemening

naar meerdere niveaus is volkomen analoog als voor de MPIE-formulering). We bestuderen het volgende

matrix-element, waar we de hierboven gevonden uitdrukking inbrengen:∫S

bxi (ri)ux ·

∫S

G(ri|rj) · bxj (ri)uxdS(rj)dS(ri) =

− jωµ

∫d2k(

∫S

bxi (ri)uxejk·rim′dS(ri)) · (I − kk)(αm′m(k, rm′m)) · (

∫S

bxj (rj)uxe−jk·rjmdS(rj))

(4.8)

Via uitschrijven in componenten kan eenvoudig aangetoond worden dat

(I − kk) = (I − kk)(I − kk) (4.9)

en dus kan bovenstaande uitdrukking nog herschreven worden als:

∫S

bxi (ri)ux ·

∫S

G(ri|rj) · bxj (ri)uxdS(rj)dS(ri) =

− jωµ

∫d2k[

∫S

bxi (ri)(I − kk) · uxejk·rim′dS(ri)] · αm′m(k, rm′m)[

∫S

bxj (rj)(I − kk)uxe−jk·rjmdS(rj)]

(4.10)

Ook hier wordt weer een verkorte notatie ingevoerd. De Zbxim′ en dergelijke vanuit FMM worden nu

matrices:

Zxim′(k) =∫S

bxi (ri)(I − kk) · uxejk·rim′dS(ri) (4.11)

De matrices met de e−jk·rjm kunnen berekend worden als het complex toegevoegde van die met een

plusteken in de exponent. In het Carthesiaanse stelsel dat ook voor het grid gebruikt wordt hebben deze

vectoren drie componenten. Dit zou betekenen dat ook hier drie translaties, aggregaties en desaggrega-

ties moeten gebeuren voor elke verre interactie, aangezien elke component afzonderlijk behandeld moet

worden. Kijken we nu echter in een geroteerd assenstelsel met als eenheidsvectoren k, θ en φ, met θ en

φ in principe willekeurig georienteerd maar loodrecht op elkaar en op op k, dan zien we dat geldt:

(I − kk) · Z = (φφ + θθ) · Z = Zφφ + Zθ θ (4.12)

en het blijkt dus deze vectoren slechts twee componenten hebben in dit assenstelsel. Dit betekent dus dat

er nu slechts twee aggregaties, translaties en desaggregaties moeten gebeuren, eentje van de φ-component

en eentje van de θ-component. De vectoren φ en θ worden gedefinieerd zoals in een klassiek sferisch

Page 37: Een snelle multipoolmethode voor de verstrooiing aan extreem …lib.ugent.be/fulltxt/RUG01/001/311/808/RUG01-001311808... · 2010. 6. 7. · ook Pearl Jam, Joe Satriani, Madrugada,

4.2 Theoretische afleiding 27

coordinatenstelsel, met θ de hoek tussen k en z en φ de hoek tussen de projectie van k in het XY-vlak

en x. We kunnen dan eenvoudig de componenten van bovenstaande matrices bepalen, met name

Zxim′φ(k) = − sinφ∫S

bxi (ri)ejk·rim′dS(ri) = − sinφZbxim′(k) (4.13)

Zxim′θ(k) = cos θZbxim′(k) (4.14)

Zyim′φ(k) = cos θ cos φZbyim′(k) (4.15)

Zyim′θ(k) = cos θ sinφZbyim′(k) (4.16)

De componenten kunnen dus uitgedrukt worden als functie van de reeds eerder berekende uitdrukkingen

voor de FMM-implementatie. We zien dat in de uitdrukkingen factoren van de vorm sinφ optreden,

die de bandbreedte van het integrandum iets zullen verhogen, zij het slechts zeer beperkt. Dit is in de

implementatie inderdaad ook waargenomen, doch het biedt geen problemen. Er wordt empirisch een iets

hoger aantal punten genomen. Het resultaat van de invoering van de formulering met Greense dyade is

nu finaal dat slechts twee in plaats van drie stralingspatronen berekend en getranslateerd moeten worden

per groep. De formuleringen met Greense dyade en in MPIE-vorm zijn met elkaar vergeleken en zij geven

inderdaad dezelfde uitkomst.

4.2.4 De instabiliteit van de reeksontwikkeling

We wensen hier even dieper in te gaan op de instabiliteiten die optreden als in de reeksontwikkeling

de truncatiegrens L te groot gekozen wordt. Bij oneindige numerieke precisie zou dit probleem niet

optreden, maar de hankelfunctie blaast op als de orde groter wordt dan het argument. Kijken we nog

eens terug naar formules (4.1) en (4.2). De hankel-functies nemen toe met stijgende l. De reden dat

de correcties op het resultaat desalniettemin kleiner worden is omdat na integratie en vermenigvuldiging

met de voorfactoren de eerdere termen uit de reeks aanleiding geven tot grotere bijdrages. Als we de

volgorde van sommatie en integratie niet veranderd hadden, dan zou er geen probleem zijn. Dan zou

elke reeksterm afzonderlijk geıntegreerd worden. Door ze echter eerst bij elkaar op te tellen blijven er

voor de eerste termen bijna geen beduidende cijfers meer over, ondanks het feit dat deze uiteindelijk

de belangrijkste bijdrage moeten leveren. Het feit dat de termen die de belangrijkste bijdrage moeten

leveren met het minste beduidende cijfers behandeld worden, geeft dus aanleiding tot een fout op het

resultaat. Bij nog grotere l worden de hankelfuncties zo groot dat de integratie van de hogere orde termen

niet meer tot kleine bijdrages leidt, maar door afrondingsfouten een explosie van het resultaat tot gevolg

heeft. Het is ook duidelijk dat dit effect uitgesteld kan worden door een getal voor te stellen met extra

bytes. In dit werk is systematisch gekozen voor de 8 bytes van double precision (zowel voor het reeel als

imaginair deel). Het nadeel van meer bytes is natuurlijk meer geheugenverbruik en meer rekentijd. In

Figuur 4.2 zetten we de relatieve nauwkeurigheid uit (gerefereerd ten opzichte van de berekening met de

klassieke momentenmethode) van een matrix-element tussen basisfuncties waarvan de groepen voldoende

ver van elkaar liggen en waarbij we L laten varieren. Voor L voldoende klein wordt de nauwkeurigheid

Page 38: Een snelle multipoolmethode voor de verstrooiing aan extreem …lib.ugent.be/fulltxt/RUG01/001/311/808/RUG01-001311808... · 2010. 6. 7. · ook Pearl Jam, Joe Satriani, Madrugada,

4.2 Theoretische afleiding 28

Figuur 4.2: Logaritme van de relatieve fout op een matrix-element bij varierende truncatiegrens L

steeds beter bij stijgende L. Bij een zekere truncatiegrens wordt dan een minimum in de fout bereikt,

waarna de numerieke onnauwkeurigheden beginnen overwegen. Voor groepen die relatief dicht bij elkaar

liggen kan het opblazend gedrag reeds beginnen nog voor de gewenste nauwkeurigheid bereikt is. In

dat geval is dus de enige oplossing om meer groepen tussen te laten alvorens de interacties als ver te

beschouwen. Dit geeft immers aanleiding tot een verhoging van D in de formule, waardoor het argument

van de hankel-functie toeneemt en niet zo snel overstegen wordt door orde.

4.2.5 Integratie en interpolatie met uniforme samples en FFT

Bij de implementatie van FMM is gebruikt gemaakt van een Gaussische kwadratuur, met dus niet-

equidistante integratiepunten, voor de θ-integratie. Voor het gebruiken van een FFT-interpolatie is het

noodzakelijk dat de kwadratuurpunten uniform verdeeld zijn. De hier volgende uiteenzetting steunt sterk

op [6] van Sarvas en voor het bewijs van enkele theorema’s wordt dan ook naar dit artikel verwezen.

Appendix B behandelt overigens in enige detail de interpolatie, anterpolatie en integratie op deze manier.

Het doel is het numeriek berekenen van integralen van het volgende type:

I =∫ 2π

0

∫ π

0

dθf(Ω)g∗(Ω) (4.17)

Deze functies worden overigens ondersteld sferisch te zijn. Een sferische functie wordt gekarakteriseerd

door f(2π − θ, φ + π) = f(θ, φ). Het kan eenvoudig aangetoond worden dat als f en g beide sferisch zijn,

dat dan geldt:

I =12

∫ 2π

0

∫ 2π

0

dθf(Ω)g∗(Ω) (4.18)

Page 39: Een snelle multipoolmethode voor de verstrooiing aan extreem …lib.ugent.be/fulltxt/RUG01/001/311/808/RUG01-001311808... · 2010. 6. 7. · ook Pearl Jam, Joe Satriani, Madrugada,

4.2 Theoretische afleiding 29

We nemen aan dat zowel van f als g de Fourier-reeks gekend is, met name:

f(Ω) =∑M ′

1m=−M1

∑N ′1

m=−N1amnejmθejnφ (4.19)

g(Ω) =∑M ′

2m=−M2

∑N ′2

m=−N2bmnejmθejnφ (4.20)

Hierbij is M ′i = Mi of M ′

i = Mi− 1 en idem voor N. We noemen Pi = Mi + M ′i + 1 en Qi = Ni + N ′

i + 1.

Deze grenzen kunnen eventueel ∞ zijn. Laat ons nu aannemen, en dit is uiteraard noodzakelijk om de

kwadratuurformule met een eindig aantal punten uit te voeren, dat minstens een van beide functies exact

of quasi bandbeperkt is. We definieren nu twee nieuwe functies, F en G, die de getrunceerde functies zijn

van f en g, wiens Fourier reeksen nu dezelfde bandbreedte hebben als de oorspronkelijke functie met de

kleinste bandbreedte.

F (Ω) =∑M ′

m=−M

∑N ′

m=−N amnejmθejnφ (4.21)

G(Ω) =∑M ′

m=−M

∑N ′

m=−N bmnejmθejnφ (4.22)

met dus met M = min(M1,M2) en idem voor N. We willen deze functie nu samplen in een aantal

punten, om de integratie te kunnen uitvoeren. De samplepunten die hierbij gebruikt worden liggen

tussen −π en π en zijn: θk = k 2πP en φl = l 2π

Q . Er worden dus zowel voor de integratie naar θ als naar φ

equidistante punten genomen. De functies F en G zijn uiteraard periodisch met periode 2π en dus kunnen

evengoed punten tussen 0 en 2π genomen worden. Uit het voorgaande blijkt dat deze samplewaarden

Fkl = F (θk, φk) en G∗kl = G∗(θk, φk) via een inverse Discrete Fourier Transformatie (DFT) bekomen

kunnen worden. In de Appendix wordt nu aangetoond dat geldt:

I =12(4π2)

1PQ

M ′∑k=−M

N ′∑l=−N

FklG∗kl (4.23)

Dit is van bijzonder belang. Om de integratie uit te voeren kunnen beide functies getrunceerd worden

naar de kleinste bandbreedte van beiden. Een inverse DFT van de getrunceerde reeksen levert dan de

samplewaarden op die gebruikt moeten worden.

Kijken we nu concreet naar de integraties die uitgevoerd moeten worden. Op het laagste level, level

L, zijn deze van het type ∫dkZiφ(k)(αm′m(k, rm′m))Z∗

jφ(k) (4.24)∫dkZiθ(k)(αm′m(k, rm′m))Z∗

jθ(k) (4.25)

waarbij Zi en Zj het gevolg kunnen zijn van x- of y-gerichte basisfuncties, waarbij dan de aangepaste

uitdrukking gebruikt moet worden. Beide integralen worden volledig analoog behandeld. Nemen we de

eerste en herschrijven we deze als

12

∫ 2π

0

∫ 2π

0

dθZiφ(k)αm′m(k, rm′m)| sin(θ)|Z∗jφ(k) (4.26)

Waarbij we gebruik gemaakt hebben van het feit dat Ziφ(k)Z∗jφ(k) sferisch is zodat het totale integrandum

nu sferisch is, vanwege de sferische uitbreiding van αm′m(k, rm′m)| sin(θ)| ten gevolge van het absolute-

waardeteken. Merk terzijde op dat de Zi antisferisch zijn, een term die in Appendix B geıntroduceerd

Page 40: Een snelle multipoolmethode voor de verstrooiing aan extreem …lib.ugent.be/fulltxt/RUG01/001/311/808/RUG01-001311808... · 2010. 6. 7. · ook Pearl Jam, Joe Satriani, Madrugada,

4.2 Theoretische afleiding 30

wordt, hetgeen enkele gevolgen heeft voor de inter- en anterpolatie, zoals eveneens in Appendix B bespro-

ken. Dit laat toe om de eerder afgeleide theorema’s in verband met de integratie toe te passen. Als op

level L de truncatie-grens van αm′m(k, rm′m) LL is, dan is Znφ(k) quasi-bandbeperkt met bandbreedte

ongeveer NL ≈ LL/2 (zowel in θ als φ). Over de precieze methode om de bandbreedtes te bepalen wordt

verder nog gesproken, maar hier is ze momenteel van weinig belang. We willen hier dus het product van

Ziφ(k) (met bandbreedte NL) met αm′m(k, rm′m)| sin(θ)|Z∗jφ(k) (ten gevolge van de | sin(θ)| niet band-

beperkt) integreren. Volgens het eerder afgeleide theorema moeten we de tweede factor dus trunceren

tot NL. Hiertoe gebruiken we theorema 4.1 uit [6] (zie Appendix). De procedure om deze integraal uit

te rekenen komt dan finaal neer op het volgende.

• Interpoleer Zjφ(k) naar 2NL

• Trunceer αm′m(k, rm′m)| sin(θ)| tot 2NL

• Vermenigvuldig hun samples en trunceer het resultaat naar NL

• Vermenigvuldig dit resultaat nu met de samples van Ziφ(k)

De truncatie van αm′m(k, rm′m)| sin(θ)| gebeurt door bepaling van het nodige aantal Fourier coefficienten,

waarna een inverse Fourier transformatie uitgevoerd wordt. De bepaling van de Fourier coefficienten

gebeurt via een recursie-betrekking, gebaseerd op de definitie van de Fourier coefficienten. Deze methode

wordt in de Appendix verder besproken. Merk op dat deze functie sterk bandonbeperkt is (bij θ = kπ

gedraagt de functie zich niet continu afleidbaar), wat het zeer moeilijk maakt om deze truncatie op een

andere manier uit te voeren. Een alternatief zou kunnen zijn de functie met bijzonder hoge dimensie te

samplen en nadien de Fourier reeks daarvan te trunceren. De vereiste dimensie blijkt echter dusdanig

hoog te zijn voor een redelijke nauwkeurigheid dat dit niet haalbaar is. Het zal verder echter blijken dat

ook de recursiebetrekking nog voor problemen kan zorgen.

Interpolatie gebeurt via een proces dat gekend staat als ’zero-padding’. Van de oorspronkelijke functie

worden de Fourier coefficienten berekend, waarna een nieuwe fourier-reeks bekomen wordt door de oude

coefficienten uit te breiden met een gepast aantal nullen. Van deze nieuwe reeks wordt dan de inverse

Fourier transformatie genomen. Dit heeft tot resultaat dat een nieuwe matrix van equidistante sample-

waarden bekomen wordt, van hogere dimensie dan de oude, die dezelfde functie beschrijft. Dit is duidelijk

het tegengestelde proces van truncatie (of anterpolatie), waarbij de Fourier reeks niet uitgebreid wordt

met extra nullen maar waarbij daarentegen vanaf een bepaalde truncatiegrens de reeks beeindigd wordt.

Voor de hogere levels moeten eerst de geınterpoleerde aggregaties berekend worden. Deze worden

Zjφ,K(k) genoemd, voor het level K, en worden berekend door de aggregatiepatronen van de kindergroe-

pen te interpoleren tot NK , de bandbreedte van ZjφK(k), en nadien te verschuiven tot het centrum van

de groep zelf, waar ze bij elkaar opgeteld worden. Onderstellen we dat alle aggregatiepatronen berekend

zijn en kijken we nu op het level L-1 (het op een na laagste niveau), waar we de volgende integraal moeten

Page 41: Een snelle multipoolmethode voor de verstrooiing aan extreem …lib.ugent.be/fulltxt/RUG01/001/311/808/RUG01-001311808... · 2010. 6. 7. · ook Pearl Jam, Joe Satriani, Madrugada,

4.3 Snelheidscomplexiteit 31

berekenen:12

∫ 2π

0

∫ 2π

0

dθZiφ,L−1(k)αm′m(k, rm′m)| sin(θ)|Z∗jφ,L−1(k) (4.27)

Dezelfde stappen als hierboven worden dan gevolgd om αm′m(k, rm′m)| sin(θ)|Z∗jφ,L−1(k) te trunceren tot

NL−1, het resultaat waarvan we RL−1 noemen. Bovendien geldt nu dat Ziφ,L−1(k) = Ziφ,L(k)ejk·rb . De

te berekenen integraal is nu12

∫ 2π

0

∫ 2π

0

dθZiφ,L(k)ejk·rbRL−1(k) (4.28)

Volgens lemma 4.2 uit [6] (Appendix B) vinden we nu dat deze integraal op de volgende manier uitgerekend

wordt:

• Verschuif RL−1 door vermenigvuldiging met ejk·rb , beide op NL−1 gesampled.

• Anterpoleer het resultaat naar NL

• Vermenigvuldig puntgewijs met Ziφ,L(k)

Deze interpolatiemethode lijkt misschien omslachtig, maar ze heeft als grote voordeel dat ze exact is, op

voorwaarde dat de functies ook exact bandbeperkt zijn. Andere methodes, zoals Laplace-interpolatie, in-

troduceren altijd een kleine fout, die dan nog extra gecontroleerd moet worden. Het gaat hier steeds over

een dubbele FFT, naar θ en φ. In de Appendix wordt nog getoond hoe deze, voor een (anti)sferische of (an-

ti)transsferische functie, snel geımplementeerd kan worden. Bovendien moet, vanwege het (anti)sferisch

of (anti)transsferisch karakter, maar de helft van de datapunten bijgehouden worden, aangezien de andere

helft hieruit eenvoudig afgeleid kan worden.

4.3 Snelheidscomplexiteit

In deze sectie wordt de snelheidscomplexiteit van het MLFMA aangetoond. Dit is uiteraard een bijzonder

belangrijke karakteristiek van een methode die speciaal ontworpen is om snel te zijn. Hierbij wordt vooral

aandacht besteed aan het asymptotisch gedrag en worden kleinere termen meteen verwaarloosd. Er wordt

dus niet gepoogd een exacte formule op te stellen voor het tijdsgedrag, maar uitsluitend de dominerende

term te bepalen. Het berekenen van een matrix-vectorproduct wordt door het algoritme opgedeeld in drie

stappen: de near interactions, de up-sweep (met de aggregaties) en de down-sweep (met de translaties

en de desaggregaties). In het vervolg zullen deze drie dan ook afzonderlijk behandeld worden. Om te

beginnen worden nog enkele nuttige afhankelijkheden en constantes besproken, alsook de vereiste kost

voor het uitvoeren van een interpolatie of een anterpolatie.

Ten eerste dient opgemerkt te worden dat het aantal elementen per groep op het laagste niveau

een constante is en niet afhankelijk is van N. Dit aantal noemen we M. Overigens zullen we, tenzij dit

verwarring schept, het aantal basisfuncties per groep op een hoger niveau ook M noemen. Bij verwarring

zal een index vermeld worden die het level aangeeft. Typisch heeft een groep op het laagste niveau

ongeveer de afmeting van een golflengte en bevinden er zich dus in de orde van een honderdtal basisfuncties

Page 42: Een snelle multipoolmethode voor de verstrooiing aan extreem …lib.ugent.be/fulltxt/RUG01/001/311/808/RUG01-001311808... · 2010. 6. 7. · ook Pearl Jam, Joe Satriani, Madrugada,

4.3 Snelheidscomplexiteit 32

per groep. Gaan we een level omhoog, dan neemt het aantal basisfuncties in een groep toe. Als de

moedergroep vier volle kindergroepen samenneemt, dan zitten er dus ook vier keer zoveel basisfuncties

in de moedergroep. Eventueel is het mogelijk dat een moedergroep slechts twee of eventueel slechts een

kindergroep heeft. Dit laatste geval is niet gunstig voor de snelheid en best wordt in zulke gevallen het

aantal niveaus dan ook beperkt, precies om dit te vermijden. In het vervolg zal altijd aangenomen worden

dat een moedergroep twee tot vier kindergroepen samenneemt. Hoe meer groepen samengenomen worden,

hoe efficienter het algoritme. De bandbreedte van een groep, en dus ook het aantal punten dat nodig is

om te kunnen integreren, is evenredig met d2, waarbij d de diameter van de groep is. Ook het aantal

basisfuncties in een groep, M, is evenredig met dit getal. Bijgevolg zal dus de dimensie van de matrix

(aantal rijen × aantal kolommen) waarmee de stralingspatronen opgeslagen zijn op elk niveau evenredig

zijn met het aantal elementen in deze groep. De stralingspatronen worden opgeslagen in matrices die in

een niet-efficiente implementatie quasi vierkant zouden zijn. De rij-index komt overeen met de θ-hoek

en de kolom-index met de φ-hoek. Op die manier worden de tweedimensionele discretisaties opgeslagen

in een matrix. Het sferisch of antisferisch karakter van de functies staat echter toe dit aantal nog te

halveren. Als P het aantal discretisatiepunten is voor π of θ is de dimensie van de matrices waarin de

stralingspatronen gediscretiseerd opgeslagen worden dus ongeveer gelijk aan P/2×P , uitgaande van het

feit dat θ en φ met ongeveer evenveel punten gediscretiseerd worden. Dit kan eventueel een of twee

punten schelen, maar er wordt hier uitsluitend naar het asymptotisch karakter gekeken. Er geldt dus ook

P 2 ∼ M , op elk niveau.

Bekijken we nu het aantal levels dat gebruikt worden. Stel dat de groepen steeds vol zijn en dat een

maximaal dense structuur gebruikt wordt, waarbij dus elke moedergroep vier kindergroepen samenneemt.

Een groep op het laagste level zou dan M basisfuncties bevatten. Op het tweede level bevatten de groepen

dan 4M basisfuncties (met M nu steeds het aantal basisfuncties per groep op het laagste niveau) en op

het derde 42M basisfuncties, enzovoort. Als de structuur onderverdeeld wordt in K levels, dan bevat het

hoogste level dus 4(K−1)M basisfuncties. Schrijven we nu K als functie van N, dan vinden we voor het

aantal levels:

K ∼ log(N) (4.29)

Om deze inleidende bemerkingen te besluiten, berekenen we nog de complexiteit die gepaard gaat bij het

interpoleren van een matrix van P/2 × P tot een matrix van P × 2P . In de Appendix wordt uitgelegd

op welke manier de tweedimensionale FFT van een sferische functie efficient geımplementeerd is. In een

eerste stap wordt de FFT van de kolommen berekend. Dit kost O(P 2 log P ). In een tweede stap wordt

uitgebreid, hetgeen O(P 2) rekenwerk vereist. In een derde stap wordt dan de FFT van de rijen genomen,

hetgeen weer tot O(P 2 log P ) leidt. Nu moet deze fourier-transform aangevuld worden met nullen (het

zero-padden). Dit vereist eigenlijk gewoon het overschrijven van een volledige nulmatrix met blokken uit

de vorige matrix en kost dus ook O(P 2) rekentijd. In een laatste stap moet nu de inverse FFT genomen

worden van deze grotere matrix. Dit kost meer tijd dan de FFT van de kleinere, maar de complexiteit is

op dezelfde manier afhankelijk van P. Dit alles leidt ertoe dat het interpoleren van een dergelijke matrix

Page 43: Een snelle multipoolmethode voor de verstrooiing aan extreem …lib.ugent.be/fulltxt/RUG01/001/311/808/RUG01-001311808... · 2010. 6. 7. · ook Pearl Jam, Joe Satriani, Madrugada,

4.3 Snelheidscomplexiteit 33

tot de dubbele bandbreedte een complexiteit vertoont van O(P 2 log P 2) ∼ O(M log M). Deze uitdrukking

is op elk niveau geldig en zal in het vervolg nog uitvoerig gehanteerd worden.

4.3.1 Near Interactions

Naargelang het aantal groepen dat beschouwd wordt als dichte naburen, verandert ook het aantal ba-

sisfuncties waarmee elke basisfunctie nabij interageert. Dit aantal is echter onafhankelijk van N en

uitsluitend afhankelijk van M, die een constante is, en de gewenste nauwkeurigheid. Het aantal nabije

interacties is dus ook evenredig met N. Bijgevolg geldt

Tnear ∼ O(N) (4.30)

Dit is een niet onbelangrijk verschil met FMM, waar bij toenemende N ook de groepen zelf (en dus M)

toenamen en het aantal dichte interacties dus superlineair groeide.

4.3.2 Up-sweep

In deze stap worden alle stralingspatronen geaggregeerd, met name voor alle groepen en op alle levels.

In een eerste fase worden de Z-matrices op het laagste niveau (dimensie ∼ M) vermenigvuldigd met de

stroomcoefficienten en nadien bij elkaar opgeteld, om de stralingspatronen op het laagste level te bekomen.

Deze stap is volkomen equivalent aan die van FMM en vereist eveneens O(N) bewerkingen. Bekijken

we nu een volledig willekeurig tussenlevel en op dit tussenlevel een groep. Om het stralingspatroon

van deze groep te bekomen moeten enkele stappen ondernomen worden. In eerste instantie moeten de

stralingspatronen van de kindergroepen geınterpoleerd worden tot de dubbele bandbreedte. Merk op

dat, en hiervoor wordt naar de hoger besproken interpolatie verwezen, de aggregatiepatronen de dubbele

bandbreedte hebben dan degene die minimaal vereist is. Dit verandert echter niets aan de complexiteit.

Het interpoleren van de vier kindergroepen vereist O(M log M) bewerkingen. Deze interpolaties moeten

nu verschoven worden tot het centrum van de moedergroep. Dit vereist voor elkeen het puntsgewijs

vermenigvuldigen met een verschuivingsmatrix van dezelfde dimensie en kost dus O(M) aan rekentijd.

Nadien worden deze vier verschoven stralingspatronen bij elkaar opgeteld om het stralingspatroon van de

moedergroep te vormen, hetgeen dus alweer O(M) bewerkingen vereist. Per groep is er dus O(M log M)

aan rekenkost. Op dit level zijn er N/M groepen en de kost op dit level voor de aggregaties is dan ook

O(N log M). Er zijn log N van zulke levels (ook weer asymptotisch te bekijken, want het is nooit nodig

op de twee hoogste te aggregeren omdat daar niet getranslateerd kan worden), en bijgevolg geldt dus

voor de totale kost van deze aggregatie-sweep:

Tup−sweep =C log N∑

i=0

C2N log(C3ML4i) ∼ N log2 N (4.31)

en dus finaal

Tup−sweep ∼ O(N log2 N) (4.32)

Page 44: Een snelle multipoolmethode voor de verstrooiing aan extreem …lib.ugent.be/fulltxt/RUG01/001/311/808/RUG01-001311808... · 2010. 6. 7. · ook Pearl Jam, Joe Satriani, Madrugada,

4.3 Snelheidscomplexiteit 34

4.3.3 Down-sweep

In deze stap worden alle translaties en desaggregaties uitgevoerd. Beginnen we weer op een willekeurig

tussenlevel en kijken naar de verschillende stappen die ondernomen worden om het ontvangen stralings-

patroon in een groep te berekenen. Ten eerste is er de bijdrage van de moedergroep, die verschoven en

geanterpoleerd moet worden. De eerste stap kost O(M) en de tweede O(M log M) Daarnaast is er ook

de bijdrage van de groepen uit de interactielijst van deze groep, die zich dus op hetzelfde level bevinden.

Het aantal groepen in de interactielijst is nooit hoger dan een welbepaalde constante. Voor elk van deze

groepen moet het stralingspatroon eerst getransleerd worden, hetgeen puntsgewijze vermenigvuldiging

met een translatiematrix betekent. Dit zijn O(M) bewerkingen. Het aantal groepen waarvoor dit moet

gebeuren is constant en wijzigt dus niets aan de complexiteit. Nadien moet, zoals hoger besproken, deze

resulterende matrix nog geanterpoleerd worden tot de halve bandbreedte, hetgeen ook weer O(M log M)

bewerkingen vereist. Nadien moeten al deze stralingspatronen, diegene afkomstig van de moedergroep

inbegrepen, bij elkaar opgeteld worden. Ook dit heeft een O(M) complexiteit. We kunnen dus besluiten

dat het berekenen van het ontvangen stralingspatroon voor een groep een complexiteit van O(M log M)

heeft. Dit moet gedaan worden voor alle groepen op dit level en ook nog eens voor alle levels, hetgeen

volgens een analoge redenering als voor de up-sweep dus leidt tot O(N log2 N) bewerkingen. Een finale

stap hierin is nog de desaggregatie naar de basisfuncties en het uitrekenen van de integraal (door de som

te nemen van alle elementen). Er moet gedesaggregeerd worden naar N basisfuncties, steeds door het

puntsgewijs vermenigvuldigen van twee P/2×P matrices. Dit deel kost dus O(N) bewerkingen. Nadien

moet ook nog voor alle N basisfuncties de integraal daadwerkelijk uitgerekend worden door sommatie

van M elementen, hetgeen dus ook nog eens O(N) rekentijd vereist. Deze ganse laatste stap met de

basisfuncties heeft dus een lagere complexiteit dan de voorgaande. Finaal kunnen we dus besluiten dat

voor de down-sweep de complexiteit als volgt is:

Tdown−sweep = O(N log2 N) (4.33)

4.3.4 Besluit

Als de drie onderdelen bekeken worden, kan besloten worden dat de dominerende asymptotische afhanke-

lijkheid voor de snelheid van het MLFMA algoritme O(N log2 N) is. Wanneer dit vergeleken wordt met

de O(N2) van de klassieke momentenmethode, dan is een enorme vooruitgang geboekt. Ook vergeleken

met FMM, dat een complexiteit van O(N3/2) had, is dit sterk. Het is ondermeer deze zeer gunstige

snelheidscomplexeit die, tesamen met de belangrijke winsten qua geheugen, toelaat bijzonder grote con-

figuraties te behandelen, zoals ook verder nog gedemonstreerd wordt. Voor zeer grote configuraties, en

dat zijn degene waar deze thesis op oogt, is de snelheidscomplexiteit dus quasi lineair. Merk op dat

in voorgaande berekening wel steeds verondersteld werd dat de densiteit maximaal was en dat steeds

vier groepen samengenomen konden worden in een grotere. Voor niet-dense en bijvoorbeeld langgerek-

te structuren gaat deze redenering natuurlijk niet meer op en zal de complexiteit minder gunstig zijn.

Page 45: Een snelle multipoolmethode voor de verstrooiing aan extreem …lib.ugent.be/fulltxt/RUG01/001/311/808/RUG01-001311808... · 2010. 6. 7. · ook Pearl Jam, Joe Satriani, Madrugada,

4.4 Geheugencomplexiteit 35

Analytische berekening wordt dan bijzonder moeilijk en zeer geval-specifiek en zal hier dus niet in detail

behandeld worden. In het volgende hoofdstuk, waarin de prestaties concreet getest worden in simulaties,

zal hier wel verder op ingegaan worden, zij het dan op eerder empirische wijze.

4.4 Geheugencomplexiteit

In deze sectie wordt aangetoond hoe het geheugenverbruik van het programma verloopt bij toenemende

afmeting van de configuraties. Er wordt ook hier uitgegaan van een ideale structuur, omdat dit exact

rekenwerk toelaat. Voor zeer niet-ideale structuren zal de complexiteit wellicht afwijken, maar voor de

dense hoog-frequente structuren die in deze thesis bestudeerd worden is er geen enkel probleem. De

invloed hiervan is uitsluitend te merken op de constante factoren bij de complexiteit en niet op de afhan-

kelijkheden van N. Ook hier wordt het geheugenverbruik opgedeeld in enkele onderdelen. Ten eerste wordt

het achtergrondgeheugen besproken, dat tijdens het iteratief oplossen van het stelsel steeds in gebruik is

en ondermeer de Z-matrices bevat. Daarnaast wordt ook het geheugen bekeken dat tijdens het iteratief

oplossen gealloceerd en weer weggegooid wordt, ondermeer voor het opslaan van de geaggregeerde stra-

lingspatronen. Bij alle onderdelen zal ook meteen vermeld worden op welke manier het geheugenverbruik

nog extra ingedijkt is en dit zal ook verrekend worden in de complexiteit.

4.4.1 Achtergrondgeheugen

Hierin worden zaken opgeslagen die tijdens de setup berekend worden en tijdens het iteratief oplossen

steeds opnieuw aangeroepen worden. Het achtergrondgeheugen bevat de near interactions, de Z-matrices,

de shifters (die een kindgroep verschuiven naar het centrum van de moedergroep of omgekeerd) en de

translatiematrices. Steeds is maximaal gebruik gemaakt van de regelmaat van de structuur. Dit is af-

komstig van het opdelen in een Manhattan-rooster. Er is slechts een zeer beperkt aantal verschillende

interacties mogelijk. Dit feit wordt uitgebuit voor alle vier de delen van het achtergrondgeheugen. Bekij-

ken we een K×K grid en berekenen we het aantal verschillende mogelijke links tussen twee basisfuncties

of groepen uit dat grid, dan zien we dat dit evenredig is met K2, wanneer gebruik gemaakt wordt van

translatiesymmetrie. Dit feit zal nog herhaaldelijk gebruikt worden.

Near interactions

Naargelang het aantal groepen dat als dichte naburen beschouwd wordt, neemt het aantal verschillende

near interactions toe. Desalniettemin is dit aantal onafhankelijk van N en alleen afhankelijk van de

gekozen nauwkeurigheid. Bij het iteratief oplossen wordt de bijdrage tot het matrix-vectorproduct van

een welbepaalde dichte interactie steeds berekend door eerst de relatieve plaatsvector tussen beide te

bepalen en op basis daarvan dan de juiste dichte interactie te selecteren. Er moet dus geen aparte lijst

aangemaakt worden per dichte interactie. Dit was in een eerdere versie wel het geval, maar het is gebleken

dat door dit niet te doen de geheugenwinst enorm is en het tijdsverlies (door eerst de relatieve plaatsvector

Page 46: Een snelle multipoolmethode voor de verstrooiing aan extreem …lib.ugent.be/fulltxt/RUG01/001/311/808/RUG01-001311808... · 2010. 6. 7. · ook Pearl Jam, Joe Satriani, Madrugada,

4.4 Geheugencomplexiteit 36

te moeten berekenen) beperkt. De near interactions nemen in het achtergrondgeheugen dus een constante

hoeveelheid in. Deze constante hoeveelheid is overigens nog zo klein mogelijk gemaakt door maximaal

gebruik te maken van allerlei rotatie-symmetrieen. Deze staan toe om, naast de translatie-symmetrie

waarvan eerder melding, het geheugen nog met een factor vier te reduceren.

Z-matrices

Deze matrices worden gebruikt om de basisfuncties te aggregeren in hun moedergroep. Het centrum van

een moedergroep is steeds gekozen om een gridpunt. De Z-matrices zijn uitsluitend afhankelijk van de

orientatie van de basisfunctie en de relatieve plaatsvector tot het centum van haar moedergroep. Dit

betekent dat ook hier slechts een beperkt aantal verschillende mogelijhkheden zijn, onafhankelijk van N

(en alleen afhankelijk van de gekozen afmeting van de groepen op het laagste niveau). Het totaal aantal

Z-matrices is N en er is hier wel gekozen om voor elke basisfunctie een index op te slaan die verwijst

naar welke Z-matrix gebruikt moet worden. Dit betekent het opslaan van O(N) integerwaardes. De

reden dat dit hier wel gedaan wordt is uiteraard dat dit hier veel minder geheugen inneemt. Er zijn

slechts N Z-matrices terwijl er O(N) near interactions zijn, waarbij echter de constante factor waarmee

N vermenigvuldigd wordt bijzonder groot kan zijn. Het achtergrondgeheugengebruik van de Z-matrices

is dus in elk geval O(N).

Shifters

Deze worden gebruikt om een geaggregeerd patroon te verschuiven naar het centrum van de moedergroep

of omgekeerd. Per level zijn er slechts 4 verschillende shifters van kindgroep naar moedergroep. Die van

moedergroep naar kindgroep zijn hier het complex toegevoegde van, maar ze worden wel nog afzonderlijk

opgeslagen om bij het iteratief oplossen tijd te winnen. Het zal immers blijken dat de shifters quasi geen

geheugen innemen, dit uiteraard vanwege hun constant, zeer klein, aantal per niveau. Op elk niveau zijn

evenveel shifters zijn en de dimensie van de shifters neemt toe met een factor 4 per stijging van level.

Bijgevolg wordt het geheugen dat ze innemen bepaald door

MEMsh =C log N∑

i=0

4SL4i (4.34)

met SL het geheugen van een shifter op het laagste niveau. Asymptotisch blijkt dit tot O(N) te leiden.

De constante voorfactor bij de N is echter bijzonder klein en over het algemeen kan dit geheugendeel

quasi geheel verwaarloosd worden ten opzichte van de Z-matrices en de translatoren.

Translatoren

Per level wordt het aantal verschillende translatoren opgeslagen. Ook dit aantal is weer beperkt door het

kleine aantal identieke relatieve plaatsvectoren tussen twee groepcentra. Bovendien neemt per stijging in

level het aantal groepen af met een factor 4 en dus ook het aantal identieke plaatsvectoren. Dit leidt ertoe

Page 47: Een snelle multipoolmethode voor de verstrooiing aan extreem …lib.ugent.be/fulltxt/RUG01/001/311/808/RUG01-001311808... · 2010. 6. 7. · ook Pearl Jam, Joe Satriani, Madrugada,

4.4 Geheugencomplexiteit 37

dat per level vier keer minder translatoren opgeslagen moeten worden. De dimensie van een translator

is O(M). De dimensie van de translatoren neemt dus met een factor 4 toe per stijging in niveau. Dit

betekent dat voor elk niveau ruwweg dezelfde hoeveelheid geheugen nodig is, die een constante is. Er zijn

O(log N) niveaus en bijgevolg is de bijdrage van de translatoren dan ook van de orde O(log N). Dit is

een belangrijk feit, want de translatoren nemen behoorlijk wat geheugen in. Het voorgaande garandeert

echter dat dit geheugen niet zal exploderen bij toenemende afmetingen. Wat de translatoren betreft is

er wel nog een belangrijke component aangaande dynamisch geheugen, namelijk tijdens het berekenen

ervan. Dit geheugen wordt nadien gewist, maar kan wel leiden tot belangrijke pieken. De reden hiervoor

is dat het berekenen van de translatoren steunt op het recursief bepalen van de Fourier coefficienten,

zoals besproken in Appendix B en ook al eerder aangehaald. Dit betekent dat voor elke translator tijdens

het berekenen L matrices opgeslagen moeten worden van orde O(M). L is hier de truncatiegrens van de

reeksontwikkeling en is van de orde O(M1/2). De tijdelijk op te slagen matrices nemen dus O(M3/2) in.

Dit zal uiteraard het meest kritisch worden op het hoogste niveau, waar M het grootst is en gelijk is aan

4L−1ML, waarbij L het aantal interactieniveaus is en ML een constante voor het aantal basisfuncties in

een groep op het laagste niveau. We vinden dus dat deze piekbijdrage van O(N3/2) is. Typisch levert

dit geen problemen voor een relatief laag aantal levels, maar het is mogelijk dat dit roet in het eten komt

gooien als naar buitensporig grote problemen van meer dan enkele miljoenen onbekendes gekeken wordt.

Voor het grootst behandelde probleem van ongeveer 1.300.000 onbekendes was deze piekbijdrage reeds

aanzienlijk, maar nog steeds kleiner dan het maximum, dat bereikt werd tijdens het iteratief oplossen

van het stelsel.

Besluit

Uit het voorgaande volgt dat het achtergrondgeheugen ongeveer toeneemt als O(N). De bijdrage die

echter, volgens de constante voorfactoren, dominant is in praktische situaties, heeft echter slechts een

O(log N) complexiteit. Er is een bijzonder inspanning geleverd om, naast het controleren van de vorm

van de complexiteit, voor alle bijdrages ook de constante voorfactoren te beperken. Dit heeft tot bijzonder

goede eigenschappen geleid naar achtergrondgeheugenverbruik toe. De piekbijdrage tijdens het berekenen

van de translatoren op het hoogste interactielevel dient wel in het oog gehouden te worden, aangezien

deze in principe varieert als O(N3/2).

4.4.2 Dynamisch geheugenverbruik tijdens het iteratief oplossen

Tijdens het uitvoeren van het matrix-vectorproduct moeten verschillende matrices en vectoren opgeslagen

worden. Zo zijn er ondermeer enkele vectoren die eigen zijn aan de implementatie van de iteratieve solver

en deze hebben dimensie N. Deze geven dus aanleiding tot een O(N) bijdrage. Daarnaast zijn er nog de

bijdrages ten gevolge van de geaggregeerde stralingspatronen, die tijdens de up-sweep berekend worden

en opgeslagen worden in het geheugen. Tijdens de down-sweep worden ontvangen stralingspatronen

Page 48: Een snelle multipoolmethode voor de verstrooiing aan extreem …lib.ugent.be/fulltxt/RUG01/001/311/808/RUG01-001311808... · 2010. 6. 7. · ook Pearl Jam, Joe Satriani, Madrugada,

4.4 Geheugencomplexiteit 38

berekend en ook deze moeten bijgehouden worden. Beide sweeps worden nu besproken.

Up-sweep

In het geheugen moet zich aan het einde van deze sweep voor elke groep op elke level het stralingspatroon

bevinden. De afmeting van dergelijk stralingspatroon is O(M) en het aantal groepen op een level is

N/M. Het aantal levels is daarenboven O(log N) en vermenigvuldiging van deze drie toont dus aan dat

het geheugenverbruik voor de geaggregeerde stralingspatronen van de orde O(N log N) is.

Down-sweep

Per groep wordt het ontvangen stralingspatroon berekend en opgeslagen. Dit berekenen geeft geen aan-

leiding tot een term die van N afhankelijk is. Voor het opslaan geldt dezelfde redenering als bij de

geaggregeerde stralingspatronen. Alleen dient hierbij opgemerkt te worden dat de stralingspatronen (zo-

wel geaggregeerde als gedesaggregeerde) op hogere niveau’s gewist kunnen worden naargelang afgedaald

wordt op de ladder. Tijdens de down-sweep wordt dus nog slechts O(N) geheugen verbruikt. Door het

wissen van hoger gelegen stralingspatronen wordt de piek in dynamisch geheugen overigens bereikt bij

het transleren en desaggregeren naar de twee hoogst gelegen levels waarop interactie gebeurt.

Besluit

Het dynamisch geheugen is van de asymptotische orde O(N log N). Ook hier is door tijdig wissen van

overbodige matrices gepoogd de constante voorfactoren zo klein mogelijk te maken.

4.4.3 Globaal geheugenverbruik

In het licht van het voorgaande kan dus besloten te worden dat ook de geheugencomplexiteit van de

orde O(N log N) is, waarbij dus ook hier weer vermeld dient te worden dat de kortstondige piekbijdrage

tijdens het berekenen van de translatoren van O(N3/2) is, doch met kleine voorfactor optreedt en dus voor

alle tot hiertoe praktische configuraties nog geen problemen leverde. Eventueel moet voor toekomstig

grootschaliger gebruik nog een efficientere methode gezocht worden. De geheugencomplexiteit van de

klassieke momentenmethode was O(N2) en dus is ook hier een bijzondere stap voorwaarts gezet. Het

dient echter wel gezegd te worden dat enkele van de extra geheugenbesparende technieken die gebruikt

zijn voor MLFMA in principe ook gebruikt kunnen worden bij de klassieke momentenmethode, om ook

daar belangrijke winsten te boeken. De nadruk ligt in deze thesis echter op het ontwikkelen van een

geoptimaliseerde MLFMA methode en serieus sleutelwerk aan de klassieke momentenmethode is dus ook

achterwege gelaten. In elk geval kan gezegd worden dat met de uiteindelijke implementatie bijzonder grote

configuraties behandeld kunnen worden met relatief kleine geheugenhoeveelheden. Dit is wel grotendeels

te danken aan de bijzonder regelmatige structuur. In een algemener driedimensionaal geval verliezen deze

technieken een groot deel van hun sterkte.

Page 49: Een snelle multipoolmethode voor de verstrooiing aan extreem …lib.ugent.be/fulltxt/RUG01/001/311/808/RUG01-001311808... · 2010. 6. 7. · ook Pearl Jam, Joe Satriani, Madrugada,

PRESTATIES 39

Hoofdstuk 5

Prestaties

5.1 Doel

In dit hoofdstuk wordt een overzicht gegeven van de prestaties van het MLFMA-algoritme. In het vorig

hoofdstuk is de snelheidscomplexiteit en de geheugencomplexiteit theoretisch afgeleid en hier zal dit

concreet aan de realiteit getoetst worden, eveneens voor variatie van de verschillende parameters. De

vergelijking wordt ook steeds gemaakt met de momentenmethode uit het tweede hoofdstuk. Er zal ook

ingegaan worden op niet-ideale structuren, met name diegene die geen perfect dense verzameling van

basisfuncties zijn. Deze vertonen, voor eenzelfde N, typisch tragere iteraties en meer geheugengebruik.

Als laatste wordt gepoogd de praktische grenzen van de implementatie af te tasten.

5.2 Snelheidscomplexiteit voor ideale structuren

In het vorige hoofdstuk werd aangetoond dat de snelheid van een iteratie toeneemt als O(N log2 N). Het

is echter wel duidelijk dat dit alleen geldt als de densiteit van de structuur dezelfde blijft. Het bewijs staat

of valt immers met de aanname dat alle groepen volledig gevuld zijn. Als de structuur gaten vertoont, dan

zijn sommige groepen maar gedeeltelijk gevuld, met verlies aan efficientie tot gevolg. De onderstaande

grafieken en bemerkingen zijn van toepassing op de meest ideale structuur, namelijk een vierkante plaat,

die steeds groter gemaakt wordt, met zulke afmetingen dat steeds alle groepen quasi maximaal gevuld

zijn. In eerste instantie wordt de snelheidscomplexiteit geplot bij kleinste groepen met een zijde van

ongeveer een golflengte en bij een relatieve fout op de verre matrix-elementen van 10−3. Deze fout is

voor alle behandelde problemen acceptabel gebleken. In figuur 5.1 wordt de opgemeten complexiteit

(i.e. de tijd voor een iteratie) getoond voor MLFMA en de klassieke methode. Het cross-point, waar

MLFMA voordeliger wordt dan de klassieke methode, ligt rond N=40000. Typische problemen zijn van

de orde N=300000 en dus is MLFMA inderdaad heel wat voordeliger voor de grote problemen onder

studie. Het dient opgemerkt te worden dat voor de klassieke methode de waardes groter dan N=5000

Page 50: Een snelle multipoolmethode voor de verstrooiing aan extreem …lib.ugent.be/fulltxt/RUG01/001/311/808/RUG01-001311808... · 2010. 6. 7. · ook Pearl Jam, Joe Satriani, Madrugada,

5.3 Geheugencomplexiteit voor ideale structuren 40

Figuur 5.1: Tijd voor een iteratie (s) bij MLFMA (driehoekjes) en de klassieke methode (bolletjes)

geextrapoleerde waardes zijn, simpelweg omdat zulke grote configuraties niet in het geheugen passen (zie

volgend deeltje). De extrapolatie is gebaseerd op metingen van de iteratietijd tussen N=2000 en N=5000,

waar het gedrag bijzonder goed door een parabool beschreven kon worden. De metingen van MLFMA

zijn allemaal daadwerkelijk uitgevoerd, zonder enige vorm van extrapolatie. Naast de goede ligging van

het cross-point wordt de aandacht ook gevestigd op de helling van de trendlijn bij MLFMA. We zien dat

het gedrag inderdaad slechts lichtjes superlineair is. Dit resultaat is dus consistent met het theoretisch

afgeleide gedrag.

5.3 Geheugencomplexiteit voor ideale structuren

In het vorige hoofdstuk werd theoretisch afgeleid dat het geheugenverbruik zich asymptotisch gedraagt

als O(N log N). Bekijken we dit nu eens in de praktijk, voor identiek dezelfde simulaties die hierboven

gebruikt werden om de snelheidscomplexiteit te bepalen. Het verbruikte geheugen wordt bepaald als

het maximale geheugen dat op een welbepaald moment ingenomen wordt door het programma. Voor

de gesimuleerde configuraties was dit steeds tijdens het itereren (en dus niet tijdens het berekenen van

de translatoren). De resultaten zijn uitgezet in Figuur 5.2. Voor de klassieke methode is een brute

force implementatie gebruikt, zonder enig gebruik van translatiesymmetrie en dergelijke. De winsten in

geheugen door gebruik te maken van de MLFMA-implementatie zijn reusachtig. Het is nu ook duidelijk

waarom in de eerder besproken snelheidscomplexiteit geen meetwaardes voor de klassieke methode boven

N=5000 mogelijk waren (ook hier zijn deze geextrapoleerd). Ook hier wordt de aandacht gewezen op

de helling van de trendlijn. Het blijkt dat het geheugen in de praktijk zelfs sublineair toeneemt. Dit

is te wijten aan het feit dat de dominante termen qua complexiteit een kleine voorfactor hebben. Pas

voor nog veel grotere configuraties kan verwacht worden dat deze daadwerkelijk zullen domineren. De

Page 51: Een snelle multipoolmethode voor de verstrooiing aan extreem …lib.ugent.be/fulltxt/RUG01/001/311/808/RUG01-001311808... · 2010. 6. 7. · ook Pearl Jam, Joe Satriani, Madrugada,

5.4 Invloed van de parameters 41

Figuur 5.2: Piekgeheugen (MB) bij MLFMA (driehoekjes) en de klassieke methode (bolletjes)

uitstekende geheugencomplexiteit is te wijten aan een combinatie van de multipooltechnieken en het

maximaal uitbuiten van de regelmaat in de structuren.

In Figuur 5.3 wordt het verbruik van dynamisch geheugen getoond als functie van de tijd, tijdens

de simulatie van een probleem met N=350000. De verschillende stappen tijdens de berekening kunnen

onderscheiden worden door hun verbruik van geheugen, hetgeen een idee geeft van de tijdschalen die

ermee gepaard gaan. De grafiek omvat de hele setup-fase alsook twee iteraties. De eerste 500 seconden

wordt de configuratie bepaald (truncatiegrenzen en dergelijke) en het de vector met bekenden uit de

matrixvergelijking opgesteld. De pieken in geheugen zijn afkomstig van het berekenen van de translatoren

die het programma gebruikt om de optimale truncatiegrens te bepalen. Tussen 500s en 3000s worden

achtereenvolgens Z-matrices, shifters en translatoren berekend. We zien ook dat de pieken die opduiken

bij het berekenen van de translatoren kleiner zijn dan het maximale geheugenverbruik. Tussen 3000s en

3500s werd enige output berekend en vanaf 3500s wordt de iteratiever solver aangesproken. Na enige

initialisatie zien we duidelijk de vier hoogste piekjes, die afkomstig zijn van twee matrix-vectorproducten

per iteratie. We zien dat de hele simulatie piekt bij ongeveer 220MB.

5.4 Invloed van de parameters

Er is gepoogd het aantal externe parameters te beperken tot een minimum en een heel aantal zaken

wordt door de implementatie zelf bepaald. De parameters die gekozen moeten worden en een invloed

hebben op de complexiteit zijn de maximaal toelaatbare fout op de matrixelementen en de afmeting van

de kleinste groep. Gezien het hoogfrequent karakter van de simulaties zal de gridstap steeds ongeveer

een tiende van de golflengte zijn en is dus niet als parameter te beschouwen (al kan hij natuurlijk wel

Page 52: Een snelle multipoolmethode voor de verstrooiing aan extreem …lib.ugent.be/fulltxt/RUG01/001/311/808/RUG01-001311808... · 2010. 6. 7. · ook Pearl Jam, Joe Satriani, Madrugada,

5.4 Invloed van de parameters 42

Figuur 5.3: Geheugenverloop (MB) bij MLFMA simulatie met N=350000 (twee iteraties)

ingesteld worden). De kleinste groep kan niet onbeperkt kleiner gemaakt worden, omdat dan toch steeds

meer groepen opengelaten moeten worden. Voor ideale structuren is er een optimale keuze, namelijk

diegene waarbij de kleinste groepen dusdanige afmetingen hebben dat de groep op het hoogste niveau de

hele structuur exact omsluit. Dit is natuurlijk niet altijd mogelijk. Dit alles leidt tot de conclusie dat de

kleinste groepsgrootte niet van zeer groot belang is (op voorwaarde dat ze voldoende klein is) en in de

meeste simulaties is deze constant op een golflengte genomen.

De invloed van de maximaal toelaatbare fout is van meer belang. De gewenste tolerantie heeft zijn

directe invloed op de truncatiegrenzen van het additietheorema, op het aantal punten voor de numerie-

ke integratie en op het aantal groepen dat opengelaten wordt alvorens twee groepen als voldoende ver

interagerend beschouwd kunnen worden. Bij toenemende strengheid in tolerantie zullen alle bovenver-

melde waarden toenemen, zij het soms ietwat onregelmatig. In Figuur 5.4 wordt weergegeven hoe de

iteratietijd verandert met de toegelaten fout, alweer voor een configuratie van N=350000. In Figuur 5.5

wordt hetzelfde gedaan, maar dan voor het benodigde RAM-geheugen. Het programma kiest het aantal

tussenliggende groepen en de waarde van L op elk niveau. Het doet dit door eerst te beginnen met slechts

een tussenliggende groep en te kijken of er een L gevonden kan worden waarvoor de nauwkeurigheid vol-

doende is, alvorens de reeks onstabiel wordt. Als dit niet het geval is, wordt het aantal tussenliggende

groepen met een vergroot en wordt de procedure herhaald. We merken op dat de invloed op de iteratie-

Page 53: Een snelle multipoolmethode voor de verstrooiing aan extreem …lib.ugent.be/fulltxt/RUG01/001/311/808/RUG01-001311808... · 2010. 6. 7. · ook Pearl Jam, Joe Satriani, Madrugada,

5.4 Invloed van de parameters 43

Figuur 5.4: Iteratietijd (s) als functie van de relatieve fout op de matrixelementen (N=350000)

Figuur 5.5: RAM-geheugen (MB) als functie van de relatieve fout op de matrixelementen (N=350000)

Page 54: Een snelle multipoolmethode voor de verstrooiing aan extreem …lib.ugent.be/fulltxt/RUG01/001/311/808/RUG01-001311808... · 2010. 6. 7. · ook Pearl Jam, Joe Satriani, Madrugada,

5.5 Niet-ideale structuren 44

tijd behoorlijk uitgesproken is terwijl het benodigde RAM-geheugen slechts weinig toeneemt (let op de

verticale as). In praktijk is vrijwel steeds gewerkt met een 10−3 relatieve tolerantie.

5.5 Niet-ideale structuren

In deze sectie wordt een beeld gegeven van de prestaties van de implementatie bij structuren die afwijken

van de ideale vierkante vorm die exact omsloten wordt door de grootste groep. Ten eerste is de verzameling

van metallisaties in het vlak niet altijd perfect te omsluiten met een passend vierkante en daarenboven

kunnen er uiteraard middenin leegtes optreden. Eerder dan het opstellen van een analytische formule die

dit alles bevat, worden een aantal voorbeelden behandeld. Er wordt weer systematisch met een tolerantie

van 10−3 op de verre matrixelementen gewerkt. De kleinste groep is constant gehouden.

5.5.1 Een lange strip

Bekijken we een strip van twee golflengtes breed en toenemende lengte. Figuur 5.6 vergelijkt de iteratietij-

den met de eerder berekende curve voor ’ideale’ structuren. Het blijkt dat deze niet slechter gesimuleerd

worden. Op het eerste zicht lijkt dit misschien een verrassing omdat vele groepen niet volledig gevuld

zijn en de berekening van de verre matrix elementen zeker minder efficient verloopt. Dit is inderdaad het

geval, maar dat wordt hier gecompenseerd door het feit dat er veel minder dichte naburen zijn, die niet

via het MLFMA-formalisme behandeld kunnen worden. We zien ook een soort gekanteld zaagtandgedrag:

dit heeft te maken met de vulling van de groepen. Stel dat de strip net zo breed is dat een heel klein

aantal basisfuncties in een uiterste groep op een hoog level terecht komt. Die enkele basisfuncties moeten

dan helemaal tot boven geaggregeerd en getransleerd worden. Het hele proces van samennemen in hogere

groepen is echter maar efficient als daarbij steeds meer basisfuncties samengenomen worden. Op deze

manier kunnen we verwachten dat sommige strips iets gunstiger zullen zijn dan anderen.

Er is echter een ander probleem, met name het geheugenverbruik. De eerder besproken piek tijdens

het berekenen van de translatoren speelt nu een rol. Deze wordt bepaald door het aantal niveaus. Bij de

ideale structuren neemt een welbepaald aantal onbekenden een minimaal aantal levels in. Bij een strip is

dit niet het geval en dus merken we dat bij N = 86000 reeds 7 levels gevuld zijn (en interactie gebeurt

dus op 5 daarvan) en er op de simulatie-pc geen extra meer behandeld kan worden. Dit betekent echter

niet dat het MLFMA-formalisme in zijn geheel niet meer gebruikt kan worden voor langere strips. In de

implementatie is immers voorzien dat het aantal interactie-niveaus beperkt kan worden. Op die manier

kan de strip verlengd worden en zullen er desalniettemin toch maar 5 niveaus blijven waarop interactie

doorgaat. Ter illustratie van deze methode zijn enkele strips gesimuleerd, met de resultaten voor de

iteratietijden in Tabel 5.1, vergeleken met die voor het geval dat we ideale MLFMA zouden hebben

(dus de eerder berekende trendlijn voor ideale vierkante structuren geevalueerd) en voor het geval we de

klassieke momentenmethode zouden gebruiken. De kleinste groepsgrootte is steeds constant gehouden.

Aangezien dit in zekere zin aan een veralgemeend FMM doet denken, is het wellicht mogelijk een betere

Page 55: Een snelle multipoolmethode voor de verstrooiing aan extreem …lib.ugent.be/fulltxt/RUG01/001/311/808/RUG01-001311808... · 2010. 6. 7. · ook Pearl Jam, Joe Satriani, Madrugada,

5.5 Niet-ideale structuren 45

Figuur 5.6: Iteratietijd (s) voor een strip (bolletjes) t.o.v. ideale curve (lijn)

N Tmeas Tideaal Tklass

82500 121 86 201

167748 262 197 826

329548 795 431 3162

Tabel 5.1: Iteratietijd (s) voor een strip, met MLFMA waarbij het aantal interactieniveaus vastligt, zoals

gemeten en vergeleken met ideale MLFMA en klassieke momentenmethode

complexiteit te bekomen door nog te spelen met de kleinste groepsgrootte, maar dit is dus achterwege

gelaten. We zien in elk geval dat de resultaten behoorlijk zijn. De geheugeninname ten gevolge van

de piek bij de translatoren is ongeveer 600MB. Nadien wordt de 300MB in geen enkele simulatie meer

overstegen.

Dit extreme geval valt eigenlijk min of meer buiten het directe doel van deze thesis, met name

structuren die in twee dimensies goed gevuld zijn (naar het ideale MLFMA geval toe dus), maar wordt

hier toch even aangehaald om aan te tonen hoe ermee omgesprongen kan worden. Dezelfde techniek kan

uiteraard ook gebruikt worden voor vierkant-achtige structuren die te groot zouden worden (in praktijk

betekent vanaf ongeveer 1.500.000 onbekenden op een 1GB RAM computer). Merk ook op dat de laatste

simulatie van N=329548 nauwkeurig een strip simuleert van 256λ × 2λ (met λ de golflengte), wat reeds

bijzonder lang is.

Page 56: Een snelle multipoolmethode voor de verstrooiing aan extreem …lib.ugent.be/fulltxt/RUG01/001/311/808/RUG01-001311808... · 2010. 6. 7. · ook Pearl Jam, Joe Satriani, Madrugada,

5.5 Niet-ideale structuren 46

#L Tmeas

5 5

4 2

3 0.54

2 0.37

1 0.24

Tabel 5.2: Iteratietijd (s) voor het minst ideale geval bij interactie op een varierend aantal levels

structuur N Tmeas Tideaal Tklass

a 186.576 271 223 1021

b 139.640 241 159 575

c 95.220 218 103 267

Tabel 5.3: Iteratietijd (s) voor de niet-ideale structuren

5.5.2 Het minst ideale geval

Het meest ongunstige geval (om via algemeen MLFMA te behandelen) is dat van twee kleine structuren

die zich op een relatief grote afstand van elkaar bevinden. Merk op dat ook deze enigszins buiten het

zichtsveld van deze thesis liggen. Het nadelige hieraan is dat elk van beide structuren eigenlijk in een

kleine groep vervat zou kunnen worden waarna de translatie op dat lage niveau kan gebeuren. Het feit dat

in algemene MLFMA beide structuren tot op hoog niveau geaggregeerd worden en dan pas getransleerd,

leidt tot een grote, overbodige, overhead. Bekijken we concreet het extreme probleem van twee plaatjes

die elk 0.8λ × 0.8λ groot zijn en 62λ van elkaar verwijderd zijn. In Tabel 5.2 is de iteratietijd getoond

samen met het aantal levels waarop de interactie gebeurde. Het is duidelijk dat het in dit geval veel

beter is om slechts een level te simuleren (eigenlijk is het vanwege de bijzonder kleine dimensie van 364

onbekenden het best om gewoon de klassieke momentenmethode te gebruiken). Het is natuurlijk een

bijzonder gezocht probleem en wordt hier alleen maar meegegeven ter volledigheid. Het valt volkomen

buiten het bereik van de realistische situaties waar deze thesis op doelt. In elk geval is het voor de

gebruiker steeds mogelijk het aantal levels te beperken.

5.5.3 Realistische niet-ideale gevallen

Laat ons nu eens kijken naar enkele densere configuraties en weergeven hoe de iteratietijd zich gedraagt

in vergelijking met die van het volledig ideale geval. We behandelen systemen van redelijk grote afmeting

met holtes erin. We zullen structuren nemen van ongeveer 30λ× 30λ. De gesimuleerde configuraties zijn

getoond in Figuur (5.7) en de resultaten getoond in Tabel 5.3.

Uit deze resultaten volgt duidelijk dat de multipoolmethodes het best presteren voor relatief den-

Page 57: Een snelle multipoolmethode voor de verstrooiing aan extreem …lib.ugent.be/fulltxt/RUG01/001/311/808/RUG01-001311808... · 2010. 6. 7. · ook Pearl Jam, Joe Satriani, Madrugada,

5.6 Aantal iteratiestappen tot convergentie 47

Figuur 5.7: De bestudeerde niet-ideale structuren (a),(b) en (c)

se structuren, waarbij veel basisfuncties gegroepeerd kunnen worden. We merken hierbij op dat de

oppervlakteimpedantie hier geen rol speelt. In de limiet kan met elk gridvakje een andere oppervlakteim-

pedantie geassocieerd worden zonder dat dit zich zou doen laten voelen in de iteratietijd. Dit betekent

ook dat de diffusors, die in principe maximaal dense structuren zijn maar met varierende oppervlak-

teimpedantie, zeer geschikt zijn. Overigens geldt voor de regelmatige configuraties uit de voorbeelden

dezelfde snelheidscomplexiteit als voor het ideale geval, met name O(N log2 N), terwijl voor de klassieke

momentenmethode de iteratietijd toeneemt als O(N2). De situatie zal dus, vergeleken met de klassieke

momentenmethode, nog gunstiger worden naargelang de structuren toenemen in afmeting.

5.6 Aantal iteratiestappen tot convergentie

Het stelsel lineaire vergelijkingen wordt op iteratieve manier opgelost, om zo tot een steeds betere be-

naderingen van de exacte oplossing te komen. Het aantal iteraties is afhankelijk van de startgok, het

conditiegetal van het stelsel, van de gewenste nauwkeurigheid en het gebruikte algoritme. Steeds zijn

als startgok alle onbekenden nul gesteld. Er zijn heel wat configuraties gesimuleerd, zowel ideale als

niet-ideale en daaruit is de volgende conclusie bekomen aangaande het aantal iteraties. Over het alge-

meen neemt dit aantal niet al te snel toe als functie van het aantal onbekenden. Een configuratie van

N=100.000 wordt typisch in 500 stappen opgelost. Dit kan licht varieren naargelang het conditiegetal,

maar de schommelingen zijn niet al te wild. Het aantal iteraties was in geen enkele simulatie hoger dan

1000. Het is om deze reden dat geen gebruik gemaakt is van een preconditioner. Deze zou het aantal

iteraties nog kunnen verminderen, ten koste van een klein beetje extra rekentijd per iteratie en over

het algemeen nog voor winst kunnen zorgen. Het onderzoek naar een geschikte preconditioner is echter

zeer moeilijk en vaak maakt een preconditioner de situatie zelfs slechter. Omdat de bekomen resultaten

eigenlijk reeds voldoende goed waren, is hiervan afgezien. Overigens is gebleken dat het QMR algoritme

globaal gezien stabiel tot een oplossing komt. Een eventueel mogelijke preconditioner voor deze methode

wordt beschreven in [8].

Page 58: Een snelle multipoolmethode voor de verstrooiing aan extreem …lib.ugent.be/fulltxt/RUG01/001/311/808/RUG01-001311808... · 2010. 6. 7. · ook Pearl Jam, Joe Satriani, Madrugada,

5.7 Grenzen 48

5.7 Grenzen

In deze sectie willen we nog kort even ingaan op de limieten van de geımplementeerde multipoolmethode,

zoals ze concreet uit de simulaties gebleken zijn. Uiteraard is dit sterk afhankelijk van de gebruikte

computer. Zoals eerder vermeld, zijn alle simulaties gebeurd op een Pentium IV 2.8Ghz met 1GB RAM.

De code is gecompileerd met g++ v4.0.2 met optimization flag -O2. Er zijn twee manieren om een grens

te bereiken: RAM-geheugen en rekentijd. Wat RAM-geheugen betreft is de vuistregel dat 1.000.000

onbekendes nog goed haalbaar is, mits aandacht besteed wordt aan de tijdelijke piek bij het berekenen

van de translatoren. Om deze onder de knoet te houden kan in elk geval het aantal interactieniveaus

beperkt worden, hetgeen dan wel ten koste gaat van enige extra rekentijd. De limiet qua rekentijd hangt

uiteraard af van hoe lang men op het resultaat wil wachten. Bekijken we daartoe bijvoorbeeld nogmaals

bovenstaande niet-ideale structuren uit Figuur (5.7). Configuratie (a) had N = 187.000 en Tit = 271.

Gaan we uit van de realistische veronderstelling van 500 iteraties en nemen we aan dat geen enkele

vooronderstelling over de stroom geweten is (die zich zou uiten in een betere startgok en dus het aantal

iteraties zou verminderen), dan komt deze structuur tot convergentie in ongeveer anderhalve dag. Dit

is in de meeste gevallen zeker nog aanvaardbaar. Een probleem van een half miljoen onbekendes zal

dus in pakweg vijf dagen gesimuleerd worden. Om deze tijd te verminderen moet een betere computer

gebruikt worden of moet het algoritme geparallelliseerd worden en de simulaties behandeld worden door

een cluster van computers.

Page 59: Een snelle multipoolmethode voor de verstrooiing aan extreem …lib.ugent.be/fulltxt/RUG01/001/311/808/RUG01-001311808... · 2010. 6. 7. · ook Pearl Jam, Joe Satriani, Madrugada,

VERIFICATIES 49

Hoofdstuk 6

Verificaties

6.1 Doel

Met het oog op de verificatie van de implementaties zijn enkele simulaties numeriek doorgerekend waar-

voor een analytische oplossing bestaat. Deze behandelen vaak oneindig uitgestrekte structuren, hetgeen

natuurlijk niet exact te simuleren valt, maar in die gevallen is een steeds groter wordende structuur

gekozen en convergentie geverifieerd. De verificaties zijn gebeurd aan de hand van twee types: de onein-

dige vlakke plaat en het periodisch verstrooiingsrooster. In het eerste type wordt het beeldbron effect

gebruikt om exact te kunnen berekenen wat het verstrooide veld is, dat in de simulaties het gevolg is

van een invallende vlakke golf of een dipoolbron. In het tweede type wordt een vlakke golf ingestuurd op

een eendimensionaal diffractie-rooster. Er wordt slechts onder welbepaalde hoeken een verstrooide golf

verwacht. Dit wordt getest voor verschillende periodes van het rooster.

6.2 Oneindige vlakke plaat

Dit is een van de weinige gevallen die analytische verificatie toelaat. Nemen we, zoals gewoonlijk, het

XY-vlak als vlak waarin de metallisaties liggen. Er kan aangetoond worden [4] dat de velden ten gevolge

van een stroomverdeling in de positieve halfruimte (z > 0) jt(ρ, z), jz(ρ, z) (ontbonden in twee loodrechte

componenten: een loodrecht op het XY-vlak en een ermee evenwijdig) tesamen met een oneindig groot

perfect elektrisch geleidend vlak gelijk zijn aan de velden bekomen door het PEC-vlak weg te nemen en

de volgende stromen in de negatieve halfruimte (z < 0) toe te voegen:

jt(ρ,−z) = −jt(ρ, z) (6.1)

jz(ρ,−z) = jz(ρ, z) (6.2)

Hierin is ρ de transversale coordinaat, dus xux + yuy. We werken hier dus steeds met Z=0 om een PEC

te simuleren. Daarnaast kunnen we dus ook gebruik maken van het feit de opgewekte stromen in de PEC

Page 60: Een snelle multipoolmethode voor de verstrooiing aan extreem …lib.ugent.be/fulltxt/RUG01/001/311/808/RUG01-001311808... · 2010. 6. 7. · ook Pearl Jam, Joe Satriani, Madrugada,

6.2 Oneindige vlakke plaat 50

van die aard zijn dan ze het tangentieel eketrisch veld nul maken op de geleider.

6.2.1 Verstrooiing ten gevolge van een vlakke golf

Bekijken we het voorbeeld van een loodrecht invallende vlakke golf die vanop z = ∞ komt. Het uitwendig

opgewekt elektrisch veld in dan gelijk aan

Ei(z) = E0ejkz (6.3)

met E0 een vector die geen component volgens de z-richting heeft. Nemen we in het vervolg steeds een

lineair gepolariseerde golf met amplitude 1 en met gelijke componenten volgens de X- en Y-richting en de

fase zodanig dat E0 = 1√2ux + 1√

2uy en kiezen we k=1 1

m . Andere fasekeuzes zijn uiteraard mogelijk maar

het is geverifieerd dat dit geen invloed heeft op de correctheid van het resultaat en het vereenvoudigt de

analytische oplossing. Ter hoogte van de PEC-plaat (dus op z = 0), wordt het invallend elektrisch veld

bijgevolg gegeven door

Ei(z = 0) = E0 (6.4)

Een vlakke golf wordt opgewekt door een oneindig groot vlak (in dit geval op z > 0), met identieke

stroom in heel het vlak. De beeldbron zal dus eenzelfde bron zijn op -z met een faseverschuiving van π.

De stroom in de oneindige PEC-plaat is noodzakelijkerwijze ook onafhankelijk van de (x,y)-coordinaat en

het verstrooide veld zal dus in beide richtingen eveneens een vlakke golf zijn. In de bovenste halfruimte

(z > 0) geeft dit voor het totale verstrooide veld dan

Ei(z) + Es(z) = E0ejkz − E0e

−jkz

= 2jE0 sin(kz)(6.5)

hetgeen duidelijk aan de randvoorwaarde voldoet. Merk op dat we dus een staandegolfpatroon verwachten

boven de PEC. In de onderste halfruimte (z < 0) propageren beide golven in dezelfde richting

Ei(z) + Es(z) = E0ejkz − E0e

jkz = 0 (6.6)

Achter de PEC verwachten we dus dat het totale veld nul wordt. Dit is het klassieke afschermende

effect van een PEC. Om een idee te krijgen, kijken we vooreerst naar een plaatje van 8λ× 8λ. In Figuur

6.1 wordt de amplitude van het totale veld getoond in een vlak dat de metallisatie doormidden snijdt en

evenwijdig ligt met het XZ-vlak. We zien duidelijk dat voor z > 0 er staande golven optreden en voor

z < 0 het veld verdwijnt. Natuurlijk zijn er nog afwijkingen van deze ideale karakteristiek, te wijten

aan de eindigheid van het plaatje. Vervolgens simuleren we het veld voor drie steeds groter wordende

vierkante platen, namelijk achtereenvolgens 8λ× 8λ, 16λ× 16λ en 32λ× 32λ. We zetten de modulus van

het totale elektrische veld uit langs een lijn tussen (0, 0,−8λ) en (0, 0, 8λ). Het resultaat is getoond in

Figuur 6.2. Het is duidelijk dat de benadering van een oneindige plaat steeds beter opgaat, zowel voor

als achter de plaat.

Page 61: Een snelle multipoolmethode voor de verstrooiing aan extreem …lib.ugent.be/fulltxt/RUG01/001/311/808/RUG01-001311808... · 2010. 6. 7. · ook Pearl Jam, Joe Satriani, Madrugada,

6.2 Oneindige vlakke plaat 51

Figuur 6.1: Amplitude van het totale elektrische veld in een deel van het XZ-vlak na verstrooiing met

een vlakke golf aan een 8λ× 8λ plaatje.

Figuur 6.2: Amplitude van het totale elektrische veld ten gevolge van een vlakke golf aan een PEC-plaat,

uitgezet langs een lijn (0,0,z) (rood = analytisch, lichtblauw = 8λ× 8λ, donkerblauw = 16λ× 16λ, groen

= 32λ× 32λ

Page 62: Een snelle multipoolmethode voor de verstrooiing aan extreem …lib.ugent.be/fulltxt/RUG01/001/311/808/RUG01-001311808... · 2010. 6. 7. · ook Pearl Jam, Joe Satriani, Madrugada,

6.3 Verstrooiingsrooster 52

Figuur 6.3: Amplitude van het verstrooide elektrische veld in een deel van het XZ-vlak na verstrooiing

met een dipoolantenne aan een 32λ× 32λ plaatje, analytisch (rood) en uit simulatie (blauw)

6.2.2 Verstrooiing ten gevolge van een dipoolbron

Als we een willekeurige stroomverdeling boven het PEC-vlak aanbrengen, dan kunnen we eenvoudig het

totale verstrooide veld berekenen door zijn spiegelbeeldbron toe te voegen en het PEC-vlak weg te laten,

zoals eerder beschreven. Dit is getest voor een dipoolantenne met coordinaten (0,0,10) boven een grote

vierkante PEC metallisatie. De dipoolantenne is λ/10 lang, met λ = 2π m, en is georienteerd volgens

de x-richting. Het verstrooide veld wordt bekeken en dit wordt vergeleken met het veld ten gevolge van

een identieke dipool op (0,0,-10) met een faseverschuiving van π. Het resultaat is uitgezet in Figuur 6.3

langs een lijn van (-50,0,10) tot (50,0,10). Zowel het analytische resultaat als het resultaat uit simulatie

zijn getoond. Het is duidelijk dat de overeenkomst bijzonder goed is. Om de accuraatheid te bereiken

is nergens gebruik gemaakt van verre-veld benaderingen. Zowel het invallend veld ten gevolge van de

kleine dipool als het verstrooide veld van de PEC is zo exact mogelijk berekend. Bij invoeren van verre-

veldbenaderingen zijn de afwijkingen typisch van de orde 10−2 voor deze afstanden.

6.3 Verstrooiingsrooster

Een tweede type configuraties dat analytische vergelijking toelaat zijn verstrooiingsroosters. De inspiratie

voor deze configuratie is gehaald in [7]. Twee voorbeelden van zulke systemen (met name diegene die

gesimuleerd werden) zijn getoond in Figuur 6.4. Het gaat hier om roosters die een zekere periodiciteit

vertonen in de y-richting en constant zijn in de x-richting. Rooster (b) is bekomen door de helft van

Page 63: Een snelle multipoolmethode voor de verstrooiing aan extreem …lib.ugent.be/fulltxt/RUG01/001/311/808/RUG01-001311808... · 2010. 6. 7. · ook Pearl Jam, Joe Satriani, Madrugada,

6.3 Verstrooiingsrooster 53

Figuur 6.4: Verstrooiingsroosters met periode T = 0.45λ (a) en T = 0.9λ (b)

de roosterlatjes uit (a) weg te laten en zo tot een dubbele periodiciteit te komen. Op dergerlijk rooster

sturen we een vlakke golf in van de vorm Ae−jk·r waarbij we kiezen

A = ux (6.7)

k = (0, k sin π6 ,−k cos π

6 ) (6.8)

en geen k-component volgens de x-as heeft. Dit is dus een vlakke golf die onder −30o met de z-as invalt

en geen k-component volgens de x-richting heeft. De golf is lineair gepolariseerd volgens de x-as. Het

punt is nu dat er aan zulk rooster, naast de normale reflectie onder 30o, verstrooiing kan zijn aan enkele

andere hoeken. Om dit te begrijpen stellen we eerst vast dat de periode in de y-richting een eindig, van

nul verschillend getal is (bvb 0.45λ), de periode in de x-richting nul is (het is in principe een oneindig

lang latje) en de periode in de z-richting oneindig is (er is maar een rij latjes, dus we kunnen stellen dat

’meerdere’ rijen elkaar op oneindig grote afstand van elkaar bevinden. We kunnen voor dit rooster het

reciproque rooster opstellen, met de reciproque roostervectoren, die dus gelijk zijn aan Gx = ∞, Gy = 2πT ,

Gz = 0. In handboeken over, bijvoorbeeld, Vastestoffysica [12] vindt men dat verstrooiing kan optreden

als kR = k + nxGx + nyGy + nzGz op zulke manier dat |kR| = k. De verstrooide golf moet dus ook op

de Ewald-sfeer liggen. Aangezien de reciproque roostervector volgens de x-richting oneindig is, kunnen

we het optellen van deze al achterwege laten. De oneindigheid van de periode in z-richting betekent dat

we een willekeurige component kzuz kunnen optellen (dit is het duidelijkst te zien als de limiet genomen

wordt voor grote periodes). Het is echter de periodiciteit in de y-richting die ervoor zorgt dat slechts

enkele verstrooide golven mogelijk zijn. Als de periode in de y-richting van de orde van de golflengte

wordt, dan zal slechts een zeer beperkt aantal mogelijkheden openblijven. Dit wordt getoond in Figuur

6.5. Het is op basis van deze figuur eenvoudig geometrisch aan te tonen dat voor de hoeken waaronder

reflectie kan optreden geldt:

θR = −π

2+ Bgcos(| sin |θi| −

2nπ

kT|) (6.9)

met n een natuurlijk getal en op voorwaarde dat | sin |θi| − 2nπkT | ≤ 1. Aangezien de hoeken waaronder

reflectie kan optreden dus zeer nauwkeurig vastliggen, is het mogelijk om dit via simulaties te verifieren.

Dit is uitgevoerd voor twee verschillende periodieke roosters, met name eentje met T = 0.45λ en eentje

Page 64: Een snelle multipoolmethode voor de verstrooiing aan extreem …lib.ugent.be/fulltxt/RUG01/001/311/808/RUG01-001311808... · 2010. 6. 7. · ook Pearl Jam, Joe Satriani, Madrugada,

6.3 Verstrooiingsrooster 54

Figuur 6.5: Verstrooide golven via ewald-sfeer

Figuur 6.6: Verstrooide veld aan rooster met periode T = 0.45λ (a) en T = 0.9λ (b)

met T = 0.9λ. Voor de eerste kan met de eerder afgeleide formule eenvoudig afgeleid worden dat reflectie

optreedt voor de volgende hoeken: 30o (gewone reflectie) en 63.7o voor n=1. Het resultaat is getoond in

Figuur 6.6a voor een yz-doorsnede die het rooster doormidden snijdt. Wat getoond wordt is de modulus

van het verstrooide veld (van de x-component ervan, de twee andere zijn verwaarloosbaar klein). Het

invallende veld, een vlakke golf onder −30o met de z-as, wordt dus niet weergegeven. We zien dat er

inderdaad reflectie optreedt onder de juiste hoeken, die met een zwarte lijn zijn aangegeven. In een

tweede experiment wordt de periode verdubbeld. Kijken we naar de formule voor de reflectiehoeken, dan

zien we dat nu nog een extra reflectiehoek mogelijk wordt en dat de twee vorige behouden worden. Voor

T = 0.9λ verwachten we dus reflectie onder de hoeken 30o (gewone reflectie), 11.4o (n=1) en 63.7o (n=2).

Dit wordt in in Figuur 6.6b getoond. Het blijkt dat ook hier de reflectie onder de verwachte hoeken

(zwarte lijnen) gebeurt.

Voor deze laatste simulatie, met T = 0.9λ, is ook nog eens gekeken wat de invloed is van het aantal

Page 65: Een snelle multipoolmethode voor de verstrooiing aan extreem …lib.ugent.be/fulltxt/RUG01/001/311/808/RUG01-001311808... · 2010. 6. 7. · ook Pearl Jam, Joe Satriani, Madrugada,

6.3 Verstrooiingsrooster 55

Figuur 6.7: Genormaliseerde amplitude van het verstrooide veld aan een rooster met periode T = 0.9λ

voor 17 latjes (blauw), 11 latjes (groen), 7 latjes (rood)

latjes dat gebruikt wordt om het rooster te vormen. Aangezien de eerder aangehaald principes uit de

Vastestoffysica alleen gelden voor oneindige roosters, verwachten we dat het effect het meest uitgesproken

zal zijn naargelang meer latjes gebruikt worden. In Figuur 6.7 is de modulos van de x-component van

het verstrooide veld uitgezet op een vaste radiale afstand van het centrum van het verstrooiingsrooster,

als functie van de hoek met de z-as, en dit voor verschillende aantallen latjes. Om de karakteristieken

goed te kunnen vergelijken is voor de drie verschillende roosters de amplitude genormaliseerd zodat het

maximum gelijk is aan 1. We zien dan duidelijk dat naargelang het rooster uitbreidt de pieken scherper

worden en ook de ruis in niet toegelaten richtingen verkleint. Inzoomen op de grafieken toont ook aan

dat de pieken zeer goed overeenstemmen met de eerder berekende reflectiehoeken.

Page 66: Een snelle multipoolmethode voor de verstrooiing aan extreem …lib.ugent.be/fulltxt/RUG01/001/311/808/RUG01-001311808... · 2010. 6. 7. · ook Pearl Jam, Joe Satriani, Madrugada,

NUMERIEKE VOORBEELDEN 56

Hoofdstuk 7

Numerieke voorbeelden

7.1 Doel

In dit hoofdstuk worden een aantal numerieke voorbeelden getoond, die een idee moeten geven waartoe

de implementatie in staat is. Voor de hier getoonde voorbeelden bestaat geen analytische oplossing, in

tegenstelling tot diegene uit het vorige hoofdstuk. Het doel van de thesis was a priori het simuleren van

verstrooiing in het hoogfrequente geval en dus zullen ook hier structuren gekozen worden die groter zijn

dan de golflengte. Daarenboven is de methode zeer geschikt voor dense structuren.

7.2 Voorbeelden

Het aantal mogelijke voorbeelden is natuurlijk zeer uitgebreid. Een eventuele toepassing zijn de diffusors

op basis van een ’Hadamard’-matrix [13]. Een studie van deze diffusors wordt hier niet betracht, er worden

uitsluitend enkele voorbeelden gegeven. In eerste instantie bekijken we enkele 8× 8 roosters, waarbij elk

vierkantje ongeveer twee golflengtes groot is. Elk vierkantje krijgt volgens een dambordpatroon ofwel een

positieve imaginaire oppervlakte-impedantje jZ ofwel een negatieve −jZ. Dit wordt getoond in Figuur

7.1.

Voor Z=0 zouden we dus een vierkante PEC-plaat hebben. We kijken steeds naar het verstrooid

elektrisch veld in een vlak evenwijdig met het rooster, op een zevental golflengtes boven de plaat. Het

opgelegd elektrisch veld is een loodrecht invallend vlakke golf (λ = 2π) gepolariseerd volgens de y-richting.

In figuur 7.2 wordt de amplitude van de y-component van het verstrooide elektrisch veld getoond voor

Z=20 en Z=100. Voor Z=20 blijkt het PEC-gedrag nog te overwegen en is er weinig effect van de

structuur. Voor Z=100 daarentegen zien we duidelijk de structuur weerspiegeld in het verstrooide veld.

Deze simulaties zijn typisch rond de 75.000 onbekenden. In tweede instantie is dan ook met dezelfde

Z=100 een dubbel zo groot 8× 8 rooster gesimuleerd, waarbij de zijde van de vierkanten nu dus ongeveer

4λ bedraagt. De invallende golf is identiek. Het resultaat is in hetzelfde vlak als voordien geplot. We

Page 67: Een snelle multipoolmethode voor de verstrooiing aan extreem …lib.ugent.be/fulltxt/RUG01/001/311/808/RUG01-001311808... · 2010. 6. 7. · ook Pearl Jam, Joe Satriani, Madrugada,

7.2 Voorbeelden 57

Figuur 7.1: 8x8 Hadamard Rooster

Figuur 7.2: Amplitude van het verstrooide veld aan 8x8 platen voor (a) Z=20 en (b) Z=100

Page 68: Een snelle multipoolmethode voor de verstrooiing aan extreem …lib.ugent.be/fulltxt/RUG01/001/311/808/RUG01-001311808... · 2010. 6. 7. · ook Pearl Jam, Joe Satriani, Madrugada,

7.2 Voorbeelden 58

Figuur 7.3: Amplitude van het verstrooide veld Z=100 aan een grote 8x8 plaat

zien in Figuur 7.3 dat het effect op deze manier nog markanter is. Deze plaat is viermaal zo groot als de

vorigen en dus gaat het hier om 300.000 onbekenden.

Er is ook nog een voorbeeldje gesimuleerd buiten het domein van de diffusors. Een plaat van 15λ×15λ

met twee kleine evenwijdige spleetjes werd belicht met een loodrecht invallende vlakke golf (λ = 2π). Het

totale elektrisch veld (amplitude en fase) is uitgezet in Figuur 7.4 in een vlak dat de plaat in het midden

dwars doorheen snijdt, zodat zowel reflectie als transmissie duidelijk worden. Het effect van de spleetjes

is duidelijk zichtbaar.

Figuur 7.4: (a) Amplitude en (b) fase van het totale veld voor een plaat met twee spleetjes

Page 69: Een snelle multipoolmethode voor de verstrooiing aan extreem …lib.ugent.be/fulltxt/RUG01/001/311/808/RUG01-001311808... · 2010. 6. 7. · ook Pearl Jam, Joe Satriani, Madrugada,

BESLUIT 59

Hoofdstuk 8

Besluit

In deze thesis is een snelle multipoolmethode ontwikkeld en geımplementeerd om op iteratieve wijze zeer

snel, in vergelijking met klassieke momentenmethodes, verstrooiingsproblemen aan planaire metallisaties

op te lossen. De theorie werd grondig afgeleid en de snelheids- en geheugencomplexiteit werden bepaald.

Nadien is via reele simulaties dit alles aan de praktijk getoetst. Het blijkt dat beide complexiteiten

zeer gunstig uitvallen ten opzichte van de klassieke momentenmethode. In een volgende fase is aan de

hand van een reeks analytisch oplosbare problemen geverifieerd dat de methode wel degelijk tot correcte

resultaten leidt. Dit werd inderdaad aangetoond voor oneindige vlakke platen en verstrooiingsroosters.

Ten slotte werden enkele numerieke voorbeelden doorgerekend om te tonen waartoe de implementatie in

staat is.

Page 70: Een snelle multipoolmethode voor de verstrooiing aan extreem …lib.ugent.be/fulltxt/RUG01/001/311/808/RUG01-001311808... · 2010. 6. 7. · ook Pearl Jam, Joe Satriani, Madrugada,

RELEVANTE BASISBEGINSELEN VAN ELEKTROMAGNETISME 60

Bijlage A

Relevante basisbeginselen van

elektromagnetisme

A.1 De wetten van Maxwell en de constitutieve vergelijkingen

In differentiaalvorm worden de vergelijkingen van Maxwell gegeven door ([4], [3])

∇× e(r, t) = − ∂

∂tb(r, t) (A.1)

∇× h(r, t) =∂

∂td(r, t) + j(r, t) (A.2)

∇ · d(r, t) = ρ(r, t) (A.3)

∇ · b(r, t) = 0 (A.4)

Uit deze vergelijkingen kan eenvoudig de wet op ladingsbehoud afgeleid worden:

∇ · j(r, t) = − ∂

∂tρ(r, t) (A.5)

Deze thesis werkt in het sinusregime, met name elke tijdsafhankelijke grootheid wordt verondersteld te

voldoen aan

a(r, t) = Re(A(r)exp(jωt)) (A.6)

De wetten van Maxwell worden in dit geval herleid tot

∇× E(r) = −jωB(r) (A.7)

∇× H(r) = jωD(r) + J(r) (A.8)

∇ · D(r) = ρ(r) (A.9)

∇ · B(r) = 0 (A.10)

Page 71: Een snelle multipoolmethode voor de verstrooiing aan extreem …lib.ugent.be/fulltxt/RUG01/001/311/808/RUG01-001311808... · 2010. 6. 7. · ook Pearl Jam, Joe Satriani, Madrugada,

A.2 Potentialen en Greense functies 61

en de wet van ladingsbehoud:

∇ · J(r) = −jωρ(r) (A.11)

Om de vergelijkingen oplosbaar te maken zijn nog extra verbanden nodig tussen de veldgrootheden. Deze

worden in het algemeen lineair geval gegeven door

D(r) = ε(r) · E(r) + ξ(r) · H(r) (A.12)

B(r) = ζ(r) · E(r) + µ(r) · H(r) (A.13)

hetgeen dan een bianisotroop medium zou zijn. In deze thesis wordt het medium beperkt tot de vrije

ruimte, waardoor de constitutieve vergelijkingen zich sterk vereenvoudigen tot

D(r) = ε0E(r) (A.14)

B(r) = µ0H(r) (A.15)

De rotorvergelijkingen van Maxwell kunnen nu herschreven worden als

∇× E(r) = −jωµ0H(r) (A.16)

∇× H(r) = jωε0E(r) + J(r) (A.17)

Het is deze finale vorm die in het vervolg steevast gebruikt zal worden.

A.2 Potentialen en Greense functies

De elektromagnetische velden kunnen rechtstreeks berekend worden via de wetten van Maxwell. In vele

gevallen is het echter voordeliger om te werken via potentialen en de velden uit te drukken als functie

van deze potentialen. We zullen hier gebruik maken van de vectorpotentiaal en de scalaire potentiaal.

In enkelvoudige samenhangende gebieden is een divergentieloos veld te schrijven als de rotor van een

vectorpotentiaal. Op basis daarvan kunnen we uit ∇ · B(r) = 0 besluiten dat

B(r) = ∇ × ˆA(r) (A.18)

met ˆA(r) de vectorpotentiaal. Uit de eerste rotorvergelijking en bovenstaande uitdrukking volgt dan dat

∇ × (E(r) + jω ˆA(r)) = 0 (A.19)

Een rotorvrij veld is af te leiden uit een scalaire potentiaal en we vinden

E(r) = −jω ˆA(r)− ∇φ(r) (A.20)

Uit de divergentievergelijking (A.9) volgt dan dat

∇2φ(r) + jω∇ · ˆA(r) =ρ(r)ε0

(A.21)

Page 72: Een snelle multipoolmethode voor de verstrooiing aan extreem …lib.ugent.be/fulltxt/RUG01/001/311/808/RUG01-001311808... · 2010. 6. 7. · ook Pearl Jam, Joe Satriani, Madrugada,

A.3 Greense dyades 62

en uit de rotorvergelijking (A.7)

∇2 ˆA(r) + k2 ˆA(r) = ∇[∇ · ˆA(r) + jωε0µ0φ(r)]− µ0J(r)ρ(r)ε0

(A.22)

met k gedefinieerd als ω√

ε0µ0. Dze vergelijkingen kunnen nu nog vereenvoudigd worden omdat er een

zekere vrijheid bestaat in de keuze van de potentialen die aan de voorwaarden voldoet. Voeren we namelijk

A(r) = ˆA(r) − ∇θ(r) in, dan is ook deze laatste een vectorpotentiaal. Als we nu de scalaire potentiaal

φ(r) = φ(r) + jωθ(r) dan geldt dat

B(r) = ∇ × A(r) (A.23)

E(r) = −jωA(r)− ∇φ(r) (A.24)

Bijgevolg voldoen ook A(r) en φ(r) aan (A.21) en (A.22). Deze keuze voor de potentialen gebruiken we

nu om te eisen dat

∇ · A(r) + jωε0µ0φ(r) = 0 (A.25)

hetgeen de Lorentz-ijk genoemd wordt. Deze keuze staat toe (A.21) en (A.22) te ontkoppelen tot twee

Helmholtzvergelijkingen:

∇2A(r) + k2A(r) = −µ0J(r) (A.26)

∇2φ(r) + k2φ(r) = −ρ(r)ε0

(A.27)

Ded oplossing van deze Helmholtzvergelijkingen kan via het superpositieprincipe bepaald worden. Hierbij

gaan we uit van de vergelijking

∇2G(r) + k2G(r) = −δ(r) (A.28)

hetgeen de Greense functie G(r) definieert. Dit is de oplossing van de Helmholtzvergelijking voor een

puntbron in de oorsprong. Deze kan analytisch bepaald worden en is gelijk aan

G(r) =e−jkr

4πr(A.29)

waarbij die golf werd weerhouden die aan de stralingsvoorwaarde voldoet. De algemene oplossing voor

A(r) en φ(r) kan nu via superpositie bekomen worden en luidt

A(r) = µ0

∫V

G(|r − r′|)J(r′)dV ′ (A.30)

φ(r) = 1ε0

∫V

G(|r − r′|)ρ(r′)dV ′ (A.31)

A.3 Greense dyades

In de vorige sectie is aangetoond hoe de vectorpotentiaal en scalaire potentiaal uitgedrukt kunnen wor-

den als integraties over dat deel van de ruimte dat stromen en ladingen bevat. We willen nu een analoge

Page 73: Een snelle multipoolmethode voor de verstrooiing aan extreem …lib.ugent.be/fulltxt/RUG01/001/311/808/RUG01-001311808... · 2010. 6. 7. · ook Pearl Jam, Joe Satriani, Madrugada,

A.4 Randvoorwaarde 63

uitdrukking die meteen het elektrische veld geeft als functie van de stroom. Het is immers altijd mo-

gelijk de ladingen te elimineren vanwege de wet van ladingsbehoud. Gebruiken we deze om voorgaande

uitdrukking te herschrijven als

φ(r) = − 1jωε0

∫V

G(|r − r′|)∇′ · J(r′)dV ′ (A.32)

In de onderstelling dat er op oneindig geen bronnen aanwezig zijn, vinden we dat

φ(r) =1

jωε0

∫V

[∇′G(|r − r′|)] · J(r′)dV ′ (A.33)

Er geldt dat ∇′G(|r − r′|) = −∇G(|r − r′|) en dus

φ(r) = − 1jωε0

∫V

[∇G(|r − r′|)] · J(r′)dV ′ (A.34)

Invullen in (A.24) levert dan

E(r) = −jωµ0

∫V

G(|r − r′|)J(r′)dV ′ +1

jωε0∇

∫V

[∇G(|r − r′|) · J(r′)dV ′ (A.35)

Dit kunnen we nu schrijven in de volgende vorm:

E(r) =∫

V

G(r − r′) · J(r′)dV ′ (A.36)

met introductie van de Greense dyade, die in carthesische coordinaten gegeven wordt door

G(r) = −jωµ0

1 + 1

k2∂2

∂x21k2

∂2

∂x∂y1k2

∂2

∂x∂z

1k2

∂2

∂x∂y 1 + 1k2

∂2

∂y21k2

∂2

∂y∂z

1k2

∂2

∂x∂z1k2

∂2

∂y∂z 1 + 1k2

∂2

∂z2

G(r) (A.37)

Merk op dat de Greense dyade sterk singulier is in de oorsprong. De tweede orde afgeleiden geven aanlei-

ding tot singulariteiten van de orde 1r3 . Hierdoor is gebruik van bovenstaande formule niet toegelaten in

gebieden waar de stroom verschillend is van 0. Daar moet een meer algemene formule gebruikt worden,

met name

E(r) = PV

∫V

G(r − r′) · J(r′)dV ′ + L · J(r) (A.38)

waarbij de integraal moet opgevat worden als een Principal Value integraal over het volume waaruit

een infinitesimaal volume uitgenomen is dat het observatiepunt bevat. Deze laten we hier echter zonder

bewijs. Meer informatie en een rigoureuze behandeling kan gevonden worden in [9].

A.4 Randvoorwaarde

De vergelijkingen van Maxwell in differentiaalvorm gaan uit van de veronderstelling dat alle velden en hun

afgeleiden continue functies zijn. Dit is echter niet steeds het geval. De velden kunnen sprongen vertonen

of singulier worden. Wanneer de vergelijkingen echter in distributionele zin opgevat worden, kunnen deze

sprongen onderzocht worden [4]. Dit geeft dan aanleiding tot voorwaarden waaraan de velden moeten

Page 74: Een snelle multipoolmethode voor de verstrooiing aan extreem …lib.ugent.be/fulltxt/RUG01/001/311/808/RUG01-001311808... · 2010. 6. 7. · ook Pearl Jam, Joe Satriani, Madrugada,

A.4 Randvoorwaarde 64

voldoen aan een interface tussen twee media of, meer toepasselijk voor deze thesis, aan een interface waar

zich oppervlaktestromen en ladingen kunnen bevinden. Beschouwen we de planaire metallisaties in het

XY-vlak. We vinden dan dat aan het oppervlak moet gelden

uz × (Euit − Ein) = 0 (A.39)

Hierin is Euit het elektrisch veld net buiten en Ein het veld binnenin de (oneindig dunne) metallisaties.

Voor een perfect elektrische geleider (PEC) is het veld binnenin 0 en herleidt de voorwaarde zich op het

oppervlak tot

Euit · t = 0 (A.40)

voor om het even welke t op voorwaarde dat hij tangentieel is aan het XY-vlak. In het geval de metalli-

saties niet perfect geleidend zijn, kunnen we een oppervlakteimpedantieterm hanteren. We drukken uit

dat het elektrisch veld binnenin evenredig is met de opgewekte stroomdichtheid en vinden aldus dat aan

het oppervlak geldt

Euit · t = ZJ · t (A.41)

Waarbij een complexe oppervlakteimpedantie gedefinieerd is. Voor Z=0 herleidt dit zich tot de uitdruk-

king voor een PEC.

Page 75: Een snelle multipoolmethode voor de verstrooiing aan extreem …lib.ugent.be/fulltxt/RUG01/001/311/808/RUG01-001311808... · 2010. 6. 7. · ook Pearl Jam, Joe Satriani, Madrugada,

INTERPOLATIE MET FFT 65

Bijlage B

Interpolatie met FFT

Het referentie-artikel voor integratie met equidistante punten en interpolatie via FFT is [6] van Sarvas.

Voor meer detail en wordt naar het oorspronkelijke artikel verwezen. Sarvas werkt met een centrale

Discrete Fourier Transformatie (DFT) en deze conventie zal ook hier gevolgd worden. Pakketten zoals

FFTW werken echter met een niet-centrale DFT. De concrete implementatiemethodes zullen dus ook nog

eens gegeven worden in de niet-centrale versie. De hieronder gegeven secties zijn tot op zekere hoogte

een samenvatting van concepten uit het artikel van Sarvas, alsook enkele uitbreidingen die van toepassing

zijn op deze thesis. Sarvas werkt uitsluitend met sferische en transsferische functies. In het vervolg zullen

ook antisferische en antitranssferische functies geintroduceerd worden en de verschillen zullen aangegeven

worden.

B.1 Fourier transformatie van (anti)sferische functies

De 1D DFT van een reeks samples u(n) van lengte N wordt gedefinieerd als

v(n) = (FNu)(n) =N2∑

m=−N1

u(m)e−i 2π2N nm (B.1)

met N1 = floor(N/2) en N2 = N−N1−1. Hierbij wordt vanaf nu steeds ondersteld dat u een periodische

functie is, met name u(n + N) = u(n). De inverse DFT wordt gegeven door

u(n) = (F−1N v)(n) =

1N

N2∑m=−N1

v(m)ei 2π2N nm (B.2)

De 2D DFT van een sample-matrix u(m,n) van dimensie (P,Q) wordt gegeven als

v(m,n) = (FP,Qu)(m,n) =P2∑

p=−P1

Q2∑q=−Q1

u(p, q)e−i 2π2P mpe−i 2π

2Q nq (B.3)

Page 76: Een snelle multipoolmethode voor de verstrooiing aan extreem …lib.ugent.be/fulltxt/RUG01/001/311/808/RUG01-001311808... · 2010. 6. 7. · ook Pearl Jam, Joe Satriani, Madrugada,

B.1 Fourier transformatie van (anti)sferische functies 66

waarbij de veralgemeende opmerkingen gelden voor de periode en de grenzen. De inverse transformatie

is dus gegeven als

u(m,n) =1

PQ(F−1

P,Qv)(m,n) =P2∑

p=−P1

Q2∑q=−Q1

v(p, q)ei 2π2P mpei 2π

2Q nq (B.4)

De 2D DFT kan uitgedrukt worden in termen van twee 1D DFT’s en wordt ook op deze manier berekend.

Het is eenvoudig na te gaan dat geldt

(FP,Qu)(m,n) = (FQv(m, :))(n) (B.5)

met

v(p, q) = (FP u(:, q))(p) (B.6)

Voor de inverse DFT geldt een volledig analoge uitdrukking. Uiteraard kan de volgorde van bewerkingen

ook omgekeerd worden (eerst de kolom-DFTs en dan de rij-DFTs). De DFT staat toe een functie te

ontbinden in trigonometrische veeltermen. Stel dat we een functie U hebben zodanig dat

U(t) =N ′∑

n=−N

aneint (B.7)

met N ′ = N of N ′ = N − 1, hetgeen een trigonometrische veelterm is. N is hierbij de halve bandbreedte

van de functie U. Zij u(n) de samplereeks van U zodanig dat

u(n) = U(n2π

M) (B.8)

met M = N+N’+1 de periode. Er geldt nu dat

a(n) =1M

(FMu)(n) (B.9)

en

u(n) = M(F−1M a)(n) (B.10)

We kunnen nu een willekeurige periodische functie V (t) = V (t+2π) benaderen door een trigonometrische

veelterm

u(n) = U(n2π

M) ≈ V (n

M) (B.11)

waarbij de benadering beter wordt naargelang M toeneemt en exact van zodra N gelijk is aan de halve

bandbreedte van V. Laten we dit nu uitbreiden naar twee dimensies, maar ons beperken tot trigonome-

trische veeltermen van de vorm

U(θ, φ) =M∑

m=−M

N−1∑n=−N

a(m,n)ei(mθ+nφ) (B.12)

De beperking tot deze grenzen zal ons later toestaan de specifieke transsferische eigenschappen van a(m,n)

te bekomen. Hierbij geldt dus dat

a(m,n) =1

(2M + 1)2N(Fu)(m,n) (B.13)

Page 77: Een snelle multipoolmethode voor de verstrooiing aan extreem …lib.ugent.be/fulltxt/RUG01/001/311/808/RUG01-001311808... · 2010. 6. 7. · ook Pearl Jam, Joe Satriani, Madrugada,

B.1 Fourier transformatie van (anti)sferische functies 67

met

u(m,n) = U(m2π

2M + 1, n

2N) (B.14)

Een willekeurige periodische functie V (θ, φ) = V (θ + 2π, φ + 2π) kunnen we ook hier benaderen met een

trigonometisch veelterm U als we nemen

a(m,n) =1

(2M + 1)2N(Fv)(m,n) (B.15)

met uiteraard

v(m,n) = V (m2π

2M + 1, n

2N) (B.16)

We samplen de te benaderen functie in een (2M + 1, 2N) matrix, nemen de 2D DFT en gebruiken

de Fourier coefficienten om via een inverse transformatie een bandbeperkte (met bandbreedte M,N)

benadering te bekomen van de oorspronkelijke functie, in de vorm van equidistante samples in een (2M +

1, 2N) matrix.

We introduceren nu het begrip sferische functie. Wat we uiteindelijk willen is een functie te berekenen

over de volledige ruimtehoek, dus met grenzen θ = [0, π] en φ = [0, 2π] in een klassiek sferisch assenstelsel.

Zoals aangetoond in volgende sectie kunnen we deze integraal herschrijven als een integraal met de grenzen

θ = [0, 2π] en φ = [0, 2π] waarbij dus zowel in θ als φ een hele periode bestreken wordt. Dit staat dan toe

de te integreren functie te benaderen door trigonometrische veelterm. Met het oog op deze feiten moeten

we de functies continu expanderen zodat ze 2π periodisch zijn in beide angulaire coordinaten. Stel dat

we een functie hebben in Carthesische coordinaten Ws(x, y, z) die we uitdrukken in sferische coordinaten

op het oppervlak van de eenheidsbol, dus Ws(sin θ cos φ, sin θ sinφ, cos θ). Deze functie hangt alleen af

van de hoeken en het is eenvoudig aan te tonen dat geldt

Ws(−θ, φ) = Ws(θ, φ + π) (B.17)

We noemen functies die hieraan voldoen sferische functies. In deze thesis zijn niet alle functies uitsluitend

in termen van carthesische coordinaten. De Z-matrices bij het MLFMA-algoritme hebben bijvoorbeeld

nog een extra trigonometrische factor. Het kan aangetoond worden dat voor deze functies geldt

Was(−θ, φ) = −Was(θ, φ + π) (B.18)

dewelke we antisferisch noemen. De samplereeksen van een sferische en antisferische functie voldoen

respectievelijk aan u(−m,n) = u(m,n + N) en u(−m,n) = −u(m,n + N). Deze functies kunnen we

nu benaderen door een trigonometrische veelterm in twee dimensies, zoals hierboven beschreven. Het

is eenvoudig aan te tonen dat de Fourier coefficienten a(m,n) van een sferische functie voldoen aan de

relatie

a(−m,n) = (−1)na(m,n) (B.19)

hetgeen we een transsferische functie dopen. Voor de Fourier coefficienten ten gevolge van een antisferische

functie kan even eenvoudig bewezen worden dat

a(−m,n) = −(−1)na(m,n) (B.20)

Page 78: Een snelle multipoolmethode voor de verstrooiing aan extreem …lib.ugent.be/fulltxt/RUG01/001/311/808/RUG01-001311808... · 2010. 6. 7. · ook Pearl Jam, Joe Satriani, Madrugada,

B.1 Fourier transformatie van (anti)sferische functies 68

wat we een antitranssferische functie noemen. We geven hier nu Lemma 3.1 uit Sarvas, dat zegt

Lemma 3.1: Beschouw de (2M + 1, 2N) matrix u. Als u sferisch is dan geldt voor

v1 = (F2M+1u(:, n))(m) (B.21)

v2 = (F2Nu(m, :))(n) (B.22)

dat v1 sferisch en v2 transsferisch is. Het duale geldt als u een transsferische functie is en alles is eveneens

geldig als F−1 beschouwd wordt en/of het anti(trans)sferische functies betreft.

Op basis hiervan kan nu een efficient algoritme gegeven worden om de DFT van een sferische of

antisferische functie te berekenen. Zij u een sferische functie, dan kunnen we w = Fu berekenen via de

volgende stappen:

v(m,n) = (Fu(:, n)(m) voor −M ≤ m ≤ M , −N ≤ n ≤ −1

v(m,n) = v(−m,n−N) voor −M ≤ m ≤ M , 0 ≤ n ≤ N − 1

w(m,n) = (Fv(m, :)(n) voor −M ≤ m ≤ 0, −N ≤ n ≤ N − 1

w(m,n) = (−1)nv(−m,n) voor 1 ≤ m ≤ M , 0 ≤ n ≤ N − 1

Aangezien we weten dat w een transsferische functie is, is de laatste stap in principe niet nodig en

volstaat het om w op te slaan als een (M + 1, 2N)-matrix. Het is om deze reden dat de uitbreiding

naar de volledige periode van θ niet tot extra rekenwerk of geheugen leidt. Voor een antisferische functie

moet in de tweede en vierde stap een minteken toegevoegd worden. Het is dus belangrijk dat steeds het

onderscheid gemaakt wordt tussen welke functies sferisch en welke antisferisch zijn. Een 1D DFT kost

O(N log N) rekentijd. Door gebruik te maken van sferisch en antisferisch uitbreiden wordt het aantal

DFT’s dat effectief berekend moet worden gehalveerd. Dit zorgt voor extra efficientie. In de inleiding

van deze Appendix werd vermeld dat dit alles geldig is een centraal DFT kader. In de implementatie is

de uitstekende FFTW bibliotheek gebruikt, die samples geeft in [0, 2π] in plaats van [−π, π]. Dit noemen

we een niet-centrale DFT. De Fourier coefficienten zijn uiteraard nauw gerelateerd, omdat de functies

2π periodisch zijn. Het is dus eenvoudig om voorgaand algoritme te herschrijven, maar nu voor een

niet-centrale DFT. De samplewaarden worden gegeven door θm = m 2π2M+1 en φn = n 2π

2N . De sfericiteit

wordt nu uitgedrukt als u(m,n) = u(2M + 1 −m,n + N) (met weer het minteken voor antisfericiteit)

en een transsferische functie wordt gegeven door a(m,n) = (−1)na(2M + 1 −m,n) (en minteken voor

antitranssferisch).

v(m,n) = (Fu(:, n)(m) voor 0 ≤ m ≤ 2M , 0 ≤ n ≤ −1

v(m,n) = v(−m,n−N) voor 0 ≤ m ≤ M , N ≤ n ≤ 2N − 1

w(m,n) = (Fv(m, :)(n) voor 0 ≤ m ≤ M , 0 ≤ n ≤ N − 1

De vierde stap is hier al meteen weggelaten, zoals eerder besproken. Voor een antisferische functie moet

een minteken toegevoegd worden bij de tweede stap. Merk op dat bij toepassing van bovenstaande regels

Page 79: Een snelle multipoolmethode voor de verstrooiing aan extreem …lib.ugent.be/fulltxt/RUG01/001/311/808/RUG01-001311808... · 2010. 6. 7. · ook Pearl Jam, Joe Satriani, Madrugada,

B.2 Numerieke kwadratuur met uniform verdeelde punten 69

voor het oog gehouden moet worden dat u(2M + 1, n) = u(0, n). Er is een volkomen analoog algoritme

voor de inverse DFT van een (anti)transsferische functie.

B.2 Numerieke kwadratuur met uniform verdeelde punten

We willen integralen berekenen van het type

I =∫ 2π

0

∫ π

0

dθf(Ω)g∗(Ω) (B.23)

waarbij voor f en g geldt dat het sferische functies zijn:

f(2π − θ, φ + π) = f(θ, φ) en g(2π − θ, φ + π) = g(θ, φ) (B.24)

of

f(2π − θ, φ + π) = −f(θ, φ) en − g(2π − θ, φ + π) = g(θ, φ) (B.25)

Van beide functies is de Fourierreeks gekend en minstens een van beide mag getrunceerd worden (omdat

hij bandbeperkt of quasi bandbeperkt is). De Fourierreeksen worden gegeven door

f(Ω) =∑M ′

1m=−M1

∑N ′1

n=−N1amnejmθejnφ (B.26)

g(Ω) =∑M ′

2m=−M2

∑N ′2

n=−N2bmnejmθejnφ (B.27)

We onderstellen hierbij dat M ′i = Mi of M ′

i = Mi − 1 en idem voor N. We noemen Pi = Mi + M ′i + 1 en

Qi = Ni + N ′i + 1. Pi of Qi kunnen eventueel ∞ zijn. De integraal opsplitsend en gebruik makend van

periodiciteit bekomen we

I =∫ 2π

0

∫ 2π

0

dθf(Ω)g∗(Ω)−∫ 2π

0

∫ 2π

π

dθf(Ω)g∗(Ω)

=12

∫ 2π

0

∫ 2π

0

dθf(Ω)g∗(Ω)

=12

M ′1∑

m=−M1

N ′1∑

n=−N1

M ′2∑

k=−M2

N ′2∑

l=−N2

amnb∗kl

∫ 2π

0

∫ 2π

0

dθej(n−l)φej(m−k)θ

=12(4π2)

M ′∑m=−M

N ′∑n=−N

amnb∗mn

(B.28)

met M = min(M1,M2) en analoog voor M ′,N en N ′. Om te vermijden dat een oneindige som vereist is

voor de berekening zien we dus duidelijk dat minstens een van beide functies getrunceerd moet kunnen

worden en dan doet de bandbreedte van de andere functie er niet toe. Vanaf nu werken we verder met

de getrunceerde functies F en G

F (Ω) =∑M ′

m=−M

∑N ′

n=−N amnejmθejnφ (B.29)

G(Ω) =∑M ′

m=−M

∑N ′

n=−N bmnejmθejnφ (B.30)

Page 80: Een snelle multipoolmethode voor de verstrooiing aan extreem …lib.ugent.be/fulltxt/RUG01/001/311/808/RUG01-001311808... · 2010. 6. 7. · ook Pearl Jam, Joe Satriani, Madrugada,

B.3 Interpolatie en anterpolatie 70

Gegeven de Fouriercoefficienten amn en bmn kunnen dus met een inverse DFT de functies F en G gevonden

worden in de samplepunten θk = k 2πP en φl = l 2π

Q voor −M ≤ k ≤ M ′ en −N ≤ l ≤ N ′. Dit geeft dus

punten tussen −π en π volgens de centrale DFT methode. De Fouriercoefficienten voldoen aan

amn = 1PQ

∑M ′

k=−M

∑N ′

l=−N Fkle−jmk 2π

P e−jnl 2πQ (B.31)

bmn = 1PQ

∑M ′

k=−M

∑N ′

l=−N Gkle−jmk 2π

P e−jnl 2πQ (B.32)

Substitueren we dit in de uitdrukking voor I en maken we nog gebruik van

δkk′ = 1P

∑M ′

m=−M ejm 2πP (k−k′) (B.33)

δll′ = 1Q

∑N ′

m=−N ejn 2πQ (l−l′) (B.34)

vinden we uiteindelijk het volgende cruciale resultaat

I =12(4π2)

1PQ

M ′∑m=−M

N ′∑n=−N

FmnG∗mn (B.35)

Als een van beide functies exact getrunceerd kan worden, dan is deze formule exact. Dit is het basisre-

sultaat voor het berekenen van de integraties. Verschillende bibliotheken, waaronder die van MATLAB

en FFTW, geven samplewaarden tussen 0 en 2π. Vanwege de periodiciteit is deze niet-centrale DFT

uiteraard geen probleem, en de integraal kan evengoed uitgerekend worden op basis van samplewaarden

tussen 0 en 2π.

B.3 Interpolatie en anterpolatie

Een trigonometrische veelterm kan eenvoudig en efficient geinterpoleerd of geanterpoleerd worden via de

DFT. Deze bewerkingen komen respectievelijk neer op het zero-padden of trunceren van de reeks Fourier

coefficienten. Zeropadden in 1D komt neer op het uitbreiden van de coefficientenreeks a(n) langs beide

kanten met M nullen. We noemen deze bewerking Pad(a,M). Een inverse DFT leidt dan tot dezelfde

functie, zij het met een hogere sample-rate. Het proces van interpoleren in 1D van L samples tot L+2M

samples komt dus neer op

Interp(u, N + M) = (L + 2M)F−1L+2M (Pad(a,M)) (B.36)

waarin N = floor(L/2) en a = 1LFu.

Anterpoleren is het logische tegengestelde van interpoleren. In plaats van langs weerszijden M nullen

toe te voegen, worden links en rechts de M buitenste coefficienten weggelaten, waarna de inverse DFT

berekend wordt. De coefficientenreeks wordt dus getrunceerd. Bijgevolg

Anterp(u, N −M) = (L− 2M)F−1L−2M (Trunc(a,M)) (B.37)

Ook niet bandbeperkte Fourierreeksen, dus L = ∞ kunnen getrunceerd worden.

Page 81: Een snelle multipoolmethode voor de verstrooiing aan extreem …lib.ugent.be/fulltxt/RUG01/001/311/808/RUG01-001311808... · 2010. 6. 7. · ook Pearl Jam, Joe Satriani, Madrugada,

B.4 De Fourier coefficienten van αm′m(k, rm′m)| sin(θ)| 71

De veralgemening naar 2D ligt voor de hand, aangezien deze uitgedrukt is in termen van 1D DFT’s.

De kolommen en rijen worden uitgebreid met nullen of worden getrunceerd met het gewenste aantal. We

vermelden in de context van anterpoleren nog Sarvas’ Theorem 4.1, dat van bijzonder belang is voor deze

thesis.

Theorem 4.1: Zij U en V trigonometrische veeltermen en zij N de bandbreedte van U . Zij N + M ≤

de bandbreedte van V, voor een M > 0. De bandbreedte van V mag dus ook ∞ zijn. Zij u en v de samples

van U en V . Er geldt dan dat Anterp(UV,M) = Anterp(W,M), waar W een trigonometrische veelterm

is, wiens samplereeks w(n) voldoet aan

w(n) = u1(n)v1(n) voor −N −M ≤ n ≤ N + M (B.38)

met

u1 = Interp(u, N + M) (B.39)

v1 = Anterp(v,N + M) (B.40)

Beide functies worden dus respectievelijk geinterpoleerd en geanterpoleerd naar N + M waarna hun

elementsgewijs product geanterpoleerd wordt naar bandbreedte M . Het theorema gaat ook op in 2D en

de veralgemening is triviaal. Het bewijs wordt voor 1D gegeven in het artikel van Sarvas.

Met het oog op de integraties die uitgevoerd moeten worden in de thesis is ook Lemma 3.2 van Sarvas

van aanzienlijk belang.

Lemma 4.2: Zij U1, U2 en U3 trigonometrische veeltermen in een variabele. Zij N de halve bandbreedte

van U1, M de halve bandbreedte van U3 en zij N ≥ M . Laat ons aannemen dat V ≈ U2U3, met N de halve

bandbreedte van V, waarbij de benadering voldoende nauwkeurig is. Zij de lengte van de samplereeksen

van U1, V en U3 allen even. Onder deze voorwaarden geldt∫ π

−π

U1(t)U2(t)U3(t)dt ≈∫ π

−π

W (t)U3(t)dt (B.41)

Hierin is W = Anterp(S,M) en S de trigonometrische veelterm wiens samplereeks voldoet aan

s(n) = U1(tn)U2(tn) met tn =nπ

Nvoor −N ≤ n ≤ N − 1 (B.42)

Voor het bewijs wordt weer verwezen naar het artikel. Het theorema geldt analoog voor samplereeksen

van oneven lengte en kan dus gebruikt worden voor de integraties naar zowel θ als φ.

B.4 De Fourier coefficienten van αm′m(k, rm′m)| sin(θ)|

In bovenstaande secties is uitgelegd dat de integraties efficient uitgevoerd kunnen worden op voorwaar-

de dat we αm′m(k, rm′m)| sin(θ)| kunnen anterpoleren. Dit is echter, vanwege de | sin(θ)| een niet-

bandbeperkte functie en de Fourier coefficienten kunnen dus niet voldoende nauwkeurig bekomen worden

Page 82: Een snelle multipoolmethode voor de verstrooiing aan extreem …lib.ugent.be/fulltxt/RUG01/001/311/808/RUG01-001311808... · 2010. 6. 7. · ook Pearl Jam, Joe Satriani, Madrugada,

B.4 De Fourier coefficienten van αm′m(k, rm′m)| sin(θ)| 72

door op een eindige manier te samplen en dan de DFT te trunceren. Er bestaat echter een analyti-

sche, recursieve methode om de Fourier coefficienten te bepalen, op basis van de definitie van Fourier

transformaties. Dit geeft

bmn =1

4π2

∫ 2π

0

∫ 2π

0

αm′m(k, rm′m)| sin(θ)|e−j(mθ+nφ)dθdφ (B.43)

De uitdrukking voor αm′m(k, rm′m) wordt gegeven in Hoofdstuk 4. Invullen van deze, en omwisselen van

de volgorde van integratie en sommatie, geeft ons dan

bmn =−jk

L∑l=0

jl(2l + 1)h(2)l (krm′m)

14π2

∫ 2π

0

∫ 2π

0

Pl(k · rm′m)| sin(θ)|e−j(mθ+nφ)dθdφ

=−jk

L∑l=0

jl(2l + 1)h(2)l (krm′m)

14π2

f lmn

(B.44)

met

f lmn =

∫ 2π

0

∫ 2π

0

Pl(k · rm′m)| sin(θ)|e−j(mθ+nφ)dθdφ (B.45)

Als we de f lmn kunnen berekenen, hebben we ook de gezochte bmn bepaald. Om deze nu te berekenen,

wordt een recursie-algoritme afgeleid. We maken gebruik van

(l + 1)Pl+1(x) = (2l + 1)xPl(x)− lPl−1(x) (B.46)

en

k · rm′m = cos θ cos θm′m + sin θ sin θm′m cos(φ− φm′m)

= sin θ cos(φ− φm′m)(B.47)

met de vereenvoudiging omdat rm′m geen z-component heeft en dus θm′m = π/2. Dit geeft dan, na enig

rekenwerk, volgende uitdrukking

f l+1mn =

2l + 1l + 1

(cos φm′mblmn + sinφm′mcl

mn)− l

l + 1f l−1

mn (B.48)

met

blmn =

∫ 2π

0

∫ 2π

0sin θ cos φPl(k · rm′m)| sin(θ)|e−j(mθ+nφ)dθdφ (B.49)

clmn =

∫ 2π

0

∫ 2π

0sin θ sinφPl(k · rm′m)| sin(θ)|e−j(mθ+nφ)dθdφ (B.50)

dewelke op hun beurt voldoen aan

blmn = 1

4j (f lm−1,n−1 + f l

m−1,n+1 − f lm+1,n−1 − f l

m+1,n+1) (B.51)

clmn = − 1

4 (f lm−1,n−1 + f l

m+1,n+1 − f lm+1,n−1 − f l

m−1,n+1) (B.52)

Om te besluiten hebben we nu nog beginwaarden nodig, waarop we de recursie kunnen starten. Hiertoe

berekenen we

f0mn =

∫ 2π

0

∫ 2π

0

| sin(θ)|e−j(mθ+nφ)dθdφ

= −4π1 + (−1)m

m2 − 1δn0

(B.53)

Page 83: Een snelle multipoolmethode voor de verstrooiing aan extreem …lib.ugent.be/fulltxt/RUG01/001/311/808/RUG01-001311808... · 2010. 6. 7. · ook Pearl Jam, Joe Satriani, Madrugada,

BIBLIOGRAFIE 73

Bibliografie

[1] W.C. Chew, J. Jin, E. Michielssen, J. Song, “Fast And Efficient Algorithms In Computational

Electromagnetics”, 2001.

[2] K. Cools, L. Meert, “Simulatie van meta-materialen”, Thesis UGent, 2003-2004.

[3] I.V. Lindell, “Methods for Electromagnetic Field Analysis”, 1992.

[4] F. OLyslager, “Elekromagnetisme I”, Cursus UGent, 2003-2004.

[5] R. Coifman, V. Rokhlin, S. Wandzura “The Fast Multipole Method for the Wave Equation: A

Pedestrian Prescription”, IEEE Antennas and Propagation Magazine, Vol. 35, No. 3, pp 7-12, 1993.

[6] J. Sarvas, “Performing Interpolation And Anterpolation Entirely By Fast Fourier Transformation In

The 3-D Multilevel Fast Multipole Algorithm”, Siam J. Num. Anal., Vol. 41, No. 6, pp 2180-2196,

2003.

[7] D. Vande Ginste, “Op perfect aangepaste lagen gebaseerde snelle multipoolmethodes voor planaire

microgolfstructuren”, Doctoraat UGent, 2004-2005.

[8] B. Carpentieri, I.S. Duff, L. Giraud, G. Sylvand, “Combing Fast Multipole Techniques And An

Approximate Inverse Preconditioner For Large Electromagnetical Calculations”, Siam J. Num.

Anal., Vol. 27, No. 3, pp 774-792, 2005.

[9] A. D. Yaghjian, “Electric Dyadic Green’s Functions in the Source Region”, Proceedings Of The

IEEE., Vol. 68, No. 2, pp 248-263, 1980.

[10] R. Barrett, M. Berry, T. Chan, J. Demmel, J. Donato, J. Dongarra, V. Eijkhout, R. Pozo, C. Romine,

H. Van Der Vorst, “Templates For The Solution Of Linear Systems: Building Blocks For Iterative

Methods”, SIAM, Philadelphia, 1995.

[11] A. Bunse-Gerstner, Ronald Stover “On A Conjugent-Gradient Type Method For Solving Complex

Symmetric Linear Systems”, Linear Algebra And Its Applications, Vol. 287, No. 2, pp 105-123, 1999.

[12] P. Claus, “Vaste-stoffysica en Halfgeleiders I”, Cursus UGent, 2003-2004.

[13] J. I. Trisnadi “Hadamard speckle contrast reduction”, Optics Letters, Vol. 29, No. 1, pp 11-13, 2004.

Page 84: Een snelle multipoolmethode voor de verstrooiing aan extreem …lib.ugent.be/fulltxt/RUG01/001/311/808/RUG01-001311808... · 2010. 6. 7. · ook Pearl Jam, Joe Satriani, Madrugada,

LIJST VAN FIGUREN 74

Lijst van figuren

1.1 Voorbeeld van een configuratie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

2.1 De rooftop basisfuncties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2.2 Geometrische illustratie van het wegvallen van de tweede integraalterm . . . . . . . . . . . 8

3.1 Opdeling in groepen (rood) van basisfuncties (blauw bolletje = centrum) . . . . . . . . . 15

4.1 Hierarchische opdeling in groepen op verschillende levels (vereenvoudigde voorstelling) . . 22

4.2 Logaritme van de relatieve fout op een matrix-element bij varierende truncatiegrens L . . 28

5.1 Tijd voor een iteratie (s) bij MLFMA (driehoekjes) en de klassieke methode (bolletjes) . . 40

5.2 Piekgeheugen (MB) bij MLFMA (driehoekjes) en de klassieke methode (bolletjes) . . . . 41

5.3 Geheugenverloop (MB) bij MLFMA simulatie met N=350000 (twee iteraties) . . . . . . . 42

5.4 Iteratietijd (s) als functie van de relatieve fout op de matrixelementen (N=350000) . . . . 43

5.5 RAM-geheugen (MB) als functie van de relatieve fout op de matrixelementen (N=350000) 43

5.6 Iteratietijd (s) voor een strip (bolletjes) t.o.v. ideale curve (lijn) . . . . . . . . . . . . . . . 45

5.7 De bestudeerde niet-ideale structuren (a),(b) en (c) . . . . . . . . . . . . . . . . . . . . . . 47

6.1 Amplitude van het totale elektrische veld in een deel van het XZ-vlak na verstrooiing met

een vlakke golf aan een 8λ× 8λ plaatje. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

6.2 Amplitude van het totale elektrische veld ten gevolge van een vlakke golf aan een PEC-

plaat, uitgezet langs een lijn (0,0,z) (rood = analytisch, lichtblauw = 8λ×8λ, donkerblauw

= 16λ× 16λ, groen = 32λ× 32λ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

6.3 Amplitude van het verstrooide elektrische veld in een deel van het XZ-vlak na verstrooiing

met een dipoolantenne aan een 32λ× 32λ plaatje, analytisch (rood) en uit simulatie (blauw) 52

6.4 Verstrooiingsroosters met periode T = 0.45λ (a) en T = 0.9λ (b) . . . . . . . . . . . . . . 53

6.5 Verstrooide golven via ewald-sfeer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

6.6 Verstrooide veld aan rooster met periode T = 0.45λ (a) en T = 0.9λ (b) . . . . . . . . . . 54

6.7 Genormaliseerde amplitude van het verstrooide veld aan een rooster met periode T = 0.9λ

voor 17 latjes (blauw), 11 latjes (groen), 7 latjes (rood) . . . . . . . . . . . . . . . . . . . 55

Page 85: Een snelle multipoolmethode voor de verstrooiing aan extreem …lib.ugent.be/fulltxt/RUG01/001/311/808/RUG01-001311808... · 2010. 6. 7. · ook Pearl Jam, Joe Satriani, Madrugada,

LIJST VAN FIGUREN 75

7.1 8x8 Hadamard Rooster . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

7.2 Amplitude van het verstrooide veld aan 8x8 platen voor (a) Z=20 en (b) Z=100 . . . . . 57

7.3 Amplitude van het verstrooide veld Z=100 aan een grote 8x8 plaat . . . . . . . . . . . . . 58

7.4 (a) Amplitude en (b) fase van het totale veld voor een plaat met twee spleetjes . . . . . . 58

Page 86: Een snelle multipoolmethode voor de verstrooiing aan extreem …lib.ugent.be/fulltxt/RUG01/001/311/808/RUG01-001311808... · 2010. 6. 7. · ook Pearl Jam, Joe Satriani, Madrugada,

LIJST VAN TABELLEN 76

Lijst van tabellen

5.1 Iteratietijd (s) voor een strip, met MLFMA waarbij het aantal interactieniveaus vastligt,

zoals gemeten en vergeleken met ideale MLFMA en klassieke momentenmethode . . . . . 45

5.2 Iteratietijd (s) voor het minst ideale geval bij interactie op een varierend aantal levels . . 46

5.3 Iteratietijd (s) voor de niet-ideale structuren . . . . . . . . . . . . . . . . . . . . . . . . . . 46