bakalářská práce

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

Text práce 6.78 MB

Autor práce: Bc. Daniel Mačura

Ak. rok: 2024/2025

Vedoucí: Ing. Tomáš Milet, Ph.D.

Oponent: Ing. Michal Vlnas

Abstrakt:

Cieľom tejto práce je vyvinúť kompilátor, ktorý prekladá skripty Ansys© Lumerical do skriptov Meep. Na tento účel sa v práci podáva základné objasnenie formálnych jazykov, ako aj všeobecný opis fyzikálnych princípov, na ktorých je postavená metóda FDTD. Ďalej sa diskutuje o kľúčových implementačných detailoch vrátane návrhu transpilátora a príslušných funkcií jazyka. Po vytvorení samotného transpilátora sa táto práca zameriava aj na porovnanie výsledkov oboch simulačných nástrojov. Porovnanie sa týka presnosti simulácií, ako aj výkonnosti oboch nástrojov v spojení s ich paralelizačnými schopnosťami. Výsledný open source kód môže slúžiť ako rámec pre nadväzujúce výskumné činnosti v tejto oblasti.

Klíčová slova:

výpočtová elektromagnetika, metóda konečných diferencií v časovej doméne, Meep, Ansys© Lumerical, transpilátor

Termín obhajoby

16.06.2025

Výsledek obhajoby

obhájeno (práce byla úspěšně obhájena)

znamkaBznamka

Klasifikace

B

Průběh obhajoby

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.

Otázky k obhajobě

  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í?

Jazyk práce

angličtina

Fakulta

Ústav

Studijní program

Informační technologie (BIT)

Složení komise

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)

Posudek vedoucího
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ů.

Kritérium hodnocení Slovní hodnocení
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.

Výsledný počet bodů navržený vedoucím: 95

Známka navržená vedoucím: A

Posudek oponenta
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.

Kritérium hodnocení Slovní hodnocení Body
Náročnost zadání

Stupeň hodnocení: 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í

Stupeň hodnocení: zadání splněno

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

Rozsah technické zprávy

Stupeň hodnocení: 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
Otázky k obhajobě:
  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.
Výsledný počet bodů navržený oponentem: 88

Známka navržená oponentem: B

Odpovědnost: Mgr. et Mgr. Hana Odstrčilová