Головна Приклади Знімки екрана Інструкція користувача Логотип Bluesky. YouTube ☰
OghmaNano Мультифізична платформа для моделювання оптоелектронних пристроїв і фотонних систем. ЗАВАНТАЖИТИ Короткий посібник зі швидкого старту

Навчальний посібник FDTD: поширення зеленого світла у вільному просторі

1. Огляд: що ви будете моделювати.

У цьому навчальному посібнику представлено механізм скінченно-різницевих обчислень у часовій області (FDTD) у програмі OghmaNano, використовуючи найпростішу можливу фізичну систему: поширення електромагнітної хвилі у вільному просторі. Монохроматичне джерело зеленого світла з довжиною хвилі 530 нм розміщується в порожній обчислювальній області. Тут немає світловодів, резонаторів або будь-яких інших матеріалів, окрім вакууму. Мета полягає не в тому, щоб продемонструвати пристрій, а в тому, щоб зробити обчислювальний процес наочним.

Модуль FDTD безпосередньо розв’язує рівняння Максвелла у часовій області на дискретній просторовій сітці. На кожному часовому кроці електричне та магнітне поля оновлюються на всій сітці. Оскільки алгоритм має високий рівень паралельності, OghmaNano виконує його за допомогою OpenCL і автоматично використовуватиме ваш графічний процесор (GPU), якщо він доступний. Отже, цей посібник слугує як демонстрацією фізичних принципів, так і першим знайомством із FDTD-модулем, що використовує обчислення на GPU.

До кінця цієї сторінки ви створите модель, перевірите розмір світу та просторову сітку, запустите обчислювальний алгоритм і візуалізуєте, як зелене світло поширюється в просторі у трьох вимірах.

2. Створення симуляції вільного простору.

Відкрийте вікно «Нова симуляція» та виберіть категорію «Приклади FDTD», а потім оберіть приклад під назвою «Вільний простір». Два вікна вибору показано нижче.

New simulation window showing the FDTD examples category.
Відкрийте приклади FDTD у новому вікні симуляції.
FDTD example list showing the Free space simulation.
Оберіть приклад «Вільний простір».

Після завантаження з’являється головне вікно OghmaNano, в якому відображається проста тривимірна сцена. Обчислювальне середовище спочатку є порожнім, за винятком області джерела та області детектора. Клацніть правою кнопкою миші всередині тривимірного вікна та активуйте опцію «Показувати межі середовища». З’явиться червона рамка, яка визначатиме межі області FDTD.

Main OghmaNano window showing the Free space simulation. Checking the show world option.
Основне вікно OghmaNano, в якому відображається симуляція вільного простору. Перевірка опції «Показувати світ».
Main OghmaNano window showing the Free space simulation. Showing the world box that shows the extent of the simulation domain.
Основне вікно OghmaNano, що відображає симуляцію вільного простору. На ньому показано область моделювання, яка визначає межі симуляції.
World size editor showing the dimensions of the FDTD simulation domain.
Редактор розміру світу, до якого можна отримати доступ за допомогою кнопки «xz-size» у Substrate.

Розміри світу можна переглянути, натиснувши кнопку «Розмір основи по осях X і Z» на лівій панелі інструментів. Відкриється редактор розмірів світу, де визначається фізичний розмір області моделювання в мікрометрах. Для цього навчального посібника вам не потрібно нічого змінювати; область вже налаштовано таким чином, щоб у ній комфортно розмістилося кілька довжин хвиль зеленого світла.

3. Перевірка оптичних налаштувань і сітки.

Далі відкрийте вкладку «Опції» у верхній частині вікна.

Optical ribbon in OghmaNano showing the Optical mesh button.
Оптична стрічка. Натисніть «Оптична сітка», щоб переглянути просторову дискретизацію.

Натисніть «Оптична сітка», щоб відкрити редактор сіток.

