Dette indlæg er alene udtryk for skribentens egen holdning.

Computersimuleringer af nanofotoniske komponenter - det' sgu svært!

26. juni 2014 kl. 07:436
Artiklen er ældre end 30 dage

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!

Artiklen fortsætter efter annoncen

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.

Illustration: Privatfoto.

Artiklen fortsætter efter annoncen

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).

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.

(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!

6 kommentarer.  Hop til debatten
Debatten
Log ind eller opret en bruger for at deltage i debatten.
settingsDebatindstillinger
6
26. juni 2014 kl. 16:45

Er der ikke meget indenfor nanoteknologien og kvanteverdenen som stadigt er ukendt, og derfor af gode grunde ikke kan simuleres, fordi der kræves mere forskning?

Kan simuleringer ikke være forskning? Det bliver jeg i så fald ked af, når jeg skal "afregne" med min ph.d.-afhandling og -forsvar, idet disse forventes at indeholde forskning:-)

Spøg til side - efterhånden som de strukturer, som kan fremstilles, bliver stadig mindre, når vi tættere og tættere på en grænse, hvor kvanteeffekter kan begynde at spille en væsentlig rolle. Dog er klassisk elektrodynamik (som jeg tidligere har skrevet om: https://ing.dk/blog/plasmonerne-blev-kvantemekaniske-eller-gjorde-de-168013) en særdeles god beskrivelse af mange af de optiske problemer, vi arbejder med, og man kan således nå langt med Maxwells ligninger (klassisk fysik) og nogle materialebeskrivelser, som er enten klassiske eller semi-klassiske (: klassisk med empirisk input af visse kvanteeffekter).

De lyskilder (f.eks. kvantepunkter), vi i visse situationer kommer indeni vores mikro- og nanostrukturer (f.eks. ind i en fotonisk krystal) er dog kvanteobjekter, som skal beskrives kvantemekanisk. Når vi derudover kommer i en situation, hvor der kun er nogle få fotoner i spil, bliver der stort set tale om et rent kvantemekanisk problem - hvilket nogle af mine kolleger arbejder med (se nogle af beskrivelserne på denne side: https://www.fotonik.dtu.dk/english/Research/Nanophotonics/Theory/Ongoing-Research-Activities/Quantum-Information-Technology).

Der er dog her, også når problemerne i det væsentligste er kvantemekaniske, tale om at udvikle modeller, som enten løses analytisk eller numerisk - og som så holdes op imod eksperimentelle observationer. Dvs. at der er tale om kvantemekaniske problemer ændrer strengt taget ikke på, at vi ofte må forlade os på numeriske løsninger.

5
26. juni 2014 kl. 15:03

Er der ikke meget indenfor nanoteknologien og kvanteverdenen som stadigt er ukendt, og derfor af gode grunde ikke kan simuleres, fordi der kræves mere forskning?

4
26. juni 2014 kl. 13:02

Hej Jakob, hvilken størrelsesorden maskine har du udført dine ovenstående beregninger på? Taler vi cluster eller workstation? Hvad med hukommelsesforbrug og simulationstid?

Mange af mine hidtidige 2D beregninger (som plots uden og med PML i indlægget er eksempler på) har jeg kørt på min desktop computer (32 GB Ram, quadcore). Som jeg tidligere har skrevet om (https://ing.dk/blog/hukommelsessvigt-165202) ledte dette på et tidspunkt til et hukommelsesproblem, hvilket jeg siden løste med diverse optimeringer af min kode (https://ing.dk/blog/lavthaengende-frugter-og-praematur-kodeoptimering-166031).

Jeg har dog også kørt nogle af mine 2D beregninger - særligt når der har været tale om store parametersweeps og situationer, hvor jeg skulle sammenligne med andres beregninger, f.eks. fra COMSOL - på vores computer cluster.

Generelt synes jeg, at man bør definere et konkret problem og sætte en målsætning for, hvor præcis beregningerne skal være, før det giver mening at sammenligne hukommelsesforbrug, beregningstider mv. I visse sammenhænge kan en præcision på 1%-10% være tilstrækkelig, mens der andre gange måske kræves en præcision på flere decimaler.

Denne artikel:

https://dx.doi.org/10.1364/OE.21.006794

gør præcis ovenstående, navnlig definerer et benchmarkproblem, som de siden tester fire forskellige beregningsmetoder på - hvilket i min optik er en seriøs og brugbar måde til at sammenligne præcision, beregningstid, hukommelsesforbrug osv.

3
26. juni 2014 kl. 11:47

Hej Jakob, hvilken størrelsesorden maskine har du udført dine ovenstående beregninger på? Taler vi cluster eller workstation? Hvad med hukommelsesforbrug og simulationstid?

2
26. juni 2014 kl. 11:15

Har du mulighed for at tilpasse nettet til variationerne på dine variable? Det er nogle gange smartere at bruge sine frihedsgrader effektivt i stedet for parallisere til at løse for en masse frihedsgrader - i særdeleshed hvis du har tænkt dig at lave konvergenstest mht. kasse/PML størrelse...

Det er et godt og meget centralt spørgsmål, og dette er naturligvis implementeret i kommercielt software som f.eks. COMSOL. Deri specificerer man sit mesh, og specielt tætheden af punkterne heri, som vælges tættere, hvor der er materialeovergange.

I FMM er der blevet udviklet et tilsvarende koncept kaldet adaptive spatial resolution (ASR) - der, som navnet antyder, er en teknik til at opnå en bedre rummelig opløsning på udvalgte steder. Jeg har ikke implementeret dette, men specielt i de 3D beregninger, jeg den seneste tid er startet på, vil det formentlig blive nødvendigt - for, som du nævner, ikke at spilde kræfter på at opløse store homogene dele af strukturen lige så fint som materialeovergangene.

Et par referencer:

1
26. juni 2014 kl. 10:51

Har du mulighed for at tilpasse nettet til variationerne på dine variable? Det er nogle gange smartere at bruge sine frihedsgrader effektivt i stedet for parallisere til at løse for en masse frihedsgrader - i særdeleshed hvis du har tænkt dig at lave konvergenstest mht. kasse/PML størrelse...

Jeg får måske noget MATLAB kode til at virke robust over de næste måneder, men det spytter (anisotropiske) tetraeder ud...