PyMieSim هي مكتبة Python مصممة لتوفير إطار عمل قوي ومرن لإجراء عمليات محاكاة تشتت Mie. البرنامج سهل التثبيت والتشغيل، مما يجعله في متناول المستخدمين الجدد والباحثين ذوي الخبرة. يمكّن PyMieSim المستخدمين من استكشاف خصائص تشتت الجسيمات ضمن تكوينات مختلفة، وهو مصمم للتحقيق في أحداث التشتت الفردية، فضلاً عن إجراء تجارب حدودية واسعة النطاق.
يتضمن PyMieSim في جوهره ثلاثة حلول محسنة لأنواع مختلفة من المبعثرات:
جسيمات كروية
جزيئات أسطوانية لا حصر لها
الجسيمات الكروية ذات القشرة الأساسية
يسمح البرنامج أيضًا للمستخدم بتخصيص مصدر الضوء وسمات الكاشف، وفقًا لاحتياجات المحاكاة المحددة. الحزمة معيارية وتوفر واجهة سهلة الاستخدام للمستخدمين لتصميم سيناريوهات التشتت المعقدة بأقل جهد.
يتم تنظيم PyMieSim في وحدتين فرعيتين أساسيتين:
فردي : يركز على تحليل أحداث التشتت الفردية، مثل: - توزيعات المجال البعيد - وظائف مرحلة التشتت - معلمات ستوكس
التجربة : مصممة لاستكشاف كيفية تصرف معلمات التشتت، مثل Qsca وQext وg والاقتران (الطاقة)، على مجموعات البيانات الكبيرة، مع دمج الاختلافات في المصادر والتشتت والكاشفات.
تعمل كلتا الوحدتين الفرعيتين معًا بسلاسة، مما يجعل PyMieSim قابلاً للتكيف مع مجموعة واسعة من عمليات محاكاة التشتت.
لاستخدام PyMieSim في Python، ما عليك سوى تثبيت الحزمة والبدء في دمجها في البرامج النصية الخاصة بك.
يدعم PyMieSim أنظمة التشغيل Windows وLinux وmacOS (بما في ذلك شرائح Apple M1/M2) وبنيات ARM. لتثبيت الحزمة، استخدم النقطة:
نقطة تثبيت PyMieSim
لمزيد من التفاصيل، قم بزيارة الوثائق للحصول على دليل شامل حول كيفية استخدام الحزمة.
فيما يلي مثال لكيفية استخدام PyMieSim لمحاكاة تشتت Mie البسيطة. يوضح هذا المثال كيفية تكوين مصدر الضوء، والتشتت، والكاشف، واسترداد بيانات التشتت:
استيراد numpy كـ npfrom PyMieSim.experiment.scatterer استيراد Spherefrom PyMieSim.experiment.source استيراد Gaussianfrom PyMieSim.experiment import Setupfrom PyMieSim.units استيراد نانومتر، درجة، واط، AU، RIUsource = Gaussian(wavelength=np.linspace(400, 1000, 500) ) * نانومتر، الاستقطاب = 0 * درجة، الطاقة الضوئية = 1e-3 * واط، NA = 0.2 * AU) مبعثر = المجال (القطر = [200] * نانومتر، الخاصية = [4] * RIU، Medium_property = 1 * RIU، مصدر = مصدر) تجربة = الإعداد (مبعثر = مبعثر، مصدر = مصدر) dataframe = experience.get ('Qsca') dataframe.plot_data (x = "مصدر: الطول الموجي")
وينتج الشكل التالي وهو ما يعادل الشكل الموجود في ويكيبيديا.
هذا مجرد مثال واحد على تطبيق PyMieSim أثناء العمل. يمكنك العثور على المزيد من الأمثلة في قسم الأمثلة في الوثائق.
فيما يلي بعض الأمثلة الإضافية التي تعرض إمكانيات PyMieSim:
إذا كنت تفضل أو تحتاج إلى إنشاء المشروع يدويًا (على سبيل المثال، لأجهزة Apple silicon)، فتأكد من تثبيت مترجم C++ (مثل gcc) وFortran، بالإضافة إلى Python 3.7+.
استنساخ بوابة https://github.com/MartinPdeS/PyMieSim.gitcd PyMieSim git submodule init && تحديث git submodule بناء mkdir buildcd cmake ../ -G"Unix Makefiles"sudo make installcd .. بيثون -m تثبيت النقطة .
بالنسبة لنظام التشغيل Windows، استخدم MinGW Makefiles بدلاً من Unix Makefiles عند استدعاء CMake.
يمكنك اختبار الإصدار المحلي من PyMieSim عن طريق تشغيل الأوامر التالية:
استنساخ بوابة https://github.com/MartinPdeS/PyMieSim.gitcd PyMieSim تثبيت النقطة PyMieSim[اختبار] pytest
سيؤدي هذا إلى تشغيل مجموعة اختبارات الوحدة وتوفير تفاصيل التغطية.
في عام 2024، سيكون تشغيل التعليمات البرمجية على جهازك المحلي أمرًا اختياريًا! يمكنك الاستفادة من قوة Google Colab لتشغيل PyMieSim عن بعد. استخدم دفتر Colab المقدم للحصول على تجربة تفاعلية.
إذا ساهمت PyMieSim في بحثك، فنطلب منك الاستشهاد بالمقالة التالية:
@article{PoinsinetdeSivry-Houle:23,
المؤلف = {مارتن بونسينت دي سيفري هولي ونيكولاس جودبوت وكارولين بودو}،
مجلة = {اختياري. الاستمرارية}،
title = {PyMieSim: مكتبة مفتوحة المصدر لعمليات محاكاة تشتت Mie بعيدة المدى سريعة ومرنة}،
الحجم = {2}،
الرقم = {3}،
الصفحات = {520--534}،
السنة = {2023}،
دوى = {10.1364/OPTCON.473102}،
}
يمكنك الوصول إلى المقال كاملا هنا
منذ الإصدار 1.7.0، تقدم PyMieSim واجهة مستخدم رسومية تجريبية للمستخدمين الذين يفضلون النهج الرسومي لعمليات المحاكاة. بينما لا تزال قيد التطوير، يمكن تثبيت واجهة المستخدم الرسومية والوصول إليها على النحو التالي:
نقطة تثبيت PyMieSim بايثون -م PyMieSim
واجهة المستخدم الرسومية ليست قوية حتى الآن مثل واجهة برمجة تطبيقات Python الأساسية، ولكنها توفر واجهة مبسطة لإنشاء عمليات المحاكاة.
تم تطوير PyMieSim وصيانته بشكل نشط بواسطة Martin Poinsinet de Sivry-Houle. إذا كنت مهتمًا بالمساهمة أو لديك أسئلة، فلا تتردد في التواصل معنا.
البريد الإلكتروني: [email protected]