Навчальний посібник FDTD: поширення зеленого світла у вільному просторі
1. Огляд: що ви будете моделювати.
У цьому навчальному посібнику представлено механізм скінченно-різницевих обчислень у часовій області (FDTD) у програмі OghmaNano, використовуючи найпростішу можливу фізичну систему: поширення електромагнітної хвилі у вільному просторі. Монохроматичне джерело зеленого світла з довжиною хвилі 530 нм розміщується в порожній обчислювальній області. Тут немає світловодів, резонаторів або будь-яких інших матеріалів, окрім вакууму. Мета полягає не в тому, щоб продемонструвати пристрій, а в тому, щоб зробити обчислювальний процес наочним.
Модуль FDTD безпосередньо розв’язує рівняння Максвелла у часовій області на дискретній просторовій сітці. На кожному часовому кроці електричне та магнітне поля оновлюються на всій сітці. Оскільки алгоритм має високий рівень паралельності, OghmaNano виконує його за допомогою OpenCL і автоматично використовуватиме ваш графічний процесор (GPU), якщо він доступний. Отже, цей посібник слугує як демонстрацією фізичних принципів, так і першим знайомством із FDTD-модулем, що використовує обчислення на GPU.
До кінця цієї сторінки ви створите модель, перевірите розмір світу та просторову сітку, запустите обчислювальний алгоритм і візуалізуєте, як зелене світло поширюється в просторі у трьох вимірах.
2. Створення симуляції вільного простору.
Відкрийте вікно «Нова симуляція» та виберіть категорію «Приклади FDTD», а потім оберіть приклад під назвою «Вільний простір». Два вікна вибору показано нижче.
Після завантаження з’являється головне вікно OghmaNano, в якому відображається проста тривимірна сцена. Обчислювальне середовище спочатку є порожнім, за винятком області джерела та області детектора. Клацніть правою кнопкою миші всередині тривимірного вікна та активуйте опцію «Показувати межі середовища». З’явиться червона рамка, яка визначатиме межі області FDTD.
Розміри світу можна переглянути, натиснувши кнопку «Розмір основи по осях X і Z» на лівій панелі інструментів. Відкриється редактор розмірів світу, де визначається фізичний розмір області моделювання в мікрометрах. Для цього навчального посібника вам не потрібно нічого змінювати; область вже налаштовано таким чином, щоб у ній комфортно розмістилося кілька довжин хвиль зеленого світла.
3. Перевірка оптичних налаштувань і сітки.
Далі відкрийте вкладку «Опції» у верхній частині вікна.
Натисніть «Оптична сітка», щоб відкрити редактор сіток.
Редактор сітки відображає кількість точок сітки, які використовуються в кожному просторовому напрямку. Ці значення визначають просторову роздільну здатність обчислення методом FDTD. Діапазон довжин хвиль встановлено в межах від 531 нм до 532 нм, що відповідає зеленому світлу. У цьому прикладі параметри товщини, які відображаються в редакторі сітки, автоматично масштабуються відповідно до розміру моделі, і їх можна ігнорувати. Важливо, щоб просторова сітка була достатньо дрібною для точного відтворення електромагнітної довжини хвилі.
4. Запуск FDTD-розв’язувача з використанням обчислень, прискорених за допомогою графічного процесора (GPU).
Запустіть моделювання, натиснувши кнопку «Запустити моделювання» або натиснувши клавішу F9. На вкладці «Термінал» відображатиметься інформація про розв’язувач.
snapshots/, який містить дані поля, отримані в часовій послідовності.У виводі термінала зверніть увагу на зелений текст, який повідомляє про пошук пристроїв OpenCL. На цьому етапі програма сканує вашу систему на наявність сумісних графічних процесорів. У системах із підтримуваною відеокартою, обчислювальний модуль вибере графічний процесор і виконає обчислення саме на ньому. У наведеному прикладі обчислення виконуються на центральному процесорі, який емулює пристрій OpenCL, але на сучасній робочій станції та сама симуляція автоматично використовуватиме графічний процесор для прискорення обчислень.
5. Перевірка результатів і знімків, зроблених під час роботи.
Після завершення перейдіть на вкладку «Вихідні дані». Там буде відображено список створених файлів.
Двічі клацніть на папку зі знімками, щоб відкрити переглядач знімків. У випадаючому списку внизу вікна виберіть параметр «щільність потужності». Кольорове поле відображає миттєву щільність електромагнітної енергії. Використовуйте горизонтальний повзунок, щоб переміщуватися вперед і назад у часі, а просторові повзунки – для перегляду різних поперечних перерізів області. На деяких комп’ютерах, особливо під час обробки великих обчислювальних сіток, переглядачу може знадобитися певний час, щоб відреагувати, оскільки він завантажує кожен набір даних.
У міру вашого «подорожування» крізь час, ви спостерігатимете, як хвильовий фронт поширюється в межах заданої області. У відкритому просторі, без меж і структур, поширення відбувається рівномірно та симетрично, і обмежується лише поглинаючими граничними умовами на краях обчислювальної області.
6. Перегляд показників потужності детектора.
Фіолетова сітка, видима в основному вікні, відображає площину детектора, розміщену всередині області моделювання. Двічі клацніть на детекторі 0 на вкладці «Результати», щоб відкрити графік його записаних показників потужності.
Отриманий графік відображає електромагнітну потужність, яка проходить через задану площину, як функцію часу. Спочатку детектор фіксує нульовий сигнал. Коли хвильовий фронт досягає площини, виміряна потужність зростає, а потім стабілізується відповідно до тимчасового профілю джерела. Завдяки цій простій конфігурації легко встановити зв’язок між візуальним поширенням хвилі на зображенні та кількісним вимірюванням потужності.
Ви щойно завершили свою першу FDTD-симуляцію в OghmaNano. Хоча система не містила жодних матеріалів чи пристроїв, вона продемонструвала повний числовий процес: визначення моделі, створення сітки, вибір пристрою GPU, обчислення в часі, візуалізація поля та отримання даних з детектора. У наступних навчальних матеріалах ці самі інструменти будуть застосовані до структурованих фотонних та оптоелектронних систем.
7. Прискорення моделювання шляхом переходу до двовимірного режиму (XZ).
Часто для розуміння структури та принципів роботи пристроїв не потрібні повноцінні тривимірні моделювання, особливо коли фізичні властивості практично не змінюються в одному напрямку. У таких випадках можна значно прискорити обчислення, зводячи задачу до двох вимірів. Наприклад, у випадку моделювання вільного простору, перехід від тривимірного середовища до двовимірного (в площині XZ) усуває весь вимір Y з обчислювальної сітки. В результаті отримуємо меншу кількість вузлів сітки, менший обсяг даних поля та значно скорочуємо час обчислень — зазвичай настільки, що повторні обчислення стають практично інтерактивними.
Щоб це зробити, поверніться до вкладки «Оптика», відкрийте «Оптичну сітку» та виберіть конфігурацію двовимірної сітки, показану на ??. Основна зміна полягає в тому, що вісь Y приховується, щоб симуляція перетворилася на обчислення в площині XZ.
Оскільки розмірність сітки тепер зменшено до двох, запустіть моделювання ще раз. Ви одразу помітите, що обчислення завершуються майже миттєво порівняно з тривимірним варіантом. Знову відкрийте каталог snapshots/ і переглядайте дані в часі за допомогою переглядача знімків (??). Оскільки набір даних значно менший, переглядач не тільки швидше завантажується, але й швидше реагує, коли ви переміщуєте повзунок часу або змінюєте параметри просторового перерізу.
Важливо враховувати, що сприймана плавність анімації може змінюватися. У двовимірній версії симуляція відбувається дуже швидко, і зазвичай кількість кадрів, що генеруються, менша, тому під час перегляду анімації по кадрах її розвиток може здаватися дещо нерівномірним — просто тому, що між одним часовим проміжком і наступним є менше збережених кадрів. Якщо ви хочете детальніше спостерігати за поширенням хвилі, збільште обсяг даних, що зберігаються на диску.
Щоб зробити це, знову перейдіть на вкладку «Оптика», натисніть кнопку «Моделювання FDTD», щоб відкрити вікно налаштувань FDTD, і змініть параметр «Деталізація виводу на диск» зі значення «Записувати все на диск кожні 8 кроків» на «Записувати все на диск (??)». Це дозволить зберігати знімок на кожному окремому кроці. Коли ви знову відкриєте переглядач знімків, ви зможете дуже точно відстежувати поширення хвилі в часі, а також матимете значно кращу часову роздільну здатність під час відтворення та перегляду.