Meep (Meep)

Перейти к навигации Перейти к поиску

Meep — свободный пакет программного обеспечения с открытым исходным кодом, предназначенный для симуляции электромагнитных явлений методом конечных разностей во временной области (FDTD). Meep имеет широкий функционал, позволяющий учитывать все особенности электромагнитных явлений и симулируемой среды данных явлений, а также оптимизировать симуляцию этих явлений.

Проект распространяется по лицензии GNU GPL и поддерживает работу с языками программирования C++, Python и Scheme. Исходный код пакета размещён в репозитории GitHub. Также имеются официальный скомпилированный пакет ([1]), распространяемый в репозиториях системы Ubuntu и многих других дистрибутивов на основе ядра GNU/Linux.

Функциональные возможности

[править | править код]

Meep создаёт симуляцию электромагнитных явлений во времени на основе уравнений Максвелла с граничными условиями, применяя метод FDTD. Такая симуляция позволяет отслеживать развитие системы во времени и экспериментально исследовать электромагнитные характеристики различных материалов. Симуляция может осуществляться в одномерном, двухмерном или трёхмерном пространстве, а также в пространстве цилиндрических координат. Для уменьшения требуемой вычислительной мощности, виртуальное пространство можно сделать симметричным по одной или нескольким осям координат. Все измерения приводятся в безразмерных величинах при условно принятой скорости света , что позволяет абстрагироваться от физических постоянных и абсолютных масштабов симулируемой системы (включая временные масштабы).

Пространство симуляции Meep, в силу применяемого метода моделирования, является дискретным, однако благодаря концепции всеобъемлющей интерполяции и субпискельному сглаживанию система создаёт иллюзию непрерывного пространства и расчётов. Свойства симулируемого пространства задаются материалами (англ. Material или Medium), которые в свою очередь задаются с помощью функций (констант) электрической и магнитной проницаемости и восприимчивости от точки пространства. В свойствах материалов возможно задать в том числе частотные зависимости и нелинейные свойства системы, что улучшает точность проводимой симуляции явлений. Материалы можно также объединять либо с помощью переходов (англ. Transitions), либо с помощью так называемой «материальной сетки» (англ. Material Grid), которая позволяет смешивать свойства двух материалов в разных пропорциях в разных точках пространства. Области покрытия маериалов могут задавать различными геометрическими фигурами, определяемыми программным классом GeometricObject. Границы пространства симуляции можно задать с помощью идеально согласованных слоёв[англ.], которые поглощают или отражают проникающее в них излучение, тем самым ограничивая область его распространения.

Помимо возможности задать собственные материалы среды, Meep обладает также небольшой библиотекой заранее определённых материалов[1], состоящей в основном из базовых материалов (воздух, вакуум, идеальные материалы с бесконечной проницаемостью и т.д.), 12 элементарных металлов (серебро, золото, медь, алюминий, германий и т.д.), некоторых солей алюминия, галлия и кремния, оксидов бария и кальция, промышленных полимеров и других материалов, распространённых в электромагнитных исследованиях. Используемые сведения о материалах взяты из различных научных публикаций в области оптики[2][3][4] с учётом применяемых в программе размерностей.

Примечания

[править | править код]
  1. Materials - MEEP Documentation. Дата обращения: 13 декабря 2021. Архивировано 13 декабря 2021 года.
  2. Green, M.A. and Keevers, M.J. (1995), Optical properties of intrinsic silicon at 300 K. Prog. Photovolt: Res. Appl., 3: 189-192.
  3. Alexei Deinega, Ilya Valuev, Boris Potapkin, and Yurii Lozovik, "Minimizing light reflection from dielectric textured surfaces," J. Opt. Soc. Am. A 28, 770-777 (2011)
  4. Aleksandar D. Rakić, Aleksandra B. Djurišić, Jovan M. Elazar, and Marian L. Majewski, "Optical properties of metallic films for vertical-cavity optoelectronic devices," Appl. Opt. 37, 5271-5283 (1998)