請引用:Barba, Lorena A. 和 Forsyth, Gilbert F. (2018)。 CFD Python:納維-斯托克斯方程式的 12 個步驟。開源教育雜誌, 1 (9), 21,https://doi.org/10.21105/jose.00021
CFD Python ,又稱為納維-斯托克斯的 12 個步驟,是一個實用模組,用於透過編碼描述流體流動物理的基本偏微分方程的解來學習計算流體動力學 (CFD) 的基礎。這個模組是 Lorena Barba 教授於 2009 年至 2013 年間在波士頓大學機械工程系教授的課程的一部分(Barba 教授後來轉到喬治華盛頓大學)。
此模組僅假設您具備基本的程式設計知識(任何語言)以及一些偏微分方程和流體力學背景。這些「步驟」的靈感來自Rio Yokota 博士的想法,Rio Yokota 博士在2011 年之前一直是Barba 教授實驗室的博士後,並且Barba 教授和她的學生在教授CFD 課程的幾個學期中對課程進行了完善。我們於 2013 年編寫了這套 Jupyter 筆記本,用於在阿根廷門多薩教授為期兩天的密集課程。
指導學生完成這些步驟(不要跳過任何步驟!),他們學到了許多寶貴的經驗教訓。練習的增量性質意味著他們在每次作業結束時都會有一種成就感,並且他們覺得自己的學習毫不費力。隨著他們的進步,他們自然會練習程式碼重用,並逐漸學習程式設計和繪圖技術。當他們分析結果時,他們了解數值擴散、準確性和收斂性。在大約四個星期的定期課程中,他們成為中等熟練的程式設計師,並有動力開始討論更多的理論問題。
在常規大學課程中,學生可以在 4 到 5 週內完成CFD Python課程。作為強化教程,該模組可以在兩到三天內完成,具體取決於學習者先前的經驗。這些課程也可以用於自學。在所有情況下,學習者都應該按照每節課中的工作範例,在新的 Jupyter 筆記本中重新輸入程式碼,也許在嘗試時記下原始筆記。
使用 Binder 服務啟動與此模組的互動式會話:
步驟 1-4 位於一個空間維度。步驟 5-10 是二維 (2D) 的。步驟 11-12 求解二維納維-斯托克斯方程式。三個「獎勵」筆記本涵蓋了數值穩定性的 CFL 條件、NumPy 的陣列操作以及 Python 中的定義函數。
要使用這些課程,您需要 Python 3 和科學 Python 的標準堆疊:NumPy、Matplotlib、SciPy、Sympy。當然,您還需要 Jupyter——一個在 Web 瀏覽器上運行的互動式運算環境。
本迷你課程是作為一組 Jupyter 筆記本構建的,其中包含有關 Python 程式碼的書面資料和解決方案。為了使用這些材料,我們建議您用一個全新的筆記本開始每節課,然後按照步驟輸入每一行程式碼(不要複製貼上!),並透過更改參數進行探索並看看會發生什麼。
安裝後,為確保您的軟體包是最新的,請在終端機中執行以下命令:
conda update conda
conda update jupyter numpy sympy scipy matplotlib
如果您喜歡 Miniconda(Anaconda 的迷你版本,可以節省磁碟空間),請透過在終端機中執行以下命令來安裝所有必要的程式庫來學習本課程:
conda update conda
conda install jupyter
conda install numpy scipy sympy matplotlib
pip install jupyter
另請確保您已通過運行安裝了必要的庫
pip install numpy scipy sympy matplotlib
我們透過拉取請求接受貢獻——事實上,一些用戶已經提交了拉取請求,進行了更正或小的改進。如果您發現錯誤或有建議,也可以提出問題。
(c) 2017 年洛雷娜·A·巴爾巴、吉爾伯特·F·福賽思。所有內容均受知識共享歸屬 CC-BY 4.0 約束,所有代碼均受 BSD-3 條款約束(之前受 MIT 約束,於 2018 年 3 月 8 日更改)。
如果您以任何方式重複使用這些內容,我們會很高興!