======Electromagnetic Template Library (EMTL)====== это бесплатная программа для численного решения уравнений Максвелла с помощью метода [[fdtd|Finite-Difference Time-Domain]] (FDTD). EMTL основана на двух принципах: **читаемость** и **расширяемость** кода. Это позволяет любым разработчикам легко разобраться в коде и добавлять в него новые алгоритмы FDTD, включая различные типы сеток.
**EMTL имеет следующие особенности**: \\ *Компиляция под UNIX и Windows *Параллельные расчеты (MPI): линейная масштабируемость вплоть до тысяч ядер *Задание анизотропных и дисперсных сред *Совместное оптическое и [[/ru/microvolt|электронное моделирование]] *Метод подсеточного сглаживания (subpixel smoothing) *Поглощающие граничные условия (UPML and CPML) *Излучающие источники *Метод генерации плоской волны Total-Field / Scattered-Field *Преобразование ближнего поля в дальнее (Near-to-Far-Field Transformation) *Фурье преобразование результатов по частоте и волновому вектору *Решение уравнений Максвелла-Блоха \\ **Новые алгоритмы** * Метод подсеточного сглаживания для металлических сред, позволяющий увеличить точность отбражения тел произвольной формы на сетку. [[http://www.opticsinfobase.org/abstract.cfm?URI=ol-32-23-3429|http]]{{:deinega_-_subpixel_smoothing_for_conductive_and_dispersive_media.pdf|PDF}} * Итерационный метод для расчета наклонного падения плоской волны на периодическую структуру. [[http://www.opticsinfobase.org/abstract.cfm?uri=ol-33-13-1491|http]]{{:valuev_-_iterative_technique_for_analysis_of_periodic_structures_at_oblique_incidence_in_the_finite-difference_time-domain_method.pdf|PDF}} * Hybrid transfer matrix FDTD method. Этот метод используется для расчета спектра прохождения и отражения от конечных фотонно-кристаллических пластинок, и зонной структуры бесконечных фотонных кристаллов. [[http://pre.aps.org/abstract/PRE/v88/i5/e053305|http]]{{:deinega_-_transfer-matrix_approach_for_finite-difference_time-domain_simulation_of_periodic_structures.pdf|PDF}} * Additional back absorbing layers technique для уменьшения численного отражения от граничных условий PML. [[http://www.sciencedirect.com/science/article/pii/S0010465510001839|http]]{{:deinega_-_long-time_behavior_of_pml_absorbing_boundaries_for_layered_periodic_structures.pdf|PDF}} * Решение уревнений Максвелла-Лиувилля в FDTD [[http://pra.aps.org/abstract/PRA/v89/i2/e022501|http]]{{:deinega_-_self-interaction-free_approaches_for_self-consistent_solution_of_the_maxwell-liouville_equations.pdf|PDF}} {{:logo1.png?200}}
**Возможности** \\ *Расчет распределения электромагнитного поля в структуре; *Расчет спектров прохождения, отражения и поглощения в зависимости от длины волны и угла падающей волны; *Расчет эффективности рассеяния и углового распределения волны рассеянной на объектах произвольной формы; *Анализ чувствительности к влиянию дефектов на оптические свойства периодических структур (фотонных кристаллов);
{{:logo2.png?250}} **Приложения** \\ *[[pc|Фотонные кристаллы]]; *Волноводы и резонаторы; *Фильтры, [[ar|антиотражающие покрытия]]; *Дизайн различных электронных устройств; *Антенны, радары и т. д.
**Как начать пользоваться EMTL ?** \\ Для того, чтобы начать пользоваться EMTL, Вам достаточно скачать ее с нашего сайта в разделе [[download]]. Инструкция по установке находится в разделе [[installation]]. В разделе [[tutorial]] можно найти примеры использования EMTL. ~~DISCUSSION:off~~ /* EMTL можно представить как совокупность взаимодействующих друг с другом компонент. Базовые компоненты могут быть задействованы в качестве параметров шаблонов при построении компонент более высокого уровня. Такими базовыми компонентами являются контура, тела, сетки и т. д. Ключевым строительным блоком EMTL является вычислительная сетка. Сетка организует размещение данных в памяти и определяет способ интерполяции значений поля по сеточным узлам. В рамках этих требований могут быть реализованы сетки самого разного типа, включая неортогональные и неоднородные. Проведение численного расчета с использованием сетки и внутреннее устройство самой сетки рассматриваются в EMTL как две независимые задачи. Это позволяет реализовать многие процедуры EMTL в более общем виде, так что они могут быть выполнены с помощью произвольной сетки. Этот подход обуславливает естественную легкость добавления новых типов сеток. Отметим ряд оригинальных программных решений, примененных при написании EMTL : разбиение алгоритма обновления сеток на основной цикл, поддающийся векторизации, и специализированные поправки к нему; оптимизация использования памяти с помощью упаковки используемых в разностных уравнениях коэффициентов; увеличение параллельной эффективности путем балансировки доменов. */