Optical mesh editor showing mesh points and wavelength range between 531 nm and 532 nm.
Налаштування оптичної сітки, зокрема просторова роздільна здатність і діапазон довжин хвиль (531–532 нм).

Редактор сітки відображає кількість точок сітки, які використовуються в кожному просторовому напрямку. Ці значення визначають просторову роздільну здатність обчислення методом FDTD. Діапазон довжин хвиль встановлено в межах від 531 нм до 532 нм, що відповідає зеленому світлу. У цьому прикладі параметри товщини, які відображаються в редакторі сітки, автоматично масштабуються відповідно до розміру моделі, і їх можна ігнорувати. Важливо, щоб просторова сітка була достатньо дрібною для точного відтворення електромагнітної довжини хвилі.

4. Запуск FDTD-розв’язувача з використанням обчислень, прискорених за допомогою графічного процесора (GPU).

Запустіть моделювання, натиснувши кнопку «Запустити моделювання» або натиснувши клавішу F9. На вкладці «Термінал» відображатиметься інформація про розв’язувач.

Terminal output showing the FDTD module initialising and searching for OpenCL devices.
Вивід у терміналі під час виконання. Модуль FDTD ініціалізується, відображає інформацію про крок сітки та довжину хвилі, а також здійснює пошук доступних пристроїв OpenCL перед запуском циклу обчислення часових кроків.
Output tab showing simulation result files including detector data and snapshots directory.
Вкладка «Результати» після завершення процесу. Згенеровані файли містять дані детектора, експортовані файли конфігурації та каталог snapshots/, який містить дані поля, отримані в часовій послідовності.

У виводі термінала зверніть увагу на зелений текст, який повідомляє про пошук пристроїв OpenCL. На цьому етапі програма сканує вашу систему на наявність сумісних графічних процесорів. У системах із підтримуваною відеокартою, обчислювальний модуль вибере графічний процесор і виконає обчислення саме на ньому. У наведеному прикладі обчислення виконуються на центральному процесорі, який емулює пристрій OpenCL, але на сучасній робочій станції та сама симуляція автоматично використовуватиме графічний процесор для прискорення обчислень.

5. Перевірка результатів і знімків, зроблених під час роботи.

Після завершення перейдіть на вкладку «Вихідні дані». Там буде відображено список створених файлів.

Later-time snapshot showing spherical wavefront propagation.
Знімок, зроблений пізніше, показує поширення зеленої хвилі світла назовні.
Snapshot viewer showing green light propagating in free space.
Переглядач знімків: оберіть значення потужності та використовуйте повзунки, щоб дослідити зміни в часі та просторі.

Двічі клацніть на папку зі знімками, щоб відкрити переглядач знімків. У випадаючому списку внизу вікна виберіть параметр «щільність потужності». Кольорове поле відображає миттєву щільність електромагнітної енергії. Використовуйте горизонтальний повзунок, щоб переміщуватися вперед і назад у часі, а просторові повзунки – для перегляду різних поперечних перерізів області. На деяких комп’ютерах, особливо під час обробки великих обчислювальних сіток, переглядачу може знадобитися певний час, щоб відреагувати, оскільки він завантажує кожен набір даних.

У міру вашого «подорожування» крізь час, ви спостерігатимете, як хвильовий фронт поширюється в межах заданої області. У відкритому просторі, без меж і структур, поширення відбувається рівномірно та симетрично, і обмежується лише поглинаючими граничними умовами на краях обчислювальної області.

6. Перегляд показників потужності детектора.

Фіолетова сітка, видима в основному вікні, відображає площину детектора, розміщену всередині області моделювання. Двічі клацніть на детекторі 0 на вкладці «Результати», щоб відкрити графік його записаних показників потужності.

Main window showing the detector plane in purple.
Площина детектора (фіолетова сітка) всередині області вільного простору.
Detector power versus time plot.
Залежність потужності детектора від часу.

