Computersimuleringer af nanofotoniske komponenter - det' sgu svært!
Nanofotoniske komponenter og interferenseffekter
Praktiske komponenter i fremtidens informationsteknologi og integrerede optiske kredsløb er sammensat af mange forskellige materialer, som kombineres sindrigt for at opnå den bedste ydeevne (: den højeste rate af information) med så lavt et energiforbrug som muligt. Ligeledes er det et mål at gøre disse komponenter så kompakte som mulige, og i takt med udviklingen af moderne mikro- og nanofabrikationsteknikker bliver karakteristiske længdeskalaer i disse komponenter mikro- til nanometer.
Eftersom optiske fibre, som skal bruges til at flytte lyset og dermed informationen, i de fleste tilfælde har det laveste tab ved en bølgelængde på 1,55 mikrometer (= 1550 nanometer), designes mange komponenter til at operere ved eller tæt på denne bølgelængde. Dermed er bølgelængden af lyset og længdeskalaerne i komponenterne altså sammenlignelige, hvorfor interferenseffekter bliver væsentlige - og sammenholdes dette med de typisk høje kontraster i brydningsindeks (fra luft med n = 1 til halvledere med n = 3.5 og metaller med komplekse brydningsindekser) er der i designprocessen behov for at løse de komplicerede, vektorielle Maxwell ligninger.
Behov for fulde 3D løsninger
For visse typer af strukturer kan disse ligninger til god approksimation løses enten som 1D eller 2D problemer, men mange relevante komponenter fordrer en fuld 3D løsning, hvor der tages korrekt højde for alle hjørner, geometriske detaljer og endelige dimensioner i strukturen.
Det er, som jeg vil komme tilbage til, ganske krævende med sådanne 3D løsninger, og man strækker sig derfor langt for at benytte de approksimative beskrivelser. Ligeledes søges simplificerede modeller, som indeholder den væsentlige fysik, men er nemmere at analysere og løse - men som dog også ofte valideres ved brug af de fulde 3D løsninger.
Åbne strukturer og absorberende grænsebetingelser
En udfordring i computersimuleringer af nanofotoniske komponenter er, at komponenterne ofte er omsluttet af et homogent materiale, typisk luft. For at modellere det fulde system, komponent og homogene omgivelser, skal begge dele inkluderes i beregningerne. Praktisk er det en udfordring, fordi der i de homogene omgivelser er et kontinuum af løsninger til Maxwells ligninger - som principielt alle skal inkluderes i beregningen, hvilket er umuligt i en computer med endeligt meget hukommelse!
I praksis placerer man derfor beregningsteknisk sin komponent i en lukket kasse, hvilket diskretiserer kontinuumet af løsninger i omgivelserne. Dette diskretiserede sæt af løsninger kan godt behandles i computeren, men er omvendt en grov approksimation til det faktiske problem: Komponenten er ikke lukket inde i en kasse. I beregningerne manifesterer denne approksimation sig ved parasitiske reflektioner fra siden på beregningskassen.
På billedet nedenfor sendes lys ind fra oven igennem en fotonisk krystal bølgeleder. Ved slutningen af bølgelederen er lyset dels reflekteret tilbage i bølgelederen, dels transmitteret ud i luft, som befinder sig under den fotoniske krystal; billedet viser lysintensiteten fra denne beregning.
Rent fysisk vil den del af lyset, som transmitteres nedad, bevæge sig ud af som en cylinderbølge, men i beregningen på billedet sker der noget andet: Når lyset når til kanten af beregningskassen bliver det reflekteret, og dette giver anledning til de stående bølger, som ses på tværs af billedet. Som beskrevet ovenfor reflekterer dette ikke fysikken i problemet, men er en indbygget fejl i metoden, vi bruger til at regne på problemet.
Umiddelbart kan dette måske virke som en mindre detalje, men som omtalt i indledningen er interferenseffekterne helt afgørende at modellere korrekt - og hvis der pludselig dukker en ekstra bølge op i beregningerne, som ikke er der i det fysiske system, forstyrrer dette beregningsresultaterne betragteligt.
En måde til at omgå problemet er at introducere absorberende grænsebetingelser, hvor de bølger, som når ud til kanten af beregningskassen, dæmpes eksponentielt, før de reflekteres tilbage ind i beregningsvinduet. Dette gøres ofte i praksis med såkaldte perfectly matched layers (PML), og i billedet nedenfor vises løsningen for det samme problem som ovenfor, men hvor disse er introduceret.
Som det ses, er de stående bølger nu elimineret, og kvalitativt stemmer dette billede overens med forventningen: Lyset spreder sig ud af, efterhånden som det bevæger sig ned og væk fra den fotoniske krystal.
Beregningerne ovenfor er lavet med Fourier Modal Method (FMM), men andre velkendte beregningsteknikker som FDTD og FEM lider under samme problem og behøver ligeledes PML eller lignende.
PML har været kendt og brugt længe og er således de facto standarden for, hvordan man håndterer grænsebetingelserne for denne type af åbne problemer. Men det er i sin natur en kunstig måde at løse problemet på, og udviklingen af robuste og troværdige PML-formuleringer er ikke slut endnu.
Løsningsteknikker baseret på Green's funktioner og integralligninger (se f.eks. denne artikel) håndterer bedre og mere korrekt de åbne grænsebetingelser i mange nanofotoniske beregningsproblemer. På den anden side har disse teknikker sværere ved at håndtere de ofte komplekst sammensatte komponenter, og ethvert valg af metode - FMM, FDTD, FEM, Green's funktioner - medfører således nogle beregningstekniske problemer.
Rummelig opløsning - En kedelig skalering i 3D
Et andet vigtigt aspekt, uanset valg af numerisk metode, er den rummelige opløsning. I de velkendte FDTD og FEM metoder består dette i at vælge et rummeligt gitter, hvorpå diskretiserede udgaver af Maxwell ligningerne løses - og jo flere punkter dette gitter har, jo mere præcis er løsningen, men jo længere tager beregningerne også. I FMM, som jeg benytter, består diskretiseringen i en trunkering af Fourier rækkerne, dvs. i et valg af den største bølgevektor, som inkluderes i beregningen - hvilket er fuldt ækvivalent med at vælge afstanden mellem punkterne i sit rummelige gitter i FDTD og FEM.
Den rummelige opløsning er et mål for, hvor fint vi opløser de lysbølger, som danner grundlaget for, hvordan komponenterne virker. Som omtalt flere gange spiller interferenseffekter en central rolle, og det er derfor særdeles vigtigt at opløse bølgerne bedst muligt - for på den måde at beskrive interferensen mellem forskellige bølger (f.eks. den indkommende og den reflekterede i bølgelederen i billederne ovenfor) så præcist som muligt.
Hvis vi skal bruge N punkter per rummelig dimension, vi ønsker at modellere, så skal vi i en 1D beregning bruge N punkter - i en 2D beregning N^2 punkter - og i en 3D beregning N^3 punkter. Sidstnævnte tal, N^3, bliver hurtigt relativt stort, når N >> 1 - hvilket ofte er tilfældet i realistiske strukturer med mange og store indekskontraster.
Således er den rummelige opløsning en væsentlig udfordring, som gør, at 3D simuleringer af realistiske strukturer er en beregningstung og udfordrende opgave - og man skal tænke sig grundigt om, før man skriver sin hurtige akademikerkode.
Et 3D eksempel
Med min 3D FMM implementering lavede jeg for nylig den første beregning på en praktisk struktur: En firkantet bølgeleder, som taperes (dvs. indsnævres gradvist) i begge de transverse (x og y) dimensioner. Denne type af struktur har f.eks. været brugt som enkelt-foton kilde (se billedet på denne side), og det er generelt af interesse at kunne regne på sådanne problemer.
I twettet nedenfor ses lysudbredelsen igennem denne struktur (bemærk, at x-aksen til venstre repræsenterer x-koordinaten og til højre y-koordinaten - mens y-aksen i begge tilfælde er z-koordinaten).
First full-scale 3D simulation: Light propagation in x-y-tapered waveguide in air. #DTU #DTUFotonik #PhD #Physics pic.twitter.com/CAMUVuM89i
— Jakob R. de Lasson (@Jakobrdl) 10. juni 2014
Jeg har skaleret alle de rummelige koordinater til bølgelængden af lyset, og det fremgår således tydeligt, at dimensionerne af strukturen er i størrelsesordenen bølgelængden - hvor, bare for lige at nævne det endnu en gang, interferenseffekterne er væsentlige.
Pro-tip: Scale your coordinate axes to the wavelength to more clearly indicate wavelength and subwavelength geometric features. #Science
— Jakob R. de Lasson (@Jakobrdl) 20. maj 2014
(Mere) optimering og parallelisering?
De næste skridt er at validere min 3D kode imod kendte resultater fra litteraturen - og samtidig skabe et overblik over, hvor hurtigt (eller langsomt...) koden kører. Derefter bliver der sikkert brug for yderligere optimering og parallelisering af koden, så det bliver muligt at lave analyser og designs af fotoniske krystal strukturer.
For: Computersimuleringer af nanofotoniske komponenter - det' sgu svært!
