PyMieSim ist eine Python-Bibliothek, die ein robustes und flexibles Framework für die Durchführung von Mie-Streuungssimulationen bieten soll. Die Software ist einfach zu installieren und zu bedienen und somit sowohl für neue Benutzer als auch für erfahrene Forscher zugänglich. PyMieSim ermöglicht Benutzern die Untersuchung der Streueigenschaften von Partikeln in verschiedenen Konfigurationen und ist auf die Untersuchung einzelner Streuereignisse sowie die Durchführung groß angelegter parametrischer Experimente zugeschnitten.
Im Kern umfasst PyMieSim drei Löser, die für verschiedene Arten von Streuern optimiert sind:
Kugelförmige Partikel
Unendliche zylindrische Teilchen
Kugelförmige Kern-Schale-Partikel
Die Software ermöglicht es dem Benutzer außerdem, die Lichtquellen- und Detektorattribute entsprechend den spezifischen Simulationsanforderungen anzupassen. Das Paket ist modular aufgebaut und bietet Benutzern eine intuitive Benutzeroberfläche, mit der sie komplexe Streuszenarien mit minimalem Aufwand modellieren können.
PyMieSim ist in zwei primäre Untermodule unterteilt:
Single : Konzentriert sich auf die Analyse einzelner Streuereignisse, wie zum Beispiel: - Fernfeldverteilungen - Streuphasenfunktionen - Stokes-Parameter
Experiment : Entwickelt für die Untersuchung, wie sich Streuparameter wie Qsca, Qext, g und Kopplung (Leistung) über große Datensätze hinweg verhalten, unter Einbeziehung von Variationen bei Quellen, Streuern und Detektoren.
Beide Submodule arbeiten nahtlos zusammen, wodurch PyMieSim für eine Vielzahl von Streusimulationen anpassbar ist.
Um PyMieSim in Python zu verwenden, installieren Sie einfach das Paket und beginnen Sie mit der Einbindung in Ihre Skripte.
PyMieSim unterstützt Windows-, Linux-, macOS- (einschließlich Apple M1/M2-Chips) und ARM-Architekturen. Um das Paket zu installieren, verwenden Sie pip:
pip installiert PyMieSim
Weitere Einzelheiten finden Sie in der Dokumentation. Dort finden Sie eine umfassende Anleitung zur Verwendung des Pakets.
Hier ist ein Beispiel für die Verwendung von PyMieSim für eine einfache Mie-Streuungssimulation. Dieses Beispiel zeigt, wie eine Lichtquelle, ein Streuer und ein Detektor konfiguriert und die Streuungsdaten abgerufen werden:
numpy als npfrom PyMieSim.experiment.scatterer importieren Spherefrom PyMieSim.experiment.source importieren Gaussianfrom PyMieSim.experiment importieren Setupfrom PyMieSim.units importieren Nanometer, Grad, Watt, AU, RIUsource = Gaussian(wavelength=np.linspace(400, 1000, 500 ) * Nanometer,Polarisation=0 * Grad,optische_Leistung=1e-3 * Watt,NA=0,2 * AU)Streuer = Kugel(Durchmesser=[200] * Nanometer,Eigenschaft=[4] * RIU,Medium_Eigenschaft=1 * RIU, source=source)experiment = Setup(scatterer=scatterer, source=source)dataframe = experiment.get('Qsca')dataframe.plot_data(x="source:wavelength")
Es ergibt sich die folgende Abbildung, die der auf Wikipedia gefundenen entspricht.
Dies ist nur ein Beispiel für PyMieSim in Aktion. Weitere Beispiele finden Sie im Abschnitt „Beispiele“ der Dokumentation.
Hier sind einige weitere Beispiele, die die Fähigkeiten von PyMieSim demonstrieren:
Wenn Sie das Projekt lieber manuell erstellen möchten oder müssen (z. B. für Apple-Silicon-Geräte), stellen Sie sicher, dass Sie einen C++-Compiler (z. B. gcc) und Fortran sowie Python 3.7+ installiert haben.
Git-Klon https://github.com/MartinPdeS/PyMieSim.gitcd PyMieSim Git-Submodul-Init && Git-Submodul-Update mkdir buildcd build cmake ../ -G"Unix Makefiles"sudo make installcd .. python -m pip install .
Verwenden Sie unter Windows MinGW-Makefiles anstelle von Unix-Makefiles, wenn Sie CMake aufrufen.
Sie können die lokale Version von PyMieSim testen, indem Sie die folgenden Befehle ausführen:
Git-Klon https://github.com/MartinPdeS/PyMieSim.gitcd PyMieSim pip install PyMieSim[testing] pytest
Dadurch wird die Suite von Komponententests ausgeführt und Details zur Abdeckung bereitgestellt.
Im Jahr 2024 ist das Ausführen von Code auf Ihrem lokalen Computer optional! Sie können die Leistungsfähigkeit von Google Colab nutzen, um PyMieSim remote auszuführen. Nutzen Sie das mitgelieferte Colab-Notizbuch für ein interaktives Erlebnis.
Wenn PyMieSim zu Ihrer Forschung beiträgt, bitten wir Sie, das folgende Papier zu zitieren:
@article{PoinsinetdeSivry-Houle:23,
Autor = {Martin Poinsinet de Sivry-Houle und Nicolas Godbout und Caroline Boudoux},
Journal = {Opt. Kontinuum},
title = {PyMieSim: eine Open-Source-Bibliothek für schnelle und flexible Fernfeld-Mie-Streuungssimulationen},
Volumen = {2},
Zahl = {3},
Seiten = {520--534},
Jahr = {2023},
doi = {10.1364/OPTCON.473102},
}
Den vollständigen Artikel finden Sie hier
Seit Version 1.7.0 bietet PyMieSim eine experimentelle GUI für Benutzer, die einen grafischen Ansatz für Simulationen bevorzugen. Während sich die GUI noch in der Entwicklung befindet, kann sie wie folgt installiert und aufgerufen werden:
pip installiert PyMieSim python -m PyMieSim
Die GUI ist noch nicht so robust wie die Kern-Python-API, bietet aber eine vereinfachte Schnittstelle zum Generieren von Simulationen.
PyMieSim wird aktiv von Martin Poinsinet de Sivry-Houle entwickelt und gepflegt. Wenn Sie daran interessiert sind, einen Beitrag zu leisten oder Fragen haben, können Sie sich gerne an uns wenden.
E-Mail: [email protected]