PyMieSim es una biblioteca de Python diseñada para proporcionar un marco robusto y flexible para realizar simulaciones de dispersión Mie. El software es fácil de instalar y operar, lo que lo hace accesible tanto para nuevos usuarios como para investigadores experimentados. PyMieSim permite a los usuarios explorar las propiedades de dispersión de partículas bajo varias configuraciones y está diseñado para investigar eventos de dispersión únicos, así como para realizar experimentos paramétricos a gran escala.
En esencia, PyMieSim incluye tres solucionadores optimizados para diferentes tipos de scatterers:
Partículas esféricas
Partículas cilíndricas infinitas
Partículas esféricas núcleo-capa
El software también permite al usuario personalizar la fuente de luz y los atributos del detector, según las necesidades específicas de simulación. El paquete es modular y proporciona una interfaz intuitiva para que los usuarios modelen escenarios de dispersión complejos con el mínimo esfuerzo.
PyMieSim está organizado en dos submódulos principales:
single : Centrado en analizar eventos de dispersión individuales, tales como: - Distribuciones de campo lejano - Funciones de fase de dispersión - Parámetros de Stokes
Experimento : Diseñado para explorar cómo se comportan los parámetros de dispersión, como Qsca, Qext, g y acoplamiento (potencia), en grandes conjuntos de datos, incorporando variaciones en fuentes, dispersores y detectores.
Ambos submódulos funcionan juntos a la perfección, lo que hace que PyMieSim se adapte a una amplia gama de simulaciones de dispersión.
Para usar PyMieSim en Python, simplemente instale el paquete y comience a incorporarlo en sus scripts.
PyMieSim es compatible con Windows, Linux, macOS (incluidos los chips Apple M1/M2) y arquitecturas ARM. Para instalar el paquete, use pip:
pip instalar PyMieSim
Para obtener más detalles, visite la documentación para obtener una guía completa sobre cómo utilizar el paquete.
A continuación se muestra un ejemplo de cómo utilizar PyMieSim para una simulación sencilla de dispersión de Mie. Este ejemplo demuestra cómo configurar una fuente de luz, un dispersor y un detector, y recuperar los datos de dispersión:
importar numpy como np de PyMieSim.experiment.scatterer importar Esfera de PyMieSim.experiment.source importar Gaussiano de PyMieSim.experiment importar Configuración de PyMieSim.units importar nanómetro, grado, vatio, AU, RIU fuente = Gaussiano (longitud de onda = np.linspace (400, 1000, 500) ) * nanómetro, polarización = 0 * grado, potencia_óptica = 1e-3 * vatio, NA = 0,2 * AU) dispersor = Esfera (diámetro = [200] * nanómetro, propiedad = [4] * RIU, propiedad_medio = 1 * RIU, fuente=fuente)experimento = Configuración(dispersor=dispersor, fuente=fuente)marco de datos = experimento.get('Qsca')dataframe.plot_data(x="fuente:longitud de onda")
Produce la siguiente figura que es equivalente a la que se encuentra en Wikipedia.
Este es sólo un ejemplo de PyMieSim en acción. Puede encontrar más ejemplos en la sección de ejemplos de la documentación.
Aquí hay algunos ejemplos más que muestran las capacidades de PyMieSim:
Si prefiere o necesita compilar el proyecto manualmente (por ejemplo, para dispositivos Apple Silicon), asegúrese de tener un compilador de C++ (como gcc) y Fortran instalado, así como Python 3.7+.
clon de git https://github.com/MartinPdeS/PyMieSim.gitcd PyMieSim inicio del submódulo git && actualización del submódulo git mkdir buildcd construir cmake ../ -G"Unix Makefiles"sudo make installcd .. python -m instalación de pip.
Para Windows, utilice MinGW Makefiles en lugar de Unix Makefiles al invocar CMake.
Puede probar la versión local de PyMieSim ejecutando los siguientes comandos:
clon de git https://github.com/MartinPdeS/PyMieSim.gitcd PyMieSim pip instalar PyMieSim [pruebas] pytest
Esto ejecutará el conjunto de pruebas unitarias y proporcionará detalles de cobertura.
¡En 2024, ejecutar código en su máquina local es opcional! Puede aprovechar el poder de Google Colab para ejecutar PyMieSim de forma remota. Utilice el cuaderno Colab proporcionado para disfrutar de una experiencia interactiva.
Si PyMieSim contribuye a su investigación, le solicitamos que cite el siguiente artículo:
@artículo{PoinsinetdeSivry-Houle:23,
autor = {Martin Poinsinet de Sivry-Houle y Nicolas Godbout y Caroline Boudoux},
diario = {Opt. continuo},
title = {PyMieSim: una biblioteca de código abierto para simulaciones de dispersión Mie de campo lejano rápidas y flexibles},
volumen = {2},
número = {3},
páginas = {520--534},
año = {2023},
doi = {10.1364/OPTCON.473102},
}
Puedes acceder al artículo completo aquí
Desde la versión 1.7.0, PyMieSim ofrece una GUI experimental para usuarios que prefieren un enfoque gráfico para las simulaciones. Mientras aún está en desarrollo, la GUI se puede instalar y acceder a ella de la siguiente manera:
pip instalar PyMieSim Python -m PyMieSim
La GUI aún no es tan sólida como la API principal de Python, pero proporciona una interfaz simplificada para generar simulaciones.
PyMieSim es desarrollado y mantenido activamente por Martin Poinsinet de Sivry-Houle. Si está interesado en contribuir o tiene preguntas, no dude en comunicarse.
Correo electrónico: [email protected]