
PYSDM เป็นแพ็คเกจสำหรับการจำลองพลวัตของประชากรของอนุภาค มันมีวัตถุประสงค์เพื่อทำหน้าที่เป็นหน่วยการสร้างสำหรับระบบจำลองการสร้างแบบจำลองการไหลของของไหลที่เกี่ยวข้องกับเฟสกระจายตัวโดย PYSDM รับผิดชอบในการเป็นตัวแทนของเฟสกระจายตัว ปัจจุบันการพัฒนามุ่งเน้นไปที่การใช้งานฟิสิกส์คลาวด์ในบรรยากาศโดยเฉพาะอย่างยิ่งในการสร้างแบบจำลองพลวัตของอนุภาคที่แช่ในอากาศชื้นโดยใช้วิธีการที่ใช้อนุภาค (AKA Super-Droplet) เพื่อเป็นตัวแทนของละอองลอย แพ็คเกจนี้มีการใช้งานประสิทธิภาพสูงของ Pythonic ของวิธี Super-Droplet Method (SDM) Monte-Carlo อัลกอริทึมสำหรับการเติบโตของการเติบโต (Shima et al. 2009) ดังนั้นชื่อ
เอกสาร PYSDM ได้รับการเก็บรักษาไว้ที่: https://open-atmos.github.io/pysdm
มีชุดตัวอย่างที่เพิ่มขึ้นของสมุดบันทึก Jupyter เป็นตัวอย่างของวิธีการคำนวณและการจำลองประเภทต่าง ๆ โดยใช้ PYSDM สมุดบันทึกตัวอย่างส่วนใหญ่ทำซ้ำผลลัพธ์และพล็อตจากวรรณกรรมดูด้านล่างสำหรับรายการตัวอย่างและลิงก์ไปยังสมุดบันทึก (ซึ่งสามารถดำเนินการหรือดู "ในคลาวด์")
นอกจากนี้ยังมีชุดการสอนที่เพิ่มขึ้นเช่นกันในรูปแบบของสมุดบันทึก Jupyter แบบฝึกหัดเหล่านี้มีวัตถุประสงค์เพื่อวัตถุประสงค์ในการสอนและรวมถึงคำอธิบายสั้น ๆ เกี่ยวกับแนวคิดจุลภาคบนคลาวด์ที่จับคู่กับวิดเจ็ตสำหรับการจำลองแบบโต้ตอบโดยใช้ PYSDM บทช่วยสอนแต่ละครั้งยังมาพร้อมกับชุดคำถามในตอนท้ายซึ่งสามารถใช้เป็นปัญหาการบ้านได้ เช่นตัวอย่างแบบฝึกหัดเหล่านี้สามารถดำเนินการหรือดูได้ "ในคลาวด์" ทำให้เป็นวิธีที่ง่ายโดยเฉพาะอย่างยิ่งสำหรับนักเรียนที่จะเริ่มต้น
PYSDM มีแบ็กเอนด์หมายเลขคู่ขนานสองทางเลือกที่มีอยู่: แบ็กเอนด์ซีพียูแบบมัลติเธรดที่มีพื้นฐานจากแบ็กเอนด์ NUMBA และ GPU-resident ที่สร้างขึ้นบน THRUSTRTC Numba Backend ( CPU ที่มีนามแฝง) มีการขนานแบบมัลติเธรดสำหรับซีพียูหลายคอร์มันใช้เทคนิคการรวบรวมแบบทันเวลาตามโครงสร้างพื้นฐาน LLVM แบ็กเอนด์ ThrustRTC (นามแฝง GPU ) เสนอการทำงานที่อยู่อาศัยของ GPU ของ PYSDM ที่ใช้ประโยชน์จากรูปแบบการขนาน SIMT การใช้แบ็กเอนด์ GPU ต้องใช้ฮาร์ดแวร์ NVIDIA และไดรเวอร์ CUDA
สำหรับภาพรวมของคุณสมบัติ PYSDM (และวิธีที่ต้องการในการอ้างอิง PYSDM ในเอกสาร) โปรดดูเอกสาร Joss ของเรา:
PYSDM รวมถึงส่วนขยายของโครงการ SDM เพื่อเป็นตัวแทนของการแยกส่วนที่อธิบายไว้ใน De Jong, Mackay และคณะ 2023.
สำหรับรายการการเจรจาและวัสดุอื่น ๆ เกี่ยวกับ PYSDM รวมถึงรายการเอกสารที่ตีพิมพ์ที่มีการจำลอง PYSDM ดูโครงการ Wiki
การพึ่งพา PYSDM คือ: numpy, numba, scipy, pint, chempy, pyevtk, thrustrtc และ 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 setup.py การรันตัวอย่างโน้ตบุ๊ก Jupyter ต้องการแพ็คเกจ 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
การพัฒนารหัสเราทำตามวิธีของ Python และหลักการจูบ Codebase ได้รับประโยชน์อย่างมากจากการตรวจสอบรหัส Pycharm และการวิเคราะห์รหัสไพลลินต์สีดำและ iSort (ซึ่งเป็นส่วนหนึ่งของเวิร์กโฟลว์ CI)
นอกจากนี้เรายังใช้ตะขอล่วงหน้า ในกรณีของเราตะขอจะแก้ไขไฟล์และจัดรูปแบบใหม่ ตะขอล่วงหน้าสามารถทำงานได้ในพื้นที่จากนั้นการเปลี่ยนแปลงผลลัพธ์จะต้องจัดฉากก่อนที่จะกระทำ ในการตั้งค่า hooks ในเครื่องให้ติดตั้ง pre-cy-cay ผ่าน pip install pre-commit และตั้งค่า hook git ผ่าน pre-commit install (สิ่งนี้จะต้องทำทุกครั้งที่คุณโคลนโครงการ) ในการเรียกใช้ตะขอล่วงหน้าทั้งหมดให้เรียก pre-commit run --all-files ไฟล์ .pre-commit-config.yaml สามารถแก้ไขได้ในกรณีที่จะเพิ่มตะขอใหม่หรือต้องมีการเปลี่ยนแปลงไฟล์ใหม่
คำแนะนำเพิ่มเติมที่กล่าวถึงที่นักพัฒนา PYSDM จะได้รับการดูแลใน Wiki แบบเปิด ATMOS/Python-Dev และใน PYSDM Howtos
ปัญหาเกี่ยวกับ Bahaviour ของ PYSDM ที่ไม่ถูกต้องหรือไม่มีเอกสารใด ๆ ที่ดีที่สุดที่จะรายงานในตัวติดตามปัญหา GitHub คำขอคุณสมบัติจะถูกบันทึกไว้ในหน้า "ไอเดีย ... " PYSDM Wiki
เราสนับสนุนให้ใช้คุณสมบัติการอภิปรายของ GitHub (แทนที่จะเป็นตัวติดตามปัญหา) เพื่อค้นหาการสนับสนุนในการทำความเข้าใจการใช้และขยายรหัส PYSDM
เราหวังว่าจะมีส่วนร่วมและข้อเสนอแนะของคุณ
ลิขสิทธิ์: มหาวิทยาลัย Jagiellonian (2019-2023) และ AGH University of Krakow (2023 -... )
ใบอนุญาต: GPL v3