======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 : разбиение алгоритма обновления сеток на основной цикл, поддающийся векторизации, и специализированные поправки к нему; оптимизация использования памяти с помощью упаковки используемых в разностных уравнениях коэффициентов; увеличение параллельной эффективности путем балансировки доменов.
*/