PyMieSimは、Mie 散乱シミュレーションを実行するための堅牢かつ柔軟なフレームワークを提供するように設計された Python ライブラリです。このソフトウェアはインストールと操作が簡単で、新しいユーザーと経験豊富な研究者の両方が利用できます。 PyMieSim を使用すると、ユーザーはさまざまな構成の下で粒子の散乱特性を調べることができ、単一の散乱イベントの調査や大規模なパラメトリック実験の実施に合わせて調整されています。
PyMieSim の中核には、さまざまなタイプの散乱体に最適化された 3 つのソルバーが含まれています。
球状粒子
無限円柱状粒子
コアシェル型球状粒子
このソフトウェアを使用すると、ユーザーは特定のシミュレーションのニーズに応じて、光源と検出器の属性をカスタマイズすることもできます。このパッケージはモジュール式で、ユーザーが最小限の労力で複雑な散乱シナリオをモデル化できる直感的なインターフェイスを提供します。
PyMieSim は 2 つの主要なサブモジュールで構成されています。
single : 以下のような個々の散乱イベントの分析に焦点を当てます。 - 遠方界分布 - 散乱位相関数 - ストークス パラメータ
Experiment : Qsca、Qext、g、カップリング (パワー) などの散乱パラメータが大規模なデータセット上でどのように動作するかを調査するために設計されており、線源、散乱体、検出器の変動を組み込んでいます。
両方のサブモジュールはシームレスに連携し、PyMieSim を広範囲の散乱シミュレーションに適応できるようにします。
Python で PyMieSim を使用するには、パッケージをインストールし、スクリプトへの組み込みを開始するだけです。
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 * AU)散乱体 = Sphere(直径=[200] * ナノメートル、プロパティ=[4] * RIU、medium_property=1 * RIU、 source=source)experiment = Setup(scatterer=scatterer, source=source)dataframe = Experiment.get('Qsca')dataframe.plot_data(x="source:wavelength")
ウィキペディアにあるものと同等の次の図が生成されます。
これは、PyMieSim が動作している一例にすぎません。ドキュメントの例セクションでさらに多くの例を見つけることができます。
ここでは、PyMieSim の機能を示すいくつかの例を示します。
プロジェクトを手動でビルドしたい場合、または手動でビルドする必要がある場合 (例: Apple シリコン デバイスの場合)、C++ コンパイラー (gcc など) と Fortran、および Python 3.7 以降がインストールされていることを確認してください。
git clone https://github.com/MartinPdeS/PyMieSim.gitcd PyMieSim git サブモジュールの初期化 && git サブモジュールの更新 mkdir ビルドcd ビルド cmake ../ -G"Unix Makefiles"sudo make installcd .. python -m pip インストール 。
Windows の場合、CMake を呼び出すときに Unix Makefile の代わりに MinGW Makefile を使用します。
次のコマンドを実行して、PyMieSim のローカル バージョンをテストできます。
git clone https://github.com/MartinPdeS/PyMieSim.gitcd PyMieSim pip インストール PyMieSim[テスト] pytest
これにより、一連の単体テストが実行され、カバレッジの詳細が提供されます。
2024 年には、ローカル マシンでのコードの実行はオプションになります。 Google Colab の機能を利用して、PyMieSim をリモートで実行できます。インタラクティブなエクスペリエンスを実現するには、提供されている Colab ノートブックを使用します。
PyMieSim があなたの研究に貢献する場合は、次の論文を引用していただくようお願いいたします。
@article{PoinsinetdeSivry-Houle:23、
著者 = {Martin Poinsinet de Sivry-Houle、Nicolas Godbout、Caroline Bodoux}、
ジャーナル = {オプション。連続体}、
title = {PyMieSim: 高速かつ柔軟な遠方場ミー散乱シミュレーション用のオープンソース ライブラリ},
ボリューム = {2}、
番号 = {3}、
ページ = {520--534}、
年 = {2023}、
ドイ = {10.1364/OPTCON.473102}、
}
ここから記事全文にアクセスできます
バージョン 1.7.0 以降、PyMieSim はシミュレーションに対するグラフィカルなアプローチを好むユーザー向けに実験的な GUI を提供しています。まだ開発中ですが、GUI は次のようにインストールしてアクセスできます。
pip インストール PyMieSim python -m PyMieSim
GUI はまだコア Python API ほど堅牢ではありませんが、シミュレーションを生成するための簡素化されたインターフェイスを提供します。
PyMieSim は、Martin Poinsinet de Sivry-Houle によって積極的に開発および保守されています。貢献に興味がある場合、または質問がある場合は、お気軽にお問い合わせください。
電子メール: [email protected]