蔡杰
摘 要:《計算流體力學》是能源動力、土木工程等專業的研究生基礎課,涉及到離散數學、數值分析與算法、非線性偏微分方程、計算機編程等諸多學科知識。筆者結合自己幾年來《計算流體力學》課程的教學實踐,談一談如何針對普通“211”高校研究生的認知特點有效地進行本門課程的教學。
關鍵詞:研究生基礎課 教學實踐 認知特點
中圖分類號:O35 文獻標識碼:A 文章編號:1674-098X(2015)07(b)-0132-02
作為一門研究生專業基礎課,計算流體力學(CFD)涉及到離散數學、數值分析與算法、非線性偏微分方程等方面的知識,具有較強的理論深度及抽象性[1-3]。如何采用合理的教學手段,取得良好的教學效果,使研究生理解掌握CFD的基本原理及方法,是從事該課程教學的老師需要面對的一個重要課題。不同層次的研究生,其認知特點存在差異,因此教學手段和方法上也應該有所區別。筆者總結自己幾年來的教學實踐,對如何提高普通“211”高校的CFD教學效果,提出了自己的一些看法。
1 了解掌握授課對象的認知特征
知名高校的研究生,由于本科大多來自知名高校,或者是普通高校里面拔尖的,其理論基礎相對比較扎實;而像南京師范大學能源學院這類層次的研究生培養單位,其研究生除少數來自本校外,其他基本來自普通二本或三本院校,其數學基礎及計算機編程等基本功普遍較差,對流體力學、傳熱學專業基礎知識的理解也不夠深刻。
這種認知結構的差異,要求授課教師針對性地采用相應的教學手段與教學方法進行該課程的教學。作者幾年的教學實踐表明,直接采用知名高校的教學內容、教學素材及教學方法進行本單位的CFD教學是不合適的,無法適應本單位研究生的認知水平和認知能力,無法取得滿意的教學效果。應根據本校研究生的認知特點進行CFD教學體系的建設。
2 合理設置課程教學方法
2.1 基于完整的理論體系開展教學
CFD是以計算機以依托,以編寫程序為基礎的一門學科,因此具備計算機編程能力是CFD特殊性的一部分。計算機程序只有在源代碼完整、規范、正確的情況下才能進行正確的運算。因此,無論針對什么層次的研究生,在進行該課程教學時,都必須做到內容周到、完整。
質量守恒方程、動量方程和能量守恒方程等三大守恒方程,以及模擬湍流流動的時均N-S方程及其封閉模型,是CFD的理論基礎,研究生必須理解掌握[4]。CFD采用的離散方法主要有有限差分法和有限容積法,目前主流的商業軟件都采用有限容積法,而有限容積法是在有限差分法基礎上發展起來的,因此需要深入地講解有限差分法和有限容積的基本離散原理。必須讓學生掌握擴散和擴散—對流兩種條件下的離散格式,掌握各種條件下控制容積節點系數和邊界系數的求解模型極其物理意義。三對角陣算法(TDMA)、交替方向隱式方法(ADI)等是CFD的重要內容,因為在內迭代層次上,需要對離散的線性代數方程組進行求解。對于對流—擴散問題,由于質量守恒方程與N-S守恒方程之間是非線性的關系,因此需要學習掌握SIMPLE—經典的分離式求解方法—的基本原理和方法。邊界條件的處理雖然相對比較簡單,但若處理不當,亦會導致程序無法運行,計算結果不正確,因此這部分內容也需重視。動量方程、能量方程、湍動能方程、湍流耗散率方程的邊界處理各有不同,其相應的處理方法,都需要學生理解掌握。
2.2 突出教學重點
實踐表明,CFD的理論基礎,即質量守恒方程、動量方程和能量守恒方程等三大守恒方程,尤其是方程中非穩態項、對流項、擴散項和源項的物理意義,必須花費大量時間進行充分的講解。原因在于,這部分內容物理概念抽象,涉及諸多非線性偏微分方程,難度較大,學生不易掌握,導致很多高校在本科教學中很少講或者不講這部分內容;對于本單位的研究生,專業基本功稍差,因此在學習這部分內容時普遍感覺有難度,看不懂、聽不明白。但對研究生而言,尤其是將來可能從事數值研究的研究生而言,掌握這部分內容是必須的,因為三大守恒方程是CFD的理論基礎。并且,只有充分理解和掌握守恒方程中各項的物理意義,才能應用有限容積法或有限差分法對偏微分方程進行數值離散,才能在此基礎上學習模擬湍流流動的基于時均N-S方程的經典模型。
有限差分法和有限體積法是CFD課程的核心內容之一,它將無法求得解析解的非線性偏微分方程數值離散成線性代數問題,從而獲得數值解。對本校層次的研究生而言,在理解和掌握有限差分法中以差分代替微分、差商代替微商的思想和有限體積法中的控制體積分的思想方面,存在一些困難。非線性偏微分方程及其定解條件的離散方程的相容性證明,數值解的收斂性及穩定性證明,對研究生而言,也存在理解上的困難。
以上兩部分內容是CFD的重中之重,對于本校層次的研究生而言,需要重復講解,一遍講解之后,了解研究生理解上的盲點,再針對盲點,有的放矢地進行第二遍講解,力求達到教學目的。對于這部分內容,務必從數學層面上、物理意義上,對其來龍去脈,進行深入講解,不能怕麻煩。
2.3 培養學生編程能力
對于知名高校的研究生而言,由于其編程基本功相對較好,在本科階段也學過數值分析與算法等課程,因此,在進行教學時,可以將重點放在基本原理的講解上,編寫CFD計算機程序可以由他們自己去完成。但對于本校層次的研究生而言,普遍存在由于編程基本功較差,無法應用所學CFD理論知識編寫程序,哪怕是最簡單的計算擴散問題的程序;反過來這又影響他們對CFD理論知識的理解和掌握。CFD作為一門基于計算機的新型獨立學科,能夠應用CFD理論進行流場計算程序的開發是基本能力與素質。并且,在科研及工程實踐中,很多時候需要對商業軟件進行二次開發(udf)[5-6],以滿足特定的模擬需求。因此,培養研究生的編程能力,是該課程教學的一項重要內容。作者在教學過程中,強制要求研究生必須自己動手編寫程序,從最簡單的擴散問題開始,先看別人編寫的程序,再在此基礎上自己學著寫,個人獨立完成。這作為他們課程考核的一部分。事實上,這樣做也確實取得了一些良好的效果。研究生在編寫程序的過程中,從無從下手到不斷發現問題,在摸索中不斷增強其對CFD相關知識點的理解和掌握,編程能力也大大提高。
2.4 結合FLUENT等CFD商業軟件
隨著FLUENT等CFD商業軟件的不斷發展,一些常見的、成熟的流體力學問題的模擬都可以基于商業軟件完成。CFD商業軟件平臺的背后就是CFD理論,因此,結合FLUENT等CFD商業軟件的具體使用,可以幫助研究生理解CFD的相關概念如SIMPLE算法、亞松弛因子、迭代、網格生成等。事實上,有些研究生在本科階段參加一些科研創新項目或畢業設計的時候也會一定程度上接觸到FLUENT等商業軟件,但他們僅會按圖索驥,卻不知其里。因此在課堂或課后安排研究生使用CFD商業軟件模擬具體的流體力學問題,再結合CFD相關知識點,解釋分析他們在使用軟件中遇到的困惑或不解,將能夠非常有效地幫助他們理解CFD相關知識點。與此同時,掌握了CFD理論知識,也能夠幫助他們更深入地了解商業軟件,從而更充分、高效地使用商業軟件,更好地拓展商業軟件的使用范圍。比方說,掌握CFD相關理論原理及知識和足夠的語言開發能力,研究生能夠對基于udf對FLUENT商業軟件進行程序的二次開發。
3 結語
筆者在該文中談了一些CFD教學方面的感想,主要內容可以概括為以下幾點:(1)計算流體力學是一個基于計算機編程的完整體系,因此我們在教學中要根據課程的特點,在教學過程中注重理論體系的完整性;(2)CFD教學必須重點突出,對守恒方程、有限差分法和有限體積法等內容必須進行重復地、鞭辟入里的講解;(3)在教學過程中必須培養強化研究生基于CFD編寫開發流場計算程序的能力;(4)在教學過程結合FLUENT等CFD商業軟件的使用促進研究生對CFD理論與知識點的理解。
參考文獻
[1]王福軍,周凌九,嚴海軍.計算流體力學課程教學改革與實踐[J].高等農業教育,2005(11):63-64.
[2]章大海,王建軍,王宗明,等.關于計算流體力學教學的若干思考[J].教書育人,2011(5):94-95.
[3]歐益宏,易蘭,齊勝,等.基于自主學習的研究生專業基礎課程教學策略探索[J].重慶交通大學學報:社科版,2014,14(1):118-121.
[4]李萬平.計算流體力學[M].武漢:華中科技大學出版社,2004.
[5]陶文銓.數值傳熱學[M].西安:西安交通大學出版社,2001.
[6]王福軍.計算流體動力學分析-CFD軟件原理與應用[M].北京:清華大學出版社,2004.