
Pympdata เป็นการดำเนินการ pythonic ที่เร่งความเร็วสูงของอัลกอริทึม MPData ของ Smolarkiewicz และคณะ ใช้ในการเปลี่ยนแปลงของของเหลวธรณีฟิสิกส์และอื่น ๆ สำหรับการแก้ปัญหาตัวเลขการพาความร้อนแบบทั่วไป 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 พวกเขาประกอบด้วยแพ็คเกจ PyMPDATA_examples Python แยกต่างหากซึ่งมีอยู่ที่ PYPI ตัวอย่างมีการอ้างอิงเพิ่มเติมที่ระบุไว้ในไฟล์แพ็คเกจ PyMPDATA_examples 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 Pull Requests (หรือเว็บไซต์ PR PympData -Examples หากทำงานกับตัวอย่าง) - ช่วยเก็บบันทึกการประพันธ์รหัสติดตามและเก็บรหัสเวิร์กโฟลว์รีวิวรหัสและอนุญาตให้ได้รับประโยชน์จากการตั้งค่าการรวมอย่างต่อเนื่อง
ณ ตอนนี้ลิขสิทธิ์ของ Pympdata Codebase ทั้งหมดอยู่กับมหาวิทยาลัย Jagiellonian (2019-2023) และ AGH University of Krakow (2023 เป็นต้นไป) - สถานที่ทำงานของผู้ดูแลหลัก การบริจาครหัสจะถือว่าเป็นการโอนลิขสิทธิ์ หากมีความจำเป็นที่จะต้องมีข้อยกเว้นโปรดระบุเมื่อสร้างคำขอดึงหรือการสนับสนุนรหัสด้วยวิธีอื่นใด ไม่ว่าในกรณีใดใบอนุญาตของรหัสที่มีส่วนร่วมจะต้องเข้ากันได้กับ GPL V3
การพัฒนารหัสเราทำตามวิธีของ Python และหลักการจูบ Codebase ได้รับประโยชน์อย่างมากจากการตรวจสอบรหัส Pycharm และการวิเคราะห์รหัสไพลินต์ (การตรวจสอบไพลินต์เป็นส่วนหนึ่งของเวิร์กโฟลว์ CI)
ปัญหาเกี่ยวกับ Bahaviour ที่ไม่ถูกต้องไม่ใช้งานง่ายหรือไม่มีเอกสารของ pympdata นั้นดีที่สุดที่จะรายงานในตัวติดตามปัญหา GitHub คำขอคุณสมบัติจะถูกบันทึกไว้ในหน้า "ไอเดีย ... " Pympdata Wiki
เราสนับสนุนให้ใช้คุณสมบัติการอภิปรายของ GitHub (แทนที่จะเป็นตัวติดตามปัญหา) เพื่อค้นหาการสนับสนุนในการทำความเข้าใจการใช้และขยายรหัส pympdata
โปรดใช้การติดตามปัญหาของ Pympdata และโครงสร้างพื้นฐาน Dicsussion สำหรับ PyMPDATA-examples เช่นกัน เราหวังว่าจะมีส่วนร่วมและข้อเสนอแนะของคุณ
การพัฒนาของ Pympdata ได้รับการสนับสนุนจากสหภาพยุโรปผ่านการมอบให้แก่มูลนิธิวิทยาศาสตร์โปแลนด์ (Poir.04.04.00-00-5E1C/18) และศูนย์วิทยาศาสตร์แห่งชาติโปแลนด์ (Grant No. 2020/39/D/ST10/01220)
ลิขสิทธิ์: มหาวิทยาลัย Jagiellonian (2019-2023) และ AGH University of Krakow (2023 เป็นต้นไป)
ใบอนุญาต: GPL v3