PyMieSim é uma biblioteca Python projetada para fornecer uma estrutura robusta e flexível para realizar simulações de espalhamento Mie. O software é fácil de instalar e operar, tornando-o acessível tanto para novos usuários quanto para pesquisadores experientes. O PyMieSim permite aos usuários explorar as propriedades de dispersão de partículas sob várias configurações e é adaptado para investigar eventos de dispersão únicos, bem como para conduzir experimentos paramétricos em grande escala.
Basicamente, o PyMieSim inclui três solucionadores otimizados para diferentes tipos de dispersores:
Partículas esféricas
Partículas cilíndricas infinitas
Partículas esféricas núcleo-casca
O software também permite ao usuário personalizar a fonte de luz e os atributos do detector, dependendo das necessidades específicas de simulação. O pacote é modular e fornece uma interface intuitiva para os usuários modelarem cenários de dispersão complexos com esforço mínimo.
PyMieSim é organizado em dois submódulos principais:
único : Focado na análise de eventos de espalhamento individuais, como: - Distribuições de campo distante - Funções de fase de espalhamento - Parâmetros de Stokes
experimento : projetado para explorar como os parâmetros de dispersão, como Qsca, Qext, g e acoplamento (potência), se comportam em grandes conjuntos de dados, incorporando variações em fontes, dispersores e detectores.
Ambos os submódulos funcionam perfeitamente juntos, tornando o PyMieSim adaptável para uma ampla gama de simulações de dispersão.
Para usar PyMieSim em Python, basta instalar o pacote e começar a incorporá-lo em seus scripts.
PyMieSim suporta Windows, Linux, macOS (incluindo chips Apple M1/M2) e arquiteturas ARM. Para instalar o pacote, use pip:
pip instalar PyMieSim
Para obter mais detalhes, visite a documentação para obter um guia completo sobre como usar o pacote.
Aqui está um exemplo de como usar o PyMieSim para uma simulação simples de espalhamento de Mie. Este exemplo demonstra como configurar uma fonte de luz, um dispersor e um detector e recuperar os dados de dispersão:
importar numpy como npfrom PyMieSim.experiment.scatterer importar Spherefrom PyMieSim.experiment.source importar Gaussianfrom PyMieSim.experiment importar Setupfrom PyMieSim.units importar nanômetro, grau, watt, AU, RIUfonte = Gaussiano (comprimento de onda = np.linspace (400, 1000, 500 ) * nanômetro, polarização = 0 * grau, potência óptica = 1e-3 * watt, NA = 0,2 * AU) espalhador = esfera (diâmetro = [200] * nanômetro, propriedade = [4] * RIU, propriedade_média = 1 * RIU, source=source)experiment = Setup(scatterer=scatterer, source=source)dataframe = experiment.get('Qsca')dataframe.plot_data(x="source:wavelength")
Produz a seguinte figura que é equivalente à encontrada na Wikipedia.
Este é apenas um exemplo do PyMieSim em ação. Você pode encontrar mais exemplos na seção de exemplos da documentação.
Aqui estão mais alguns exemplos que mostram os recursos do PyMieSim:
Se você preferir ou precisar construir o projeto manualmente (por exemplo, para dispositivos Apple Silicon), certifique-se de ter um compilador C++ (como gcc) e Fortran instalados, bem como Python 3.7+.
clone git https://github.com/MartinPdeS/PyMieSim.gitcd PyMieSim git submódulo init && git submódulo atualização compilação mkdir buildcd cmake ../ -G"Makefiles Unix"sudo make installcd .. python -m pip instalar.
Para Windows, use Makefiles MinGW em vez de Makefiles Unix ao invocar o CMake.
Você pode testar a versão local do PyMieSim executando os seguintes comandos:
clone git https://github.com/MartinPdeS/PyMieSim.gitcd PyMieSim pip instalar PyMieSim [teste] pytest
Isso executará o conjunto de testes unitários e fornecerá detalhes de cobertura.
Em 2024, executar código em sua máquina local é opcional! Você pode aproveitar o poder do Google Colab para executar o PyMieSim remotamente. Use o notebook Colab fornecido para uma experiência interativa.
Se PyMieSim contribuir para sua pesquisa, pedimos que você cite o seguinte artigo:
@artigo{PoinsinetdeSivry-Houle:23,
autor = {Martin Poinsinet de Sivry-Houle e Nicolas Godbout e Caroline Boudoux},
diário = {Opt. Contínuo},
title = {PyMieSim: uma biblioteca de código aberto para simulações de espalhamento Mie de campo distante rápidas e flexíveis},
volume = {2},
número = {3},
páginas = {520--534},
ano = {2023},
doi = {10.1364/OPTCON.473102},
}
Você pode acessar o artigo completo aqui
Desde a versão 1.7.0, PyMieSim oferece uma GUI experimental para usuários que preferem uma abordagem gráfica para simulações. Ainda em desenvolvimento, a GUI pode ser instalada e acessada da seguinte forma:
pip instalar PyMieSim python -m PyMieSim
A GUI ainda não é tão robusta quanto a API central do Python, mas fornece uma interface simplificada para gerar simulações.
PyMieSim é desenvolvido e mantido ativamente por Martin Poinsinet de Sivry-Houle. Se você estiver interessado em contribuir ou tiver dúvidas, sinta-se à vontade para entrar em contato.
E-mail: [email protected]