нках хвиля може пройти крізь шар PML відбитися від кордону розрахунків і повернутися назад у розрахункову область. Щоб цього уникнути рекомендується задавати товщину шар PML близько 10% від розміру розрахункової області. Також слід пам'ятати, що PML знаходиться всередині розрахункової області.
(set! pml-layers (list (make pml (thickness 1.0)))) - товщина PML = 1.
5) (set! resolution 20) - Наступна команда задає кількість пікселів на одиницю довжини. Отримуємо, що розмір розрахункової області дорівнює 200х160 pixels.
) Програма готова, тепер її потрібно запустити:
(run-until 200 (at-beginning output-epsilon) (to-appended "ez" (at-every 0.6 output-efield-z)))
В· (run-until 200 - запуск розрахунків (на 200 тимчасових інтервалів).
В· (at-beginning output-epsilon) (to-appended "ez" (at-every 0.6 output-efield-z))) - За допомогою цих команд вказується які компоненти поля нам потрібно вивести. У тілі програми можна проводити будь-які обчислення, а результат виводити за допомогою цих команд. У нашому випадку виводиться дві компоненти поле - це ? і Ez.
(at-every 0.6 - значення компоненти Ez виводиться кожні 0.6 тимчасових інтервалу. Це згодом стане в нагоді для створення GIF анімації.
(to-appended "ez" - причому вихідний файл буде мати приставку ez в назві.
.2 Запуск програми на виконання та подання даних
1) meep first2 - запуск програми
Після запуску програми будуть створені два файли: first2-eps-000000.00.h5 і first2-ez.h5. Файл формується з імені вихідного ctl файлу і величини, яку необхідно вивести. p align="justify"> Дивитись, отриманий результат можна за допомогою будь-якої програми, що підтримує формат HDF5. Для цих цілей скористаємося командами для роботи з пакетом h5utils. p align="justify"> 2) Існує кілька способів подання даних. Один з них:
h5topng-S3 first2-eps-000000.00.h5 - з наявного *. h5 файлу створюється чорно білий PNG з зображенням розрахункової області
В
Рис 4.2.1. Розрахункова область first2.ctl
3) Це знімок не показово і не дає уявлення про будь-яких якісних характеристиках фотонних кристалів. Більш цікавий результат у вигляді анімованого зображення.
а) Перш ніж створювати анімацію необхідно дізнатися скільки зображень ми можемо побудувати:
$ h5ls first2-ez.h5
ez Dataset {200,...