Моделирование фотонных кристаллов в программной среде MEEP. Знакомство со средой программирования

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

ра, в которую будет заноситься значение энергий волны для каждой из частот.

(add-flux fcen df nfreq - задает в каком диапазоне частот нужно производить расчеты. Nfreq - описывает количество частот из этого диапазона.

(make flux-region - задает область пространства в которой нужно произвести расчет.

5)Затем задается в течении какого промежутка времени нужно производить расчеты. Существует два способа. Первый, использованный в программе:

(run-sources+

(stop-when-fields-decayed 50 Ez

(if no-bend?

(vector3 (- dmin 2) l_place)

(vector3 (+ dmax 2) l_place))

1e-3))

(stop-when-fields-decayed - расчет производится до тех пор, пока величина поля не станет меньше определенной величины. В общем виде:

(stop-when-fields-decayed dT component pt decay-by

50 - dT - через какие промежутки времени нужно проводить измерение величины…

Ez - component

(if no-bend?

(vector3 (- dmin 2) l_place)

(vector3 (+ dmax 2) l_place)) - pt -… чтобы ее значение в одной из расчетных точек(при наличии или отсутствии решетки) …

1e-3)) - decay-by - … было бы меньше заданной величины(в нашем случае Ez<0.001)

Во втором способе, можно указать сколько раз нужно произвести расчеты поля после выключения источника излучения. Пример:

(run-sources+ 500) - расчет прекратится через 500 временных интервалов после выключения источника.

6)Все расчеты произведены и можно выполнить вывод результатов.

(display-fluxes trans)

Результат::, 0.35, 5.58516844105163e-5:, 0.351010101010101, 8.45812001141722e-5:, 0.352020202020202, 1.27883318656805e-4:, 0.353030303030303, 1.90004998820637e-4:, 0.354040404040404, 2.75747528407135e-4:, 0.355050505050505, 3.92351676416799e-4:, 0.356060606060606, 5.52562540438976e-4:, 0.357070707070707, 7.76885293373528e-4:, 0.358080808080808, 0.001092440293566721:, 0.359090909090909, 0.00152809295946778

В первой колонке задается частота излучения, во второй - количество прошедшей энергии.

Рассчитывать можно не только прошедшее сквозь структуру количество энергии. Также, например, можно рассчитать величину отраженной от структуры энергии или величину потерь излучения. Все зависит от поставленных целей и требует некоторых дополнительных математических операций

7)Произведем анализ полученных результатов:

а) Запуск программы: Запуск программы производится два раза. В первый раз без кристаллической структуры:

meep no-bend?=true flux1.ctl | tee bend0.out

Во второй раз - со структурой:

meep flux1.ctl | tee bend.out

В обоих случаях результаты перенаправляются в файл. Bend0.out - хранит значение энергий падающего излучения; bend.out - хранит значения энергий прошедшего излучения.

Программа запускается два раза, чтобы не произошло наложение волн, оставшихся после первого запуска, на волны при втором запуске поля.

б) Далее переведем результаты программы в формат dat, который воспринимается такими приложениями как Excel и Matlab:

bend0.datflux1:bend.out>bend.dat">grep flux1: bend0.out >bend0.datflux1: bend.out > bend.dat

в) Представление результатов:

Для представления результатов я пользовался средствами Excell:

 

 

Частота

Величина прошедшего излучения бралась как отношение количества падающего излучения(2 колонка в bend0.dat) к количеству прошедшего сквозь структуру излучения(вторая колонка в bend.dat).

Как видно из диаграммы количество прошедшего через дефект излучения при частоте 0,36 очень мало (~30%) , когда при остальных частотах величина прошедшего излучения выше 60%.

 

.5 Рассчет двумерных структур размером 3х3

 

Рассмотрим простейшую двумерную структуры, состоящие из стержней отстоящих друг от друга на равных расстояниях и формирующих сетку 3х3. Сформируем первую структуры из стержней бесконечной длинны и имеющих квадратную форму в поперечном сечении.

Листинг test2_2.ctl

;Создадим 2-х мерную область размером 10х8)

(set! geometry-lattice (make lattice (size 10 8 no-size)))

;Расположим в этой области стержни бесконечной длины и имеющие размер в ;плоскости ;1х1. Зададим ?1=12.

(set! geometry (list

(make block (center 0 0) (size 1 1 infinity)

(material (make dielectric (epsilon 12))))

(make block (center -1.5 0) (size 1 1 infinity)

(material (make dielectric (epsilon 12))))

(make block (center 1.5 0) (size 1 1 infinity)

(material (make dielectric (epsilon 12))))

(make block (center 0 -1.5) (size 1 1 infinity)

(material (make dielectric (epsilon 12))))

(make block (center -1.5 -1.5) (size 1 1 infinity)

(material (make dielectric (epsilon 12))))

(make block (center 1.5 -1.5) (size 1 1 infinity)

(material (make dielectric (epsilon 12))))

(make block (center 0 1.5) (size 1 1 infinity)

(material (make dielectric (epsilon 12))))

(make block (center -1.5 1.5) (size 1 1 infinity)

(material (make dielectric (epsilon 12))))

(make block (center 1.5 1.5) (size 1 1 infinity)

(material (make dielectric (epsilon 12))))))

;Зададим характеристики источника излучения: синусоида с ?=1,5; центр источника ;расположен в ;координатах (-4 0); размер источника по осям ХY (0 2,5); .

(set! sources (list

(make source

(src (make continuous-src (wavelength 1.5) (width 20)))

(component Ez)

(center -4 0)(size 0 2.5))))

;Зададим толщину PML слоя( толщина =1)

(set! pml-layers (list (make pml (thickness 1.0))))

;Зададим число пикселей на единицу расстояний

(set! resolution 20)

;Запускаем выполнение программы на 200 временных интервалов. Измерения будем ;проводить каждые 0,6 от временного интервала: 200/0.6=333 - количество записанных ;временных интервалов.

(run-until 200

(at-beginning output-epsilon)

(to-appended "ez" (at-every 0.6 output-efield-z)))

 

Рис 4.5.1 Распределение волны в среде с показателями: a=1.5; D=1; ?1=1; ?2=12; ?=1.5;

 

Как видно из приведенных рисунков, поток волны, проходящий через кристалл начинает сильно дифрагировать на ячейках сетки. При этом длинна волны, проходящей через кристалл, резко уменьшается. В то время как вне ячеек таких изменений не происходит. Легко заметить, что при прохождении волны уже через 3-й ряд решетки, она значительно теряет в интенсивности. Можно предположить, что при больших размерах ячейки волны практически не будут попадать внутрь кристалла. Можно предположить, что мы задали у?/p>