Bachelor's Thesis

Automatický překlad a srovnání simulací mezi Meep a Lumerical

Final Thesis 6.78 MB

Author of thesis: Bc. Daniel Mačura

Acad. year: 2024/2025

Supervisor: Ing. Tomáš Milet, Ph.D.

Reviewer: Ing. Michal Vlnas

Abstract:

This thesis aims to develop a source-to-source compiler that translates Ansys© Lumerical scripts into Meep scripts. To this end, a broad explanation of the physics behind the FDTD method, along with a background of formal languages, is provided. Key implementation details are discussed, including the design of the transpiler and relevant language features. After creating the transpiler itself, this thesis also sets out to compare the results of the two simulation tools. The comparison addresses the accuracy of the simulations, as well as the performance of the two tools coupled with their parallelization capabilities. The provided open source code may serve as a framework for future scientific endeavors in this area.

Keywords:

computational electromagnetics, finite difference time domain, Meep, Ansys© Lumerical, transpiler

Date of defence

16.06.2025

Result of the defence

Defended (thesis was successfully defended)

znamkaBznamka

Grading

B

Process of defence

Student nejprve prezentoval výsledky, kterých dosáhl v rámci své práce. Komise se poté seznámila s hodnocením vedoucího a posudkem oponenta práce. Student následně odpověděl na otázky oponenta a na další otázky přítomných. Komise se na základě posudku oponenta, hodnocení vedoucího, přednesené prezentace a odpovědí studenta na položené otázky rozhodla práci hodnotit stupněm B.

Topics for thesis defence

  1. V sekci 4.3 tvrdíte, že implementace definuje lexikální analýzu na základě regulárního výrazu, namísto automatu. Toto tvrzení je zdůvodněno tím, že při použití automatu je nutno všechny stavy napevno začlenit do automatu. Nejsou však i všechny regulární výrazy napevno napsány v kódu?
  2. Jaké externí balíčky pro Python jsou potřeba pro použití aplikace (nepočítaje pytest)?
  3. V sekci 5.1.2 říkáte, že kvůli velkým rozdílům mezi Lumerical a Meep je výsledný Python kód složitější a delší, avšak ekvivalentní. Lze tento kód zapsat i kratším způsobem, avšak zachovat stále ekvivalenci? Např. kód v obrázku 5.5 nebo 5.6.
  4. Můžete se vyjádřit k poznámkám k práci s literaturou?
  5. Jakým způsobem jste prováděl ověřování?

Language of thesis

English

Faculty

Department

Study programme

Information Technology (BIT)

Composition of Committee

doc. RNDr. Milan Češka, Ph.D. (předseda)
Ing. Zbyněk Křivka, Ph.D. (člen)
Ing. Zdeněk Materna, Ph.D. (člen)
doc. Ing. Jan Kořenek, Ph.D. (člen)
Ing. Jaroslav Rozman, Ph.D. (člen)

Supervisor’s report
Ing. Tomáš Milet, Ph.D.

Student pracoval samostatně na velkém a komplikovaném projektu. Konzultoval pravidelně a názorně prezentoval řešenou problematiku. Vzhledem k obtížnosti a studentově snažení hodnotím jeho práci stupněm A – 95 bodů.

Evaluation criteria Verbal classification
Informace k zadání

Student si zadání vybral sám, jako projekt, který by mu pomohl v práci. Cílem je vytvořit porovnávací nástroj mezi dvěma simulačními frameworky pro vlnovou optiku. Jedná se o složité zadání, jelikož vyžaduje studium dvou odlišných simulačních nástrojů, studium vlnové optiky, simulací a překladačů.

Práce s literaturou

Student pracoval s doporučenými zdroji a dohledával si vlastní.

Aktivita během řešení, konzultace, komunikace

Student pracoval samostatně a konzultoval pravidelně ve větších intervalech. Vždy předvedl posun vpřed. Konzultace byly přínosné a věcné.

Aktivita při dokončování

Student obsah své práce konzultoval a práci dokončoval ve spěchu, neboť je zadání velmi obsáhlé.

Publikační činnost, ocenění

