
Pympdata是Smolarkiewicz等人的MPDATA算法的高性能Numba加速Pythonic實現。用於地球物理流體動力學及以後的數值求解具有坐標轉換的1D,2D和3D結構化網格中的廣義對流擴散PDE。
簡而言之,pympdata數值求解以下方程:
標量字段
PYMPDATA文檔是通過pdoc生成的。
一個名為PyMPDATA-MPI的單獨項目描述瞭如何使用numba-mpi在pympdata中啟用分佈式內存並行性,並提供對實現及其性能的驗證。
要安裝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 package setup.py文件中列出了其他依賴關係。運行示例需要安裝PyMPDATA_examples軟件包。由於示例軟件包包括jupyter筆記本電腦(及其執行需要寫入訪問),因此建議的安裝和啟動步驟是:
git clone https://github.com/open-atmos/PyMPDATA-examples.git
cd PyMPDATA-examples
pip install -e .
jupyter-notebook
另外,也可以使用pip install PyMPDATA-examples從pypi.org安裝示例軟件包。
構成PYMPDATA接口的關鍵類如下所述。
Options類別組算法變體選項以及某些與實現相關的標誌。
在pympdata中,假定解決方案域從第一個單元的邊界延伸到最後一個單元的邊界(因此,第一個標量場值是在ScalarField和VectorField類實施了Arakawa-c交錯的網格邏輯。
邊界條件作為BoundaryCondition條件定義的類實現。
MPDATA迭代求解器的邏輯由Stepper類在Pympdata中表示。
Solver類的實例用於控制集成和訪問解決方案數據。在實例化期間,根據所提供的選項分配求解器所需的其他內存。
向項目提交新代碼,最好使用github拖拉請求(或pympdata -examples pr網站(如果使用示例)) - 它有助於記錄代碼作者身份,跟踪和存檔代碼審核工作流程,並允許從連續的集成設置中受益,該設置可自動執行具有新添加的代碼的測試。
截至目前,整個Pympdata代碼庫的版權均在Jagiellonian University(2019-2023)和Krakow University(2023年) - 主要維護者的工作場所。假定代碼貢獻意味著版權轉移。如果需要例外,請在創建拉動請求或以任何其他方式貢獻代碼時表示。無論如何,貢獻代碼的許可必須與GPL V3兼容。
制定代碼,我們遵循Python和Kiss原則的方式。代碼庫大大受益於Pycharm代碼檢查和皮層代碼分析(Pylint檢查是CI工作流程的一部分)。
關於Pympdata的任何不正確,不直覺或無證件的Bahaviour的問題,最好在GitHub Disears Tracker上報告。功能請求記錄在“想法...” pympdata Wiki頁面中。
我們鼓勵使用GitHub討論功能(而不是問題跟踪器)來尋求支持,使用和擴展Pympdata代碼。
請為PyMPDATA-examples使用Pympdata問題跟踪和Dicsussion基礎設施。我們期待您的貢獻和反饋。
歐盟通過授予波蘭科學基金會(POIR.04.04.04.04.04.00-00-5E1C/18)和波蘭國家科學中心(授予2020/39/D/ST10/01220),得到了Pympdata的發展(POIR.04.04.04.04.04.04.04.04.04.04.04.04.04.04.04.04.04.04.04.04.04.04.04.04.04.04.04.04.04.04.04.04.04.04.04.04.04.04.04.04.04.04.04.04.04.04.04.04.04.04.39/
版權所有:Jagiellonian大學(2019-2023)&AGH克拉科夫大學(2023年)
許可證:GPL V3