PyMieSim est une bibliothèque Python conçue pour fournir un cadre robuste et flexible pour effectuer des simulations de diffusion Mie. Le logiciel est facile à installer et à utiliser, ce qui le rend accessible aussi bien aux nouveaux utilisateurs qu'aux chercheurs expérimentés. PyMieSim permet aux utilisateurs d'explorer les propriétés de diffusion des particules dans diverses configurations et est conçu pour étudier des événements de diffusion uniques, ainsi que pour mener des expériences paramétriques à grande échelle.
À la base, PyMieSim comprend trois solveurs optimisés pour différents types de diffuseurs :
Particules sphériques
Particules cylindriques infinies
Particules sphériques noyau-coquille
Le logiciel permet également à l'utilisateur de personnaliser les attributs de la source lumineuse et du détecteur, en fonction des besoins spécifiques de simulation. Le package est modulaire et fournit une interface intuitive permettant aux utilisateurs de modéliser des scénarios de diffusion complexes avec un minimum d'effort.
PyMieSim est organisé en deux sous-modules principaux :
single : axé sur l'analyse d'événements de diffusion individuels, tels que : - Distributions en champ lointain - Fonctions de phase de diffusion - Paramètres de Stokes
expérience : conçue pour explorer comment les paramètres de diffusion, tels que Qsca, Qext, g et le couplage (puissance), se comportent sur de grands ensembles de données, en intégrant des variations dans les sources, les diffuseurs et les détecteurs.
Les deux sous-modules fonctionnent ensemble de manière transparente, ce qui rend PyMieSim adaptable à une large gamme de simulations de diffusion.
Pour utiliser PyMieSim en Python, installez simplement le package et commencez à l'incorporer dans vos scripts.
PyMieSim prend en charge les architectures Windows, Linux, macOS (y compris les puces Apple M1/M2) et ARM. Pour installer le package, utilisez pip :
pip installer PyMieSim
Pour plus de détails, visitez la documentation pour un guide complet sur la façon d'utiliser le package.
Voici un exemple d'utilisation de PyMieSim pour une simple simulation de diffusion Mie. Cet exemple montre comment configurer une source de lumière, un diffuseur et un détecteur, et récupérer les données de diffusion :
importer numpy en tant que npfrom PyMieSim.experiment.scatterer importer Spherefrom PyMieSim.experiment.source importer Gaussianfrom PyMieSim.experiment importer Setupfrom PyMieSim.units importer nanomètre, degré, watt, AU, RIUsource = Gaussian (longueur d'onde = np.linspace (400, 1000, 500 ) * nanomètre, polarisation = 0 * degré, puissance optique = 1e-3 * watt, NA = 0,2 * AU) diffuseur = Sphère (diamètre = [200] * nanomètre, propriété = [4] * RIU, medium_property = 1 * RIU, source=source)experiment = Setup(scatterer=scatterer, source=source)dataframe = experience.get('Qsca')dataframe.plot_data(x="source:wavelength")
Il produit le chiffre suivant qui est équivalent à celui trouvé sur wikipedia.
Ceci n'est qu'un exemple de PyMieSim en action. Vous pouvez trouver plus d'exemples dans la section exemples de la documentation.
Voici quelques exemples supplémentaires illustrant les capacités de PyMieSim :
Si vous préférez ou devez créer le projet manuellement (par exemple, pour les appareils Apple Silicon), assurez-vous d'avoir installé un compilateur C++ (tel que gcc) et Fortran, ainsi que Python 3.7+.
clone git https://github.com/MartinPdeS/PyMieSim.gitcd PyMieSim init du sous-module git && mise à jour du sous-module git mkdir buildcd construire cmake ../ -G"Makefiles Unix" sudo make installcd .. python -m pip install .
Pour Windows, utilisez les Makefiles MinGW au lieu des Makefiles Unix lors de l'appel de CMake.
Vous pouvez tester la version locale de PyMieSim en exécutant les commandes suivantes :
clone git https://github.com/MartinPdeS/PyMieSim.gitcd PyMieSim pip installer PyMieSim[test] test py
Cela exécutera la suite de tests unitaires et fournira les détails de la couverture.
En 2024, exécuter du code sur votre machine locale est facultatif ! Vous pouvez tirer parti de la puissance de Google Colab pour exécuter PyMieSim à distance. Utilisez le bloc-notes Colab fourni pour une expérience interactive.
Si PyMieSim contribue à vos recherches, nous vous demandons de bien vouloir citer l'article suivant :
@article{PoinsinetdeSivry-Houle:23,
auteur = {Martin Poinsinet de Sivry-Houle et Nicolas Godbout et Caroline Boudoux},
journal = {Opt. Continuum},
title = {PyMieSim : une bibliothèque open source pour des simulations de diffusion Mie en champ lointain rapides et flexibles},
volume = {2},
nombre = {3},
pages = {520--534},
année = {2023},
est ce que je = {10.1364/OPTCON.473102},
}
Vous pouvez accéder à l'article complet ici
Depuis la version 1.7.0, PyMieSim propose une interface graphique expérimentale pour les utilisateurs qui préfèrent une approche graphique des simulations. Bien qu'elle soit encore en cours de développement, l'interface graphique peut être installée et accessible comme suit :
pip installer PyMieSim python -m PyMieSim
L'interface graphique n'est pas encore aussi robuste que l'API Python principale, mais elle fournit une interface simplifiée pour générer des simulations.
PyMieSim est activement développé et maintenu par Martin Poinsinet de Sivry-Houle. Si vous souhaitez contribuer ou si vous avez des questions, n'hésitez pas à nous contacter.
Courriel : [email protected]