Studentova práce by mohla posloužit jako transpiler simulací mezi programy Meep a Lumerical.

Points proposed by supervisor: 95

Grade proposed by supervisor: A

Reviewer’s report
Ing. Michal Vlnas

Z celkového hlediska se jedná určitě o nadprůměrnou práci, jenž řeší relativně složitý problém překládání programů z jednoho simulačního prostředí do druhého. Realizační část je velmi dobrá, avšak v textové části jsou již zmíněné citační problémy.

Evaluation criteria Verbal classification Points
Náročnost zadání

Evaluation level: obtížnější zadání

Zadání hodnotím jako obtížnější, vzhledem k rozsahu dané problematiky a víceoborové tématice.

Prezentační úroveň technické zprávy

Text je vhodně rozdělen do kapitol, jednotlivé části na sebe vhodně navazují a celkově je text pochopitelný.

95
Formální úprava technické zprávy

Práce je napsána v anglickém jazyce na velmi dobré úrovni. Je zde menší množství chyb, překlepů apod., avšak jedná se o zanedbatelné množství.

Z typografického hlediska je práce rovněž na dobré úrovni, avšak je zde několik prohřešků, které lehce i snižují přehlednost v některých částech textu. Autor často nereferencuje obrázky, tabulky, atd. v textu, není pak u některých částí patrné k čemu se daný objekt vztahuje. U tabulek popisující gramatiku v sekci 4.2 chybí nadpisy (např. tabulka 4.2, 4.3, 4.4, 4.5).

85
Realizační výstup

Implementační část práce je hodně pokročilá. Ačkoliv se nejedná o vůbec jednoduchý problém, protože zmíněné programy Lumerical a Meep nejsou mezi sebou z jazykového hlediska kompatibilní, tak výsledný program generuje velmi dobré výsledky. Současně autor srovnává simulace v prostředí Lumerical a Meep, kde vstupem pro Meep je právě autorem přeložený kód z Lumericalu. Ačkoliv autor ukazuje, že jsou zde technické nedostatky a složitější programy je nutno ručně upravit pro spuštění kompletní simulace, tak si nemyslím, že se jedná o zásadní problém.

Zdrojové kódy jsou dobře strukturované a je k nim poskytnuta rozsáhlá dokumentace.

95
Využitelnost výsledků

V případě odstranění drobných nedostatků jenž autor v práci zmiňuje a při implementaci zmíněných rozšíření má tento nástroj potenciál pro použití v průmyslu.

Rozsah splnění požadavků zadání

Evaluation level: zadání splněno

Zadání je splněno ve všech bodech.

Rozsah technické zprávy

Evaluation level: je v obvyklém rozmezí

Práce s literaturou

Autor cituje celkem 22 různých zdrojů formou bibliografických citací, kde 14 z 22 zdrojů jsou odborné články. Jako problém však hodnotím velmi slabé umístění citací v teoretické části. Jsou zde kompletní sekce bez citaci, spousta definic apod. u kterých předpokládám, že nejsou autorské. Konkrétně sekce 3.1.1, 3.1.2, 3.1.3, 3.1.5, 3.2.1 až 3.2.4, začátek sekce 3.5 a 3.5.1, 3.5.4, 3.5.5.

60
Topics for thesis defence:
  1. V sekci 4.3 tvrdíte, že implementace definuje lexikální analýzu na základě regulárního výrazu, namísto automatu. Toto tvrzení je zdůvodněno tím, že při použití automatu je nutno všechny stavy napevno začlenit do automatu. Nejsou však i všechny regulární výrazy napevno napsány v kódu?
  2. Jaké externí balíčky pro Python jsou potřeba pro použití aplikace (nepočítaje pytest)?
  3. V sekci 5.1.2 říkáte, že kvůli velkým rozdílům mezi Lumerical a Meep je výsledný Python kód složitější a delší, avšak ekvivalentní. Lze tento kód zapsat i kratším způsobem, avšak zachovat stále ekvivalenci? Např. kód v obrázku 5.5 nebo 5.6.
Points proposed by reviewer: 88

Grade proposed by reviewer: B

Responsibility: Mgr. et Mgr. Hana Odstrčilová