Отриманий графік відображає електромагнітну потужність, яка проходить через задану площину, як функцію часу. Спочатку детектор фіксує нульовий сигнал. Коли хвильовий фронт досягає площини, виміряна потужність зростає, а потім стабілізується відповідно до тимчасового профілю джерела. Завдяки цій простій конфігурації легко встановити зв’язок між візуальним поширенням хвилі на зображенні та кількісним вимірюванням потужності.

Ви щойно завершили свою першу FDTD-симуляцію в OghmaNano. Хоча система не містила жодних матеріалів чи пристроїв, вона продемонструвала повний числовий процес: визначення моделі, створення сітки, вибір пристрою GPU, обчислення в часі, візуалізація поля та отримання даних з детектора. У наступних навчальних матеріалах ці самі інструменти будуть застосовані до структурованих фотонних та оптоелектронних систем.

7. Прискорення моделювання шляхом переходу до двовимірного режиму (XZ).

Часто для розуміння структури та принципів роботи пристроїв не потрібні повноцінні тривимірні моделювання, особливо коли фізичні властивості практично не змінюються в одному напрямку. У таких випадках можна значно прискорити обчислення, зводячи задачу до двох вимірів. Наприклад, у випадку моделювання вільного простору, перехід від тривимірного середовища до двовимірного (в площині XZ) усуває весь вимір Y з обчислювальної сітки. В результаті отримуємо меншу кількість вузлів сітки, менший обсяг даних поля та значно скорочуємо час обчислень — зазвичай настільки, що повторні обчислення стають практично інтерактивними.

Щоб це зробити, поверніться до вкладки «Оптика», відкрийте «Оптичну сітку» та виберіть конфігурацію двовимірної сітки, показану на ??. Основна зміна полягає в тому, що вісь Y приховується, щоб симуляція перетворилася на обчислення в площині XZ.

Optical mesh editor configured for a 2D XZ simulation by suppressing the Y dimension.
Оптична сітка, налаштована для двовимірного простору: пригнічується вісь Y для проведення моделювання в площині XZ.
Snapshot viewer in 2D showing the wave propagating in the XZ plane.
Переглядач знімків у 2D: відображення зміни поля на площині XZ відбувається швидко, і зручно переглядати послідовність кадрів.
FDTD editor showing output verbosity to disk set to write everything to disk.
Для більш плавної відтворення збільште щільність знімків, встановивши рівень деталізації виводу на «Записувати все на диск».

Оскільки розмірність сітки тепер зменшено до двох, запустіть моделювання ще раз. Ви одразу помітите, що обчислення завершуються майже миттєво порівняно з тривимірним варіантом. Знову відкрийте каталог snapshots/ і переглядайте дані в часі за допомогою переглядача знімків (??). Оскільки набір даних значно менший, переглядач не тільки швидше завантажується, але й швидше реагує, коли ви переміщуєте повзунок часу або змінюєте параметри просторового перерізу.

Важливо враховувати, що сприймана плавність анімації може змінюватися. У двовимірній версії симуляція відбувається дуже швидко, і зазвичай кількість кадрів, що генеруються, менша, тому під час перегляду анімації по кадрах її розвиток може здаватися дещо нерівномірним — просто тому, що між одним часовим проміжком і наступним є менше збережених кадрів. Якщо ви хочете детальніше спостерігати за поширенням хвилі, збільште обсяг даних, що зберігаються на диску.

Щоб зробити це, знову перейдіть на вкладку «Оптика», натисніть кнопку «Моделювання FDTD», щоб відкрити вікно налаштувань FDTD, і змініть параметр «Деталізація виводу на диск» зі значення «Записувати все на диск кожні 8 кроків» на «Записувати все на диск (??)». Це дозволить зберігати знімок на кожному окремому кроці. Коли ви знову відкриєте переглядач знімків, ви зможете дуже точно відстежувати поширення хвилі в часі, а також матимете значно кращу часову роздільну здатність під час відтворення та перегляду.