
Pympdata هو تنفيذ Pythonic عالي الأداء من خوارزمية MPData لـ Smolarkiewicz et al. تستخدم في ديناميات السوائل الجيوفيزيائية وما وراءها لحل العدديات PDEs الانتشار الحمل المعمم في شبكات 1D و 2D و 3D منظمة مع تحولات الإحداثيات.
باختصار ، يحل Pympdata عدديًا المعادلة التالية:
حيث الحقل العدسي
يتم إنشاء وثائق pympdata عبر pdoc .
يوضح مشروع منفصل يسمى PyMPDATA-MPI كيف يمكن استخدام numba-mpi لتمكين التوازي الذاكرة الموزعة في pympdata.applications ، ويوفر التحقق من صحة التنفيذ وأدائه.
لتثبيت pympdata ، يمكن للمرء استخدام: pip install PyMPDATA (أو pip install git+https://github.com/open-atmos/PyMPDATA.git للحصول على تحديثات تتجاوز الإصدار الأخير). يعتمد Pympdata على NumPy و Numba .
يتطلب تشغيل الاختبارات التي يتم شحنها باستخدام الحزمة حزمًا إضافية يتم تثبيتها إذا تم استدعاء PIP مع: pip install PyMPDATA[tests] .
يتم تجميع أمثلة pympdata مع pympdata وتقع في examples على المجلد الفرعي. وهي تشكل حزمة python PyMPDATA_examples منفصلة متوفرة أيضًا في PYPI. تحتوي الأمثلة على تبعيات إضافية مدرجة في ملف PyMPDATA_examples Package setup.py . يتطلب تشغيل الأمثلة تثبيت حزمة PyMPDATA_examples . نظرًا لأن حزمة الأمثلة تتضمن أجهزة الكمبيوتر المحمولة Jupyter (وتنفيذها يتطلب الوصول إلى الكتابة) ، فإن خطوات التثبيت والإطلاق المقترحة هي:
git clone https://github.com/open-atmos/PyMPDATA-examples.git
cd PyMPDATA-examples
pip install -e .
jupyter-notebook
بدلاً من ذلك ، يمكن للمرء أيضًا تثبيت حزمة الأمثلة من pypi.org باستخدام pip install PyMPDATA-examples .
تم تلخيص الفئات الرئيسية التي تشكل واجهة pympdata أدناه.
مجموعات فئة Options كلا من خيارات المتغيرات الخوارزمية وكذلك بعض الأعلام المتعلقة بالتنفيذ.
في pympdata ، من المفترض أن يمتد مجال الحل من حدود الخلية الأولى إلى حدود الخلية الأخيرة (وبالتالي فإن قيمة حقل العددية الأولى هي في ScalarField و VectorField منطق الشبكة Arakawa-C المتداخلة.
يتم تنفيذ الشروط الحدودية كطبقات محددة في BoundaryCondition .
يتم تمثيل منطق حلال MPDATA التكراري في pympdata بواسطة فئة Stepper .
يتم استخدام مثيلات فئة Solver للتحكم في بيانات حل التكامل والوصول. أثناء مثيله ، يتم تخصيص ذاكرة إضافية تتطلبها الحلال وفقًا للخيارات المقدمة.
إرسال رمز جديد إلى المشروع ، يرجى استخدام طلبات سحب GitHub (أو موقع Pympdata -examples PR إذا كان العمل على أمثلة) - يساعد على الحفاظ على سجل تأليف الكود ، وتتبع وأرشفة سير عمل مراجعة الكود ويسمح للاستفادة من إعداد التكامل المستمر الذي يؤدي إلى تنفيذ الاختبارات مع الكود المضافة حديثًا.
اعتبارا من الآن ، فإن حقوق الطبع والنشر إلى قاعدة كود Pympdata بأكملها مع جامعة جاجيلونيان (2019-2023) وجامعة AGH في Krakow (2023 فصاعدًا) - أماكن العمل في المشرف الرئيسي. يُفترض أن مساهمات الكود تنطوي على نقل حقوق الطبع والنشر. إذا كانت هناك حاجة لإجراء استثناء ، يرجى الإشارة إلى ذلك عند إنشاء طلب سحب أو رمز مساهمة بأي طريقة أخرى. في أي حال ، يجب أن يكون ترخيص الكود المساهم متوافقًا مع GPL V3.
تطوير الكود ، نتبع طريق بيثون ومبدأ القبلة. استفادت قاعدة الشفرة بشكل كبير من عمليات التفتيش على رمز Pycharm وتحليل رمز Pylint (شيكات Pylint هي جزء من سير عمل CI).
من الأفضل الإبلاغ عن المشكلات المتعلقة بأي باهافي غير غير بديهية أو غير بديهية أو غير موثقة من Pympdata على متتبع قضية Github. يتم تسجيل طلبات الميزات في صفحة "الأفكار ..." pympdata wiki.
نحن نشجع على استخدام ميزة GitHub مناقشات (بدلاً من تعقب القضية) لطلب الدعم في فهم رمز Pympdata واستخدامه وتوسيعه.
يرجى استخدام البنية التحتية لتتبع المشكلات pympdata والتعبيرات عن PyMPDATA-examples كذلك. نحن نتطلع إلى مساهماتك وردود الفعل.
تم دعم تطوير Pympdata من قبل الاتحاد الأوروبي من خلال منحة من مؤسسة العلوم البولندية (Poir.04.00-00-00-5e1c/18) والمركز الوطني البولندي (المنحة رقم 2020/39/d/st10/01220)
حقوق الطبع والنشر: جامعة جاجيلونيان (2019-2023) وجامعة AGH في كراكوف (2023 فصاعدًا)
الترخيص: GPL V3