
PYSDM هي حزمة لمحاكاة ديناميات السكان من الجزيئات. يهدف إلى أن يكون بمثابة لبنة لبناء لتدفقات النمذجة للنمذجة التي تنطوي على مرحلة مشتتة ، مع كون PYSDM مسؤولاً عن تمثيل المرحلة المشتتة. يركز التطور حاليًا على تطبيقات الفيزياء السحابية في الغلاف الجوي ، لا سيما على نمذجة ديناميات الجزيئات المنغمسة في الهواء الرطب باستخدام نهج الجسيمات القائم على الجسيمات (AKA Super-Droplet) لتمثيل الميكروفيزياء الهوائي/السحابة/المطر. تتميز الحزمة بتنفيذ عالي الأداء من طراز Monte-Carlo خوارزمية Monte-Carlo لتمثيل النمو التصادمي (Shima et al. 2009) ، وبالتالي الاسم.
يتم الحفاظ على وثائق PYSDM على: https://open-atmos.github.io/pysdm
هناك مجموعة متزايدة من أجهزة الكمبيوتر المحمولة Jupyter التي تمثل كيفية إجراء أنواع مختلفة من الحسابات والمحاكاة باستخدام PYSDM. معظم مثال دفاتر الملاحظات يعيد إنتاج النتائج والمؤامرة من الأدب ، انظر أدناه للحصول على قائمة الأمثلة والروابط إلى دفاتر الملاحظات (والتي يمكن تنفيذها أو عرضها "في السحابة").
هناك أيضًا مجموعة متزايدة من البرامج التعليمية ، أيضًا في شكل دفاتر الملاحظات Jupyter. هذه البرامج التعليمية مخصصة لأغراض التدريس وتتضمن تفسيرات قصيرة لمفاهيم الميكروفيزيائية السحابية المقترنة بعناصر واجهة المستخدم لتشغيل عمليات المحاكاة التفاعلية باستخدام PYSDM. يأتي كل برنامج تعليمي أيضًا مع مجموعة من الأسئلة في النهاية يمكن استخدامها كمشاكل في الواجب المنزلي. مثل الأمثلة ، يمكن تنفيذ هذه البرامج التعليمية أو عرضها "في السحابة" مما يجعلها وسيلة سهلة بشكل خاص للطلاب للبدء.
يحتوي PYSDM على خلفيين بديلين متوازيين في الأرقام المتوفرة: الواجهة الخلفية لوحدة المعالجة المركزية متعددة الخيوط استنادًا إلى الواجهة الخلفية المقيمة Numba و GPU التي تم بناؤها فوق Arrustrtc. تتميز الواجهة الخلفية Numba ( CPU المستعار) بالتوازي متعدد الخيوط لوحدة المعالجة المركزية متعددة النواة ، وتستخدم تقنية التجميع في الوقت المناسب على أساس البنية التحتية LLVM. يوفر الواجهة الخلفية ThrustRTC ( GPU المستعار) تشغيلًا مقيمًا لـ GPU من PYSDM الاستفادة من نموذج Simt Parallelisation. يتطلب استخدام GPU الخلفية أجهزة NVIDIA وسائق CUDA.
للحصول على نظرة عامة على ميزات PYSDM (والطريقة المفضلة للاستشهاد PYSDM في الأوراق) ، يرجى الرجوع إلى أوراق JOSS الخاصة بنا:
يتضمن PYSDM امتدادًا لمخطط SDM لتمثيل الانفصال التصادمي الموصوف في De Jong ، Mackay et al. 2023.
للحصول على قائمة بالمحادثات والمواد الأخرى على PYSDM بالإضافة إلى قائمة بالأوراق المنشورة التي تتميز بمحاكاة PYSDM ، راجع مشروع Wiki.
تبعيات PYSDM هي: Numpy ، Numba ، Scipy ، Pint ، Chempy ، Pyevtk ، Arrustrtc و Curandrtc.
لتثبيت PYSDM باستخدام pip ، استخدم: pip install PySDM (أو pip install git+https://github.com/open-atmos/PySDM.git للحصول على تحديثات تتجاوز أحدث إصدار).
قد يستخدم مستخدمو Conda pip أيضًا ، راجع قسم تثبيت الحزم غير الوسيطة في مستندات Conda. تتوفر تبعيات PYSDM في قنوات كوندا التالية:
لأغراض التطوير ، نقترح استنساخ المستودع وتثبيته باستخدام pip -e . يمكن تثبيت تبعيات وقت الاختبار باستخدام pip -e .[tests] .
تشكل أمثلة PYSDM حزمة PySDM-examples . تحتوي الأمثلة على تبعيات إضافية مدرجة في ملف PySDM_examples Package setup.py . يتطلب تشغيل مثال Jupyter Notebooks تثبيت حزمة PySDM_examples . خطوات التثبيت والإطلاق المقترحة هي:
git clone https://github.com/open-atmos/PySDM.git
pip install -e PySDM
pip install -e PySDM/examples
jupyter-notebook PySDM/examples/PySDM_examples
بدلاً من ذلك ، يمكن للمرء أيضًا تثبيت حزمة الأمثلة من pypi.org باستخدام pip install PySDM-examples (لاحظ أن هذا لا ينطبق على دفاتر الملاحظات نفسها ، فقط ملفات .py الداعمة).
إرسال رمز جديد إلى المشروع ، يرجى استخدام طلبات سحب GitHub - يساعد على الاحتفاظ بسجل لتأليف الرمز ، وتتبع وأرشفة سير عمل مراجعة الكود ويسمح للاستفادة من إعداد التكامل المستمر الذي يؤدي إلى تنفيذ الاختبارات مع الكود المضافة حديثًا.
يُفترض أن مساهمات الكود تنطوي على نقل حقوق الطبع والنشر. إذا كانت هناك حاجة لإجراء استثناء ، يرجى الإشارة إلى ذلك عند إنشاء طلب سحب أو رمز مساهمة بأي طريقة أخرى. في أي حال ، يجب أن يكون ترخيص الكود المساهم متوافقًا مع GPL V3.
تطوير الكود ، نتبع طريق بيثون ومبدأ القبلة. استفادت قاعدة كود بشكل كبير من عمليات تفتيش كود Pycharm وتحليل رمز الأسود والأسود (والتي هي كلها جزء من سير عمل CI).
نستخدم أيضًا السنانير قبل الالتزام. في حالتنا ، تعدل السنانير الملفات وإعادة تنسيقها. يمكن تشغيل خطافات ما قبل الالتزام محليًا ، ثم يجب تنظيم التغييرات الناتجة قبل الالتزام. لإعداد السنانير محليًا ، قم بتثبيت الالتزام المسبق عبر pip install pre-commit وقم بإعداد خطافات GIT عبر pre-commit install (يجب القيام بذلك في كل مرة تقوم فيها باستنساخ المشروع). لتشغيل جميع خطافات ما قبل الالتزام ، قم بتشغيل pre-commit run --all-files . يمكن تعديل ملف .pre-commit-config.yaml في حالة إضافة خطافات جديدة أو يجب تغيير الخطافات الموجودة.
يتم الحفاظ على مزيد من التلميحات التي تم تناولها في مطوري PYSDM في Wiki Open-Atmos/Python-Dev وفي Howtos Pysdm.
من الأفضل الإبلاغ عن المشكلات المتعلقة بأي باهافي غير غير بديهية أو غير بديهية أو غير موثقة من PYSDM. يتم تسجيل طلبات الميزات في صفحة "الأفكار ..." pysdm wiki.
نحن نشجع على استخدام ميزة GitHub مناقشات (بدلاً من تعقب القضية) للبحث عن الدعم في فهم رمز PYSDM واستخدامه وتوسيعه.
نحن نتطلع إلى مساهماتك وردود الفعل.
حقوق الطبع والنشر: جامعة جاجيلونيان (2019-2023) وجامعة AGH في كراكوف (2023 -...)
الترخيص: GPL V3