een snelle multipoolmethode voor de verstrooiing aan extreem...
TRANSCRIPT
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
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
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
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
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.
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
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.
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
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
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
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
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
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.
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)
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.
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)
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)
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
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)
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
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.
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.
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
4π
∫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.
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)
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
4π
∫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
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
4π
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.
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ωµ
4π
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
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
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
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.
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
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
4π
∫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
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
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.
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)
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
4π
∫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
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
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
dφ
∫ π
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
dφ
∫ 2π
0
dθf(Ω)g∗(Ω) (4.18)
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
dφ
∫ 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
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
4.3 Snelheidscomplexiteit 31
berekenen:12
∫ 2π
0
dφ
∫ 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
dφ
∫ 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
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
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)
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.
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
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
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
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.
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
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
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
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-
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)
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
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.
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-
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].
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.
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
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.
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λ
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
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
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
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.
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
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
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
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.
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)
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)
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
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
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.
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)
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
2π
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)
B.1 Fourier transformatie van (anti)sferische functies 67
met
u(m,n) = U(m2π
2M + 1, n
2π
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
2π
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)
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
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
dφ
∫ π
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
dφ
∫ 2π
0
dθf(Ω)g∗(Ω)−∫ 2π
0
dφ
∫ 2π
π
dθf(Ω)g∗(Ω)
=12
∫ 2π
0
dφ
∫ 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
dφ
∫ 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)
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.
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
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
4π
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
4π
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)
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.
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
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
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