PyMieSim — это библиотека Python, разработанная для обеспечения надежной и гибкой среды для моделирования рассеяния Ми. Программное обеспечение легко установить и использовать, что делает его доступным как для новых пользователей, так и для опытных исследователей. PyMieSim позволяет пользователям исследовать свойства рассеяния частиц в различных конфигурациях и предназначен для исследования событий однократного рассеяния, а также для проведения крупномасштабных параметрических экспериментов.
По своей сути PyMieSim включает в себя три решателя, оптимизированных для разных типов рассеивателей:
Сферические частицы
Бесконечные цилиндрические частицы
Сферические частицы ядро-оболочка
Программное обеспечение также позволяет пользователю настраивать атрибуты источника света и детектора в зависимости от конкретных потребностей моделирования. Пакет является модульным и предоставляет пользователям интуитивно понятный интерфейс для моделирования сложных сценариев рассеяния с минимальными усилиями.
PyMieSim состоит из двух основных подмодулей:
одиночный : сосредоточен на анализе отдельных событий рассеяния, таких как: - Распределения в дальней зоне - Фазовые функции рассеяния - Параметры Стокса
эксперимент : предназначен для изучения того, как параметры рассеяния, такие как Qsca, Qext, g и связь (мощность), ведут себя в больших наборах данных, включая изменения в источниках, рассеивателях и детекторах.
Оба субмодуля работают без проблем вместе, что делает PyMieSim адаптируемым для широкого спектра моделирования рассеяния.
Чтобы использовать PyMieSim в Python, просто установите пакет и начните включать его в свои сценарии.
PyMieSim поддерживает архитектуры Windows, Linux, macOS (включая чипы Apple M1/M2) и ARM. Чтобы установить пакет, используйте pip:
pip установить PyMieSim
Для получения более подробной информации посетите документацию, где вы найдете подробное руководство по использованию пакета.
Вот пример того, как использовать PyMieSim для простого моделирования рассеяния Ми. В этом примере показано, как настроить источник света, рассеиватель и детектор, а также получить данные рассеяния:
import numpy as npfrom PyMieSim.experiment.scatterer import Spherefrom PyMieSim.experiment.source import Gaussianfrom PyMieSim.experiment import Setupfrom PyMieSim.units import нанометр, градус, ватт, AU, RIUsource = Gaussian(wavelength=np.linspace(400, 1000, 500) ) * нанометр,поляризация=0 * градус,оптическая_мощность=1e-3 * ватт,NA=0,2 * а.е.)рассеиватель = Сфера(диаметр=[200] * нанометр,свойство=[4] * RIU,medium_property=1 * RIU,source= источник) эксперимент = Настройка (разбрасыватель = рассеиватель, источник = источник) dataframe = эксперимент.get('Qsca')dataframe.plot_data(x="source:wavelength")
В результате получается следующая цифра, эквивалентная той, что найдена в Википедии.
Это всего лишь один пример PyMieSim в действии. Дополнительные примеры можно найти в разделе примеров документации.
Вот еще несколько примеров, демонстрирующих возможности PyMieSim:
Если вы предпочитаете или вам необходимо собрать проект вручную (например, для кремниевых устройств Apple), убедитесь, что у вас установлен компилятор C++ (например, gcc) и Fortran, а также Python 3.7+.
git клон https://github.com/MartinPdeS/PyMieSim.gitcd PyMieSim git submodule init && обновление git submodule сборка mkdir buildcd cmake ../ -G «Unix Makefiles» sudo make installcd .. python -m pip установить.
В Windows используйте файлы Makefile MinGW вместо файлов Makefile Unix при вызове CMake.
Вы можете протестировать локальную версию PyMieSim, выполнив следующие команды:
git клон https://github.com/MartinPdeS/PyMieSim.gitcd PyMieSim pip установить PyMieSim [тестирование] pytest
Это запустит набор модульных тестов и предоставит подробную информацию о покрытии.
В 2024 году запуск кода на локальном компьютере не является обязательным! Вы можете использовать возможности Google Colab для удаленного запуска PyMieSim. Используйте предоставленный блокнот Colab для интерактивного взаимодействия.
Если PyMieSim внесет вклад в ваше исследование, мы просим вас процитировать следующую статью:
@article{PoinsinetdeSivry-Houle:23,
автор = {Мартен Пуансине де Сиври-Уль и Николя Годбу и Кэролайн Буду},
журнал = {Опт. Континуум},
title = {PyMieSim: библиотека с открытым исходным кодом для быстрого и гибкого моделирования рассеяния Ми в дальней зоне},
объем = {2},
число = {3},
страницы = {520--534},
год = {2023},
дои = {10.1364/OPTCON.473102},
}
Вы можете получить доступ к полной статье здесь
Начиная с версии 1.7.0, PyMieSim предлагает экспериментальный графический интерфейс для пользователей, которые предпочитают графический подход к моделированию. Пока еще находится в разработке, графический интерфейс можно установить и получить к нему доступ следующим образом:
pip установить PyMieSim python -m Пимисим
Графический интерфейс еще не так надежен, как основной API Python, но он предоставляет упрощенный интерфейс для создания симуляций.
PyMieSim активно разрабатывается и поддерживается Мартином Пуансине де Сиври-Хуль. Если вы заинтересованы в участии или у вас есть вопросы, не стесняйтесь обращаться к нам.
Электронная почта: [email protected]