第一篇:cfd學習報告
CFD學習報告
姓名 段蒙 學號 M201370932 完成日期 2014 年4月17日華 中 科 技 大
學
CFD學習報告
一、幾何建模
以《計算流體動力學及其應用》課本上166頁處例子為參考,利用GAMBIT進行三維建模,具體問題為:冷水和熱水分別自混合器兩側沿水平切方向流入,在容器內混合后經過下部漸縮通道流入等徑的出流管,最后流入大氣?;旌掀魅鐖D1.1所示,圖1.1 混合器示意
具體繪圖過程為:
1.創(chuàng)建混合器主體:高度為8,半徑為10; 2.創(chuàng)建混合器的切向入流官:半徑為1,長度為10,并對創(chuàng)建好的入流官進行180度關于Z軸對稱復制;
3.將三個圓柱體合并為一個整體;
4.創(chuàng)建混合器主體下的圓錐:高度為5,小端半徑為1,大端半徑為10,方向Z軸反向;
5.創(chuàng)建出流小管:高度為5,半徑為1;
6.將混合器的上部、圓錐部分以及下部出流小管合并為一個整體; 上述步驟完成后所得的圖如圖1.2所示。
圖1.2 混合器整體配置圖
二、網格劃分:
1.對混合器內部流動區(qū)域劃分網格:Spacing選擇Interval size,并填入0.5,所得如圖2.1所示
圖2.1 混合器內部流動區(qū)域的網格2.檢查網格劃分情況:利用Examine Mesh功能查看底部圓錐面的網格劃分情況如圖2.2所示
圖2.2 混合器底部圓錐面的網格劃分情況
3.設置邊界條件:①指定邊界類型:將兩個入流管分別命名為inlet-1和inlet-2,類型為VELOCITY_INLET;出流管命名為outlet,類型設為PRESSURE_OUTLET;②指定區(qū)域類型:Action設為Add,Name中輸入FLUID,選擇所有體。
4.輸出網格文件:輸出網格文件為1.mesh
三、求解計算
啟動fluent軟件,選擇3d,進行三維計算,步驟如下:
1.檢查網格并定義長度單位:①導入網格文件1.mesh;②選擇Grid/Check命令,結果反饋如圖3.1所示;③光順網格;④確定長度單位:選擇Grid/Scale命令,單位選擇cm;⑤顯示網格:如圖3.2所示
圖3.1 網格檢查情況
圖3.2 fluent中顯示網格
2.確定計算模型:①設置求解器:Slover選擇Pressure Based,F(xiàn)ormulation選擇Implicit,Space選擇3D,Time選Steady;②啟動能量方程;③選擇湍流模型:選擇k-epsilon[2 eqn];3.定義材料屬性:water-liquid 4.設置邊界條件:①inlet-1速度為1m/s,湍流強度為5,入流口直徑為2,溫度為320;②inlet-2速度為1m/s,湍流強度為5,入流口直徑為2,溫度為280;③設置出流口的邊界條件:Gauge Pressure設為0,湍流強度和水力直徑分別為10和2,溫度為300 5.設置求解器參數(shù):①設置求解器:Pressure設為0.3,Density設為1,Body Forces為1,Momentum為0.7;②求解初始化;③設置殘差監(jiān)視器:Option選擇Plot 6.保存Case文件為1.cas 7.迭代求解計算:次數(shù)選為200次,迭代接近200時,計算收斂,曲線圖如圖3.3所示。
8.保存Data文件為1.dat
圖3.3殘差曲線
四、結果分析
讀取之前保存的計算結果數(shù)據(jù),進行結果分析 1.創(chuàng)建等值面
2.繪制溫度和壓力分布,結果如圖4.1,圖4.2
圖4.1溫度分布圖
圖4.2壓力分布圖
3.顯示垂直面上的速度矢量如圖4.3
圖4.3速度矢量圖
五、學習心得
通過本次課的學習,大致了解了CFD的原理和利用CFD進行模擬計算的過程,為以后進行更為深入的學習相關知識提供一有力的工具,同時,通過實例的模擬計算,熟悉了相關軟件的使用過程。但是,在這門課的學習過程中,也意識到自身的知識和技能儲備仍不足,以后應加強學習。
第二篇:CFD學習心得
關于網格的幾個誤區(qū)
盡管當前出現(xiàn)了不少使用無網格方法的FEA及CFD代碼,但是網格劃分依然是大多數(shù)CAE工作者們最重要的工作任務,對于高質量網格生成的重要性怎么強調都不過分。
但是如何生成高質量的或更精細的網格呢?查看網格生成軟件所輸出的網格質量報告是最基本的方式,使用者還需要對網格是否適用于自己的物理問題做出自己的判斷。
不幸的是,使用者對于“好網格”存在很多的誤區(qū)。如今已經很難在工程學科中找到關于網格劃分方面的課程,數(shù)值算法在大多數(shù)工程學科中成了選修課程。因此,新生代CAE使用者對于網格在CAE系統(tǒng)中的工作機理方面的欠缺也不足為怪了。這里有5個最主要的誤區(qū): 誤區(qū)1:好的網格必須與CAD模型吻合
越來越多的CAE使用者來自于原來的設計人員,他們在CAD方面受到了良好的培訓,因此他們傾向于CAE模型體現(xiàn)所有的幾何細節(jié)特征,他們認為更多的細節(jié)意味著計算結果能夠更加貼近于真實情況。
然而這種觀點是不正確的,好的網格是能夠解決物理問題,而不是順從CAD模型。
CAE仿真的目的是為了獲取物理量:應力、應變、位移、速度、壓力等。CAD模型應當是從物理對象中提取的。大量與物理問題不相干的或對于仿真模型影響較小的細節(jié)特征在建立CAD模型之前就應當進行簡化。因此,了解所仿真的系統(tǒng)中的物理細節(jié)是最基本的工作任務。好的網格應當簡化CAD模型并且網格節(jié)點是基于物理模型進行布置。這意味著:只有在充分了解所要仿真的物理系統(tǒng)前提下才可能劃分出好的網格。誤區(qū)2:好的網格一直都是好的
我們經常看到CAE使用者花費大量的心血在改變網格尺寸、拆解幾何及簡化幾何上,以期能夠獲得高質量的網格。他們仔細的檢查網格生成軟件輸出的網格質量報告,這是很有必要的。但是這事兒做得太過也不一定好,因為好的網格也不一定永遠都好,網格的好與壞,還取決于要仿真的物理問題。
例如,你生成了一套非常好的網格,其能夠很好的捕捉機翼的繞流,能夠很精確的計算各種力。但是當你將流動攻角從0°調整到45°,試問這網格還是好的網格嗎?很可能不是了。
好的網格總是與物理問題相關。當你改變邊界條件、改變載荷、改變分析類型、改變流動條件,好的網格也可能變成壞網格。誤區(qū)3:六面體網格總比四面體網格好
很多老的書籍會說六面體(四邊形)網格要比四面體(三角形)網格要好,同時告訴你說引入四面體(三角形)網格會造成很大的數(shù)值誤差。一些情況下這種觀點是正確的,特別是15~20年前。
歷史上,人們熱衷于六面體網格,主要有以下原因:1)在當時,CFD求解器僅能使用結構網格;2)計算條件不允許使用大量網格,為了節(jié)省內存和節(jié)省時間;3)非結構網格還不成熟。
在過去的幾十年里,大部分商用FEA及CFD求解器技術獲得的了極大的發(fā)展,對于絕大多數(shù)問題,利用六面體網格及四面體網格都能獲得相同的計算結果。當然,四面體網格通常需要更多的計算資源,但是其能在網格生成階段為使用者節(jié)省大量的時間。對于大多數(shù)工程問題,六面體網格在計算精度方面的優(yōu)勢已經不再存在了。
對于一些特殊的應用場合,如wind Turbine,泵或飛機外流場計算,六面體網格依然是首選的網格類型,主要原因在于:1)工業(yè)慣例;2)易于理解的物理情況(大多數(shù)使用者都知道應當如何對齊網格;3)對于這類幾何模型,存在專用的六面體網格生成工具。
然而,對于大多數(shù)FAE及CFD使用者,如果幾何模型稍微復雜一點,則需要花費大量的時間在六面體網格生成上,計算結果還不一定更好。計算所節(jié)省的時間相對于網格生成所花費的時間,有時候顯得得不償失。
誤區(qū)4:自動網格生成(automatic meshing)的方式不可能產生好的網格 當軟件提供商在證明他的軟件是高端的時候(當然價格通常也是高端的),他通常會告訴你說他們的軟件允許手動控制所有的操作參數(shù)。潛在意思就是說只有手動控制才能生成好的網格。
當然,對于銷售員來講,好的網格需要手動控制。但是對于工程師來說,他們需要理解這是一個誤導:好的網格軟件應當擁有足夠的智能化以分析幾何模型:計算曲率、尋找縫隙、尋找小的特征、尋找毛刺邊、尋找尖角、擁有智能化的默認設置等…
這些工作都應當是自動網格工具的職責。對于大多數(shù)使用者來講,軟件應當對于輸入的幾何模型能夠獲取更多的信息以及更高的精度。因此,軟件應該能夠提供更好的設置以獲取高質量的網格。當然,對于長年累月使用相同的幾何模型及軟件的使用者來說,情況可能有所不同。這些使用者對于物理模型了解得非常清楚,而網格軟件卻沒辦法了解他們的物理問題,因此他們對手動操作的需求更多,而且他們也能更好的駕馭手動操作。不管怎樣,對于網格質量兩說,一個好的自動網格軟件能夠給予無經驗的使用者更多的幫助。手動控制主要是為一些對物理問題非常了解的有經驗的使用者提供的。
誤區(qū)5:好的網格其數(shù)量一定特別多
由于HPC資源很容易獲取,甚至一些學生都能進行千萬級別網格的CFD問題求解,因此在多數(shù)CAE使用者眼里,大數(shù)量的網格意味著高保真度。
這種看法并不完全正確。打個比方,在CFD計算中,如果使用者使用標準壁面函數(shù),則所有放置于粘性子層內的網格都會失效,這不僅會浪費大量的計算時間,也有可能會造成非物理解。特別對于LES模擬,過于西米的網格可能會造成打的誤差及非物理解。
精細的網格并不意味著好的網格。網格劃分的目的是為了獲取離散位置的物理量。好的網格是為計算目的服務的網格,因此,當你的計算結果具有以下特征時:1)物理真實;2)對于項目來講足夠精確,則你的網格已經足夠好了。
另一個關于此誤區(qū)的例子在于大多數(shù)使用者習慣使用全3D模型。在他們的眼里,3D全模型是真實的。然而,當問題對稱的時候,使用部分模型將會獲得更好的計算結果,因為強制施加了對稱約束。當問題是軸對稱的時候,使用2D計算模型往往能夠獲得比3D全模型更精確的結果。很多CAE新手沒有足夠的時間去完全理解仿真系統(tǒng)中的物理模型,因此很難對幾何模型進行任何簡化。當前,CAE計算結果依然依賴于網格。好的網格應當具備以下特征:
1、能夠求解所研究的問題
2、具有求解器能夠接受的網格質量
3、基于問題簡化網格
4、適合項目要求
CFD軟件技能的提高:簡述
去年出版了一本關于ANSYS CFD 入門的書,里面對CFD操作流程進行了全面描述。同時采用step by step的方式給出了各個流程中的詳細實例。那是一本關于ANSYS CFD系列軟件的操作說明書,同時也是一本關于CFD計算基本流程的說明書。相對于前者,我更傾向于后者。只因相對于軟件操作來說,了解并入門CFD計算的一般流程似乎更為重要。不過那僅僅只是一本入門級的書,讀者若想要進一步提高自己CFD計算能力,還有較多的工作要做?;谝陨峡紤],吾萌生了再寫一本續(xù)篇的想法,只求在入門的基礎上,進一步提高讀者的CFD應用能力。
很多人用了幾年的CFD軟件,遇到新的問題還是百愁莫展。關于軟件和理論誰更重要的爭論已經夠多了,這里不再進行討論,這里只是討論如何才能提高CFD軟件操作的技能。在前面的很多博文中已經對如何更快的CFD入門進行了討論,本文簡要的分析如何才能在入門的基礎上進一步提高軟件操作技能。
眾所周知,軟件操作的熟練程度直接關系著工作效率,雖然說CFD計算模型準備的時間相對于其計算時間來講幾乎可以忽略,但是對于軟件操作者來說,能夠在軟件操作上節(jié)省時間無疑也是非常有吸引力的。這里以CFD計算的三個關鍵環(huán)節(jié),簡單的描述如何才能在軟件入門的基礎上,進一步加強自己的軟件操作技能。
簡單來講,利用CFD計算流體流動及傳熱過程大致可分為三個步驟:前處理、計算求解以及后處理。其中前處理主要用于計算模型的準備;計算求解主要是軟件在做,對于非開源的軟件來講,這部分受制于軟件,人工可干預的部分很少;計算后處理則是將計算結果以圖形化的方式呈現(xiàn),方便計算者對物理現(xiàn)象的理解。
對于計算前處理來說,在了解了計算網格生成的一般過程之后,首先需要了解的是:在特定的環(huán)境下如何選擇合適的網格類型;如何選擇和設置網格參數(shù);對于復雜的幾何模型,如何對其進行處理以適合于網格的生成;對于不符合要求的計算網格,如何進行編輯和修改。
對于求解器來說,雖然求解過程可控參數(shù)較少,但是對于物理模型的描述,則存在非常多的參數(shù)需要使用者關注。除開那些需要用戶的理論背景才能很好確定的參數(shù)外,還存在一些影響著計算收斂性或計算精度方面需要考慮的參數(shù)。雖然目前的計算軟件中一些默認參數(shù)已經能夠很好的應付大多數(shù)常規(guī)的計算問題,但是對于特定的復雜問題,正確的修改這些參數(shù),有時候會極大的提高計算收斂過程以及計算精度。
個人認為,相對于前處理和計算求解來說,計算后處理更加重要。主要是因為計算后處理直接與設計過程相聯(lián)系。當然,要用好后處理,除了需要計算者對問題背景理論有相當?shù)难芯恐?,還需要有足夠的審美觀。前面提過,這里不談有關理論方面的問題,因為這是每一個計算者都必須不斷加強的內功。這里只說一下后處理者的審美觀問題。我堅持認為:“漂亮的東西不一定是正確的,但是不漂亮的東西一定是錯誤的”。甚至將這一理論應用到生活中的方方面面。因此,如何將后處理數(shù)據(jù)以最美觀的方式展示出來,這的確也需要相當?shù)拿缹W修養(yǎng)。
后續(xù)的系列文章將會圍繞這三個話題進行展開,詳細描述在CFD軟件提高過程中需要關注的內容,以期達到軟件中級使用者的程度,即達到遇到全新的流動問題,能夠提出可行的解決辦法。[系列]CFD軟件技能的提高:從前處理軟件選擇開始
“選擇”是一件極為痛苦的事情。沒有選擇很痛苦,有很多候選項而不知道如何進行選擇似乎更為痛苦。流體計算前處理似乎就存在這一問題。廣義上的流體計算前處理通常指的是從幾何模型的創(chuàng)建到計算模型的生成這一過程。但是我們更愿意接受將前處理定義為從幾何模型的導入到網格生成這一過程。因為相對于復雜的工程問題,其幾何模型往往非常復雜,計算工作者更愿意使用專業(yè)的幾何建模軟件來生成此類幾何。而網格劃分之后的計算參數(shù)設定,則涉及到眾多的行業(yè)理論背景,往往將其歸結到求解器設定里面。如果將前處理僅僅限定在幾何模型的導入至計算網格的生成的話,那么此過程則可以完全與計算求解分離開,形成相對獨立的操作流程。也是基于這一點,市面上出現(xiàn)了相當多的各種類型的CFD前處理軟件。從這一點出發(fā),任何一款前處理軟件其實都可以適用于任何求解器。
再來談談固體有限元網格和流體網格的區(qū)別。從本質上來說,它們是沒有區(qū)別的,都是記錄了各節(jié)點的坐標值以及節(jié)點間的連接關系。但是由于有限元計算算法與有限體積法(大多數(shù)流體求解器采用的算法)的差異,導致了網格劃分過程中需要注意的內容不一樣,這也導致了一些網格生成軟件更偏重于固體計算或流體計算。那么它們的差異在哪里呢?使用固體有限元計算的筒子可能會聽到諸于“一階單元”“二階單元”“高階單元”之類的概念,如下圖所示,左側為一階四面體單元,包含四個節(jié)點。右圖為二階四面體單元包含有10個節(jié)點。雖然說節(jié)點數(shù)量不一樣,但是僅僅只是反應在計算求解過程中,而在網格劃分過程中則沒有任何差異。對于流體計算網格則沒有階次的概念,可以認為所有的流體計算網格均為一階網格。
對于固體有限元和流體計算前處理還存在的區(qū)別在于:固體有限元計算,在前處理過程中需要指定單元屬性、材料類型等等參數(shù)。因此固體前處理過程比流體前處理過程要包含更多的操作。流體計算前處理僅僅只需要輸出網格節(jié)點坐標、節(jié)點間的連接關系等信息即可,比起固體計算前處理要簡單一些。這也是一些專職流體前處理軟件不適合做固體前處理的原因。當然,流體計算也有其特別的地方,比如說流體計算存在固體計算中所不存在的邊界層問題,反映在前處理上則為邊界層網格的生成上。專職的流體前處理軟件可能會很方便的生成流體邊界層,而固體前處理軟件則需要花費更多的時間來處理這部分工作。
邊界層網格通常為棱柱層網格,主要是因為邊界層范圍內需要網格存在較好的正交性,要求近壁面法向方向網格存在較好的正交性,而且由于邊界層往往都很薄,所以這類網格通常存在很大的長徑比(幾
十、幾百甚至上千)。對于固體計算來說,大的長徑比網格往往是不被允許的,故在固體前處理軟件中對這類網格進行檢查是,很有可能會被標記為不合格網格。這也是利用固體前處理軟件生成流體網格時需要關注的內容。
另外,在固體有限元計算中常常存在零維、一維、二維網格,比如說集中質量、線網格和板殼網格等,這些網格在流體計算中均不存在。流體網格中對于無厚度的面,則僅僅只是對網格節(jié)點進行標記,而不會直接生成所謂的片體網格。除了2D計算所用的二維網格外,流體計算使用的是三維網格。更有一些求解器(如CFX等)還不支持2D網格計算。順便多說一句,就算是2D網格流體計算,求解器也是默認網格存在厚度的。
言歸正傳,目前流體通用計算前處理軟件很多,比如說目前支持ANSYS系列流體計算的ICEM CFD,專職做流體計算網格的PointWise與Gridgen,六面體網格生成軟件GridPro,Altair公司的前處理軟件Hypermesh,希臘ETA CAE System S.A.公司的ANSA等,這些軟件可以說是目前網格生成領域比較流行的工具。當然這里不去討論一些軟件自帶的前處理軟件,比如說ANSYS、STAR CCM+、ESI CFD等軟件也都帶有自己的前處理軟件。
一般認為,HyperMesh與ANSA更偏重于固體有限元前處理,但是也能夠生成流體計算網格,它們的優(yōu)勢在于面網格的生成。ICEM CFD、PointWise與Gridpro更偏重于流體前處理,而Pointwise由于Gridpro只能生成流體網格。ICEM CFD既可以生成流體網格也可以生成固體網格,但更偏重于生成流體網格。這里簡單介紹一下:
HyperMesh:Altair公司的Hypermesh是一款綜合的前處理軟件,其能夠生成有限元計算中所需的所有網格類型。對于流體計算來說,也能夠較為方便的生成邊界層網格。該軟件采用幾何剖分的方式可以生成全六面體網格。在Hypermesh中,若要利用軟件生成邊界層網格,則軟件會自動將內部網格轉化成四面體非結構網格,或許用戶可以精細的調整邊上的bias以生成邊界層網格,但是個人認為還是比較麻煩的。當然也許有更加方便的方式我還沒有找到。不過如果用戶既做流體計算也做固體計算的話,強烈推薦使用這個。
ANSA:此軟件是Hypermesh的直接對手,在汽車領域應用甚廣。所有特性與HM類似。但是在生成六面體網格方面,除了提供類似HM的幾何剖分方式還,似乎還有基于虛擬block拓撲的方式,個人認為還是比較好用的。此軟件我接觸得少,不予評價。
ICEM CFD:這軟件是被ANSYS收購的。起先此軟件被收購后主要用于CFX的前處理。后來ANSYS公司收購了FLUENT,發(fā)現(xiàn)GAMBIT雖然功能比較強大,但是界面不怎么美觀,畢竟是基于UNIX環(huán)境而開發(fā)的軟件,將其用到Windows下自然不是那么的順暢,需要安裝Exceed,而且還經常卡頓卡頓的。在這種情況下,ANSYS就把ICEM CFD推到了前臺,該軟件也成了ANSYS CFD系列的御用前處理器。而GAMBIT的命運就比較悲催了,可能會在其功能被Mesh模塊完全吸收后消失在人們的視線中。ICEM CFD的功能強大,可以說是CFD前處理領域頂級軟件。其支持獨特的虛擬Block拓撲構建六面體網格方式,也支持非結構網格的自動生成,構建邊界層網格也極其方便。當然現(xiàn)在也有關于ICEM CFD生成非結構網格方面的一些說法,比如說沒有size function,這讓習慣了GAMBIT的童鞋很難受。還有就是ICEM CFD生成非結構網格數(shù)量超多的問題。當然這些都不是什么大問題,可以通過軟件的操作技能的提高得到彌補。除了流體外,ICEM CFD其實還支持固體有限元網格的生成。對于主要從事CFD計算的人們來講,ICEM CFD可以當做首選的前處理軟件。其支持絕大多數(shù)流體計算求解器,更重要的是其能夠無縫的支持FLUENT,而FLUENT網格實際上已經相當于流體網格的標準了,絕大多數(shù)流體求解器其實也支持輸入FLUENT 的msh網格格式。
Pointwise:來自于軟件gridgen,據(jù)官網介紹,此軟件來自于通用公司研究F-16戰(zhàn)斗機時所開發(fā)。該軟件能夠提供對網格的全面控制,因此適合于CFD高級用戶。當然如果是對于CFD新手的話,操作此軟件可能會覺得稍顯麻煩。該軟件同時提供了結構昂個與非結構網格生成,能生成極高質量的網格。但是此軟件無法生成固體計算網格。因此如果是專業(yè)的CFD用戶,可選擇此軟件作為前處理器。由于Gridgen與此軟件同出一轍,就不分開討論了。
GridPro:這軟件據(jù)說來頭也聽說,說是專為NASA開發(fā)的CFD前處理器。不過不管其來頭有多大,該軟件無法生成非結構網格是一大硬傷。對于異常復雜的工業(yè)CFD模型,如果要完全生成結構網格,無疑需要耗費大量的精力,甚至很多時候都是難以做到的。不過話說回來,該軟件生成的結構網格的確是漂亮得讓人心醉,對于簡單易生成結構網格的幾何模型,選擇此軟件也是不錯的選擇。不過工作中如果常常與復雜幾何打交道的話,可以說此軟件不太適合。此軟件雖然在6.0版本之后對GUI進行了重要改進,不過幾何的輸入接口仍然還有極大的提升空間。
第三篇:CFD學習心得以及推薦書目
偶也說一點。
偶原來是做實驗的,CFD和NHT上課學過一點,沒學到什么東西。研究生畢業(yè)前半年,覺得身為流體機械的master不懂CFD沒臉見人,于是就自己再學。說實話,教材,當時覺得沒有一個是很系統(tǒng)明了的。所看的書基本是北航的《計算流體力學基礎》(忘了作者)、《計算流體動力學》(馬鐵尤),這兩個比較老,主要著重于可壓縮流的計算。較新的可壓縮流計算可以看看《應用計算流體力學》(朱自強)和《葉輪機械跨聲速及亞聲速流場的計算方法》(清華的王保國)?!稊?shù)值傳熱學》(陶文銓)、《計算傳熱學的近代進展》(陶文銓),主要著重于不可壓流的計算。此外還有吳子牛的一本書,不記得名字,思路清晰,簡明扼要。劉超群的一本多重網格法的專著,附帶的源代碼很多,即使不作多重網格,也是很有價值的。
因為沒有老師,所以看書就沒有什么章法,看不懂就跳過,往后看,說不定就懂一點,然后回頭重新看。沒事就看看,仔細看,多了就明白了。還可以在internet上搜索老外的教材和lecture notes。初學CFD,最忌急躁。很多看不懂是正常的,指望全部內容一次看懂是不可能的(這不是看小說)??瓷弦欢螘r間,大概幾個月,看多了,腦子里面的概念就系統(tǒng)了。很重要的是這兩大類(可壓/不可壓)的計算方面的一些重要的區(qū)別和特點,主要體現(xiàn)在方程組形式、求解方式、邊界條件的處理、物理上的著重點等等。這些概念很重要,即使不編程,實用商業(yè)軟件的時候如果沒有清晰的概念,就會在求解設置上犯錯(有人算跨音速噴管居然用常密度氣體,典型的基本概念不清)。
肯定會碰到大量的公式的。沒別的,硬著頭皮看,但是腦子要清醒,不能暈。如kaisa說,就是那么幾個守恒關系(質量、動量、能量、組分……)。而且這些公式都是一個形式——對流擴散方程,搞清楚那些是流動項(對流項),那些是擴散項,那些是源項,這樣主干就清晰了。枝節(jié)的問題相對雜一些,那只能硬著頭皮讀。
如果著重于利用商業(yè)軟件解決問題,只要有足夠的基本概念就可以參考軟件的文檔很快入門了。必須掌握英文閱讀,實際上不難,4級水平足以。照著tutorial做幾個就有底了。多思考,然后越做越順手的。
網格是關鍵,必須把網格做好。首先得清楚計算對網格的要求,特別是紊流計算。實際做網格要花很多功夫,要慢慢磨練。我最先用過AUTODesk Inventor 6 + GAMBIT 2,還算是很熟悉了。不過現(xiàn)在覺得GAMBIT確實落后了,很費勁?,F(xiàn)在用的是ICEMCFD。最先感覺ICEMCFD無從下手,因為模塊太多,不清楚之間的關系,不知道那些是主要的。偶推薦先研究HEXA模塊,直接從tutorial pdf文件的HEXA那一部分開始學習,其他的都不管。然后就會漸入佳境的。
如果還想深入編程,就不能滿足基本概念,必須硬著頭皮啃教材里面的算法、算例講解和源代碼了。《數(shù)值傳熱學》里面多維熱傳導和邊界處理、SIMPLE算法,《計算傳熱學的近代進展》里面的非結構網格Denolay生成法,還有一些其他資料上的Euler方程Remann間斷解、1D可壓縮流的計算格式……我讀了很多遍。必須找別人的代碼讀,否則不知道怎么編程。最先讀了陶文銓書后面的那個后臺階流動的SIMPLC程序、XJTU的2D的SIMPLE算法教學程序。這些相對比較短,幾頁紙罷了。然后是比較長的,《計算傳熱學的近代進展》后面的非結構網格Denolay生成代碼,劉超群書后的多重網格法葉片計算程序。這些還好,雖然注釋不多,但是算法都在書里面。后來想找可壓縮源代碼讀就難了,好不容易找到一個法國人的2D非結構網格可壓縮流求解程序NSC2KE,30多個文件,好幾十頁,注釋很少,還有法文的;在畢業(yè)的博士師兄故紙堆里找到一個老師編寫的跨音速流3D薄層NS方程程序,幾乎沒有注釋,只有不知道誰隨手做的一點筆記,也是幾十頁的代碼。只能硬著頭皮慢慢讀,因為想找到自己感興趣的問題相關的、有詳細算法介紹和注釋的代碼看是不可能的。讀懂一些源代碼之后,我想就算小成了。然后自己寫程序就有底了。
如何才能成為CFD高手
呵呵,好久沒思考這個問題了,記得剛接觸CFD時,也是一臉惶恐,這個不懂,哪個不知,整個灰頭土臉,還得小心老板盤問,同學比較!痛苦+郁悶ing!時間長了,臉皮厚了,也學到一點東東,但是心里依然有種說不出的煩悶,就是為什么我不懂的有那么多?我什么時間也能成為一個高手?
仔細總結了一下,其實也成為計算流體力學也不是很難,下面就簡單敘述一下: 1.所謂計算流體力學,顧名思義,需要計算和流體力學知識,要成為高手,首先要有扎實的數(shù)學功底和流體力學知識。數(shù)學是很難弄的,有些人(包括我)看見偏微分就煩,看見老長老長的數(shù)學推導就想略過。其實這和國內的教科書有很大關系,因為從小看到的數(shù)學書都是冷冰冰,讓人怪不舒服的。所以如果現(xiàn)在要補數(shù)學,首先要找些有趣點的教材。這個非常關鍵,沒有興趣學數(shù)學還不如自殺痛快!對于流體力學,尤其是紊流這部分,說法太多,難以一一詳述,到現(xiàn)在連什么是紊流都沒有一個準確性定義,苦呀!各種不同的定義方法和描述方法,像什么混合長度等等,決定了各自的適用范圍,建議對于這一部分做個詳細的分類了解。其實,計算流體力學說到底,就是那三個守恒公式,能量、質量、動量,了解起來很容易。關鍵是各種假設太多,痛苦ing!什么時間,我們直接研究流體分子,把假設全干掉,那就爽了,不過估計,我是沒希望看到了!哈哈!
2.第二點,要學會編程。這又涉及到數(shù)學,因為什么網格化分,方程離散,差分迭代等等其實都是數(shù)學的玩意。數(shù)學不好,肯定搞不懂那一堆一堆的符號是裝飾還是垃圾,哈哈!推薦學門高級點的語言,VF很有歷史,VC很難學,但你一定要學一門。只有通過編程,你才能了解計算流體力學究竟是如何一回事。
3.要學軟件,自己變程是學個方法,現(xiàn)在大部分人都是在用商業(yè)軟件。像流行的fluent,star-cd等等,雖說不是針對性軟件,效率低,精度低,但要自己做個計算復雜流場的軟件,還是要慎重思考。學軟件其實不難,因為大部分工作都已經做好了,我們要做的就是告訴軟件要做一個什么樣的問題,有點像傻瓜相機。簡單說來CFD可分三步,建模,求解,后處理。建模包括繪制物理模型,網格化分,設定邊界條件等。繪制物理模型(CAD),很簡單多數(shù)商業(yè)軟件都有專門的軟件,也可以選擇復雜的ug,proe,solidworks,這和個人愛好與軟件資源有關,在此不多作評論,可以挨個試試,找個順手的。關于網格化分,除了CFD軟件自帶的軟件,可以嘗試學這么幾個,icemcfd,gridgen,等。邊界條件都是在CFD軟件中設定,無非壓力速度質量。關于后處理,一定要有足夠的重視!這一部分是重中之重,計算的結果別人是看不懂的,一定要有誨人不倦的精神,要讓傻瓜都愿意看,都能看懂。當然最關鍵的是確定數(shù)據(jù)的取舍,因為計算的好處便是能得到一大堆各式各樣的數(shù)據(jù),一定要挑出那些和計算要求相關的,能說明問題的結論。然后就是數(shù)據(jù)的表達問題,也挺簡單,等值線,矢量,數(shù)值曲線。要選一個最簡潔明了的。推薦軟件fieldview,tecplot(這個東東有點笨)。
4.要有好的硬件設備,弄著PentiumI做計算肯定能做,但你肯定被拋在了時代的后面,你的結論肯定有種歷史滄桑感。硬件也簡單,CPU要快,而且要抗造,別動上幾個小時就冒煙;內存一定要大,這樣你才敢算個像樣的問題,要不然你拿著50個網格,還是用計算器算比較好。哈哈;再就是顯卡,顯存要夠大,GPU要夠快;硬盤也要夠大夠快。別弄著個250M(據(jù)說已經停產了,但我用過)的硬盤去存東東;最關鍵的是主板,一定要夠穩(wěn),夠快,要不然,你前面的東東,再好都白費。關于顯示器,我很痛苦,實驗室給我弄得syncmaster743df,讓我的眼睛每天都像個兔子,慘不忍睹!當然最爽的是弄臺工作站耍,這是我今后的努力目標,不為別的首先要告別這一堆眼藥水!
5.要有一顆仁慈的心。計算機這東西太笨,在出錯的時候不要把它暴扁。好了,老板在靠近,我要先閃!推薦書籍:
中文:陶文銓《數(shù)值傳熱學》,我認為國內的一個經典。吳望一《流體力學》。
英文:太多了,我感覺都不錯,有空到我的FTP自己找吧。軟件:star-cd,fluent,ug,icemcfd,fieldview,origin.計算流體力學基本原理
作者: 吳子牛編著 索書號:52.71/C18 SS號:10833073 出版日期:2001年2月第1版 頁數(shù):281
應用計算流體力學
作者: 朱自強等著 索書號:O35/59 SS號:10307347 出版日期:1998年8月第1版 頁數(shù):222
流體力學與應用數(shù)學講座(4)計算流體力學 作者: 趙國英 吳漢明 整理 索書號:52.7/225 SS號:10217136 出版日期:1985年11月第1版 頁數(shù):162
計算流體力學導論 作者: CHUEN YEN CHOW 索書號:52.7-352 SS號:10248445 出版日期:1987年2月第1版 頁數(shù):458
計算流體力學
作者: 魏茂樂 楊嶺 索書號:52.7/225 SS號:10131300 出版日期:1985年11月第1版 頁數(shù):162
計算流體力學
作者: 劉順隆 鄭群 索書號:O35/L72 SS號:10190646 出版日期:1998年5月第1版 頁數(shù):353 計算流體力學的理論、方法及應用
作者: 吳江航 韓慶書著 索書號:52.7/6032 SS號:10347084 出版日期:1988年5月第1版 頁數(shù):293 計算流體力學
作者: 陳材侃 索書號:O35/C37 SS號:10201499 出版日期:1992年12月第1版 頁數(shù):341
計算流體力學基礎
作者: 蘇銘德 黃素逸 索書號:D35/S87 SS年3月第1版 頁數(shù):497
號:10200305 1997出版日期:
第四篇:個人cfd經驗總結
借寶地寫幾個小短文,介紹CFD的一些實際的入門知識。主要是因為這里支持Latex,寫起來比較方便。
CFD,計算流體力學,是一個挺難的學科,涉及流體力學、數(shù)值分析和計算機算法,還有計算機圖形學的一些知識。尤其是有關偏微分方程數(shù)值分析的東西,不是那么容易入門。大多數(shù)圖書,片中數(shù)學原理而不重實際動手,因為作者都把讀者當做已經掌握基礎知識的科班學生了。所以數(shù)學基礎不那么好的讀者往往看得很吃力,看了還不知道怎么實現(xiàn)。本人當年雖說是學航天工程的,但是那時本科教育已經退步,基礎的流體力學課被砍得只剩下一維氣體動力學了,因此自學CFD的時候也是頭暈眼花。不知道怎么實現(xiàn),也很難找到教學代碼——那時候網絡還不發(fā)達,只在教研室的故紙堆里搜羅到一些完全沒有注釋,編程風格也不好的冗長代碼,硬著頭皮分析。后來網上淘到一些代碼研讀,結合書籍論文才慢慢入門??梢哉f中間沒有老師教,后來賭博士為了混學分上過CFD專門課程,不過那時候我已經都掌握課堂上那些了。
回想自己入門艱辛,不免有一個想法——寫點通俗易懂的CFD入門短文給師弟師妹們。本人不打算搞得很系統(tǒng),而是希望能結合實際,闡明一些最基本的概念和手段,其中一些復雜的道理只是點到為止。目前也沒有具體的計劃,想到哪里寫到哪里,因此可能會很零散。但是我爭取讓初學CFD的人能夠了解一些基本的東西,看過之后,會知道一個CFD代碼怎么煉成的(這“煉”字好像很流行啊)。歡迎大家提出意見,這樣我盡可能的可以追加一些修改和解釋。言歸正傳,第一部分,我打算介紹一個最基本的算例,一維激波管問題。說白了就是一根兩端封閉的管子,中間有個隔板,隔板左邊和右邊的氣體狀態(tài)(密度、速度、壓力)不一樣,突然把隔板抽去,管子內面的氣體怎么運動。這是個一維問題,被稱作黎曼間斷問題,好像是黎曼最初研究雙曲微分方程的時候提出的一個問題,用一維無粘可壓縮Euler方程就可以描述了。
這里
這個方程就是描述的氣體密度、動量與它們各自的流量(密度流量)隨空間變化(和能量
隨時間的變化(,能量流量),動量流量)的關系。
在CFD中通常把這個方程寫成矢量形式
這里
進一步可以寫成散度形式
一定要熟悉這種矢量形式
以上是控制方程,下面說說求解思路。可壓縮流動計算中,有限體積(FVM)是最廣泛使用的算法,其他算法多多少少都和FVM有些聯(lián)系或者共通的思路。了解的FVM,學習其他高級點的算法(比如目前比較熱門的間斷有限元、譜FVM、譜FDM)就好說點了。針對一個微元控制體,把Euler方程在空間積分
用微積分知識可以得到
也就是說控制體內氣體狀態(tài)平均值的變化是控制體界面上流通量的結果。因此我們要計算的演化,關鍵問題是計算控制體界面上的。
FVM就是以這個積分關系式出發(fā),把整個流場劃分為許多小控制體,每個控制體和周圍相鄰的某個控制體共享一個界面,通過計算每個界面上的通量來得到相鄰控制體之間的影響,一旦每個控制體的變化得到,整個流場的變化也就知道了。
所以,再強調一次,關鍵問題是計算控制體界面上的。初學者會說,這個不難,把界面上的有道理!
插值得到,然后就可以計算
。咱們畫個圖,有三個小控制體 i-1到i+1,中間的“|”表示界面,控制體i右邊的界面用表示,左邊的就是。
| i-1 | i | i+1 |
好下個問題:每個小控制體長度都是?
如何插值計算界面上的最自然的想法就是:取兩邊的平均值唄,但是很不幸,這是不行的。
那么換個方法?直接平均得到
還是很不行,這樣也不行。
?
我靠,這是為什么?這明明是符合微積分里面的知識???
這個道理有點復雜,說開了去可以講一本書,可以說從50年代到70年代,CFD科學家就在琢磨這個問題。這里,初學者只需要記住這個結論:對于流動問題,不可以這樣簡單取平均值來插值或者差分。如果你非要想知道這個究竟,我現(xiàn)在也不想給你講清楚,因為我眼下的目的是讓你快速上手,而且該不刨根問底的時候就不要刨根問底,這也是初學階段一種重要的學習方法。好了,既然目的只是為了求,我在這里,只告訴你一種計算方法,也是非常重要、非常流行的一種方法。簡單的說,就是假設流動狀態(tài)在界面是不連續(xù)的,先計算出界面它們用某種方法計算出
兩邊的值,和,再由
。上述方法是非常重要的,是由一個蘇聯(lián)人Godunov在50年代首創(chuàng)的,后來被發(fā)展成為通用Godunov方法,著名的ENO/WENO就是其中的一種。好了,現(xiàn)在的問題是: 1 怎么確定2 怎么計算和
是均
對于第一個問題,Godunov在他的論文中,是假設每個控制體中勻分布的,因此
第二個問題,Godunov采用了精確黎曼解來計算
。什么是“精確黎曼解”,就是計算這個激波管問題的精確解。既然有精確解,那還費功夫搞這些FVM算法干什么?因為只有這種簡單一維問題有精確解,稍微復雜一點就不行了。精確解也比較麻煩,要分析5種情況,用牛頓法迭代求解(牛頓法是什么?看數(shù)值計算的書去,哦,算了,現(xiàn)在暫時可以不必看)。這是最初Godunov的方法,后來在這個思想的基礎上,各種變體都出來了。也不過是在這兩個問題上做文章,怎么確定,怎么計算
。Godunov假設的是每個小控制體內是均勻分布,也就是所謂分段常數(shù)(piecewise constant),所以后來有分段線性(picewise linear)或者分段二次分布(picewise parabolic),到后來ENO/WENO出來,那這個假設的多項式次數(shù)就繼續(xù)往上走了。都是用多項式近似的,這是數(shù)值計算中的一個強大工具,你可以在很多地方看到這種近似。
Godunov用的四精確黎曼解,太復雜太慢,也不必要,所以后來就有各種近似黎曼解,最有名的是Roe求解器、HLL求解器和Osher求解器,都是對精確黎曼解做的簡化。
這個多項式的階數(shù)是和計算精度密切相關的,階數(shù)越高,誤差就越小。不過一般來說,分段線性就能得到不錯的結果了,所以工程中都是用這個,F(xiàn)luent、Fastran以及NASA的CFL3D、OverFlow都是用這個。而黎曼求解器對精度的影響不是那么大,但是對整個算法的物理適用性有影響,也就是說某種近似黎曼求解器可能對某些流動問題不合適,比如單純的Roe對于鈍頭體的脫體激波會算得亂七八糟,后來加了熵修正才算搞定。
上次(http://gezhi.org/node/399)說到了求解可壓縮流動的一個重要算法,通用Godunov方法。其兩個主要步驟就是 1 怎么確定2 怎么計算和
這里我們給出第一點一個具體的實現(xiàn)方法,就是基于原始變量的MUSCL格式(以下簡稱MUSCL)。它是一種很簡單的格式,而且具有足夠的精度,NASA著名的CFL3D軟件就是使用了這個格式,大家可以去它的主頁(http://cfl3d.larc.nasa.gov/Cfl3dv6/cfl3dv6.html)上看手冊,里面空間離散那一章清楚的寫著。MUSCL假設控制體內原始變量(就是)的分布是一次或者二次多項式,如果得到了這個多項式,就可以求出控制體左右兩個界面的一側的值和。
我們以壓力p為例來說明怎么構造這個多項式。這里我只針對二次多項式來講解,你看完之后肯定能自己推導出一次多項式的結果(如果你搞不定,那我對你的智商表示懷疑)。OK,開始 假設,這個假設不影響最終結論,因為你總可以把一個區(qū)間線性的變換到長度為1的區(qū)間。
假設壓力p在控制體i內部的分布是一個二次多項式,控制體i的中心處于和。
實
處,左右兩個界面就是這里先強調一個問題,在FVM中,每個控制體內的求解出來的變量際上是這個控制體內的平均值所以。
。我們知道似表示為,和,等距網格情況下和處的導數(shù)可以近
那么
由上述三個有關a,b和c的方程,我們可以得到
這樣就可以得到f(x)的表達式了,由此可以算出通常MUSCL格式寫成如下形式
對應我們的推導結果(二次多項式假設)。
但是這不是最終形式。如果直接用這個公式,就會導致流場在激波(間斷)附近的振蕩。因為直接用二次多項式去逼近一個間斷,會導致這樣的效果。所以科學家們提出要對間斷附近的斜率有所限制,因此引入了一個非常重要的修改——斜率限制器。加入斜率限制器后,上述公式就有點變化。
和
這里是Van Albada限制器
是一個小數(shù)(),以防止分母為0。
密度和速度通過同樣的方法來搞定。
密度、速度和壓力被稱作原始變量,所以上述方法是基于原始變量的MUSCL。此外還有基于特征變量的MUSCL,要復雜一點,但是被認為適合更高精度的格式。然而一般計算中,基于原始變量的MUSCL由于具有足夠的精度、簡單的形式和較低的代價而被廣泛使用。OK,搞定了。下面進入第二點,怎么求
。關于這一點,我不打算做
和詳細介紹了,直接使用現(xiàn)有的近似黎曼解就可以了,都是通過計算得到。比如Roe因為形式簡單,而非常流行。在CFL3D軟件主頁(http://cfl3d.larc.nasa.gov/Cfl3dv6/cfl3dv6.html)上看手冊,附錄C的C.1.3。
想了一下,還是把Roe求解器稍微說說吧,力求比較完整。但是不要指望我把Roe求解器解釋清楚,因為這個不是很容易三言兩語說清的。Roe求解器的數(shù)學形式是這樣的
顯然這個公式的第一項是一個中心差分形式,先前說過簡單的中心差分不可行,原因是耗散不足導致振蕩,說得通俗點就像一個彈簧,如果缺乏耗散(阻尼)它就會一直振蕩?!昂纳ⅰ边@個術語在激波捕捉格式中是最常見的。第二項的作用就是提供足夠的耗散了。
這里了。只有和已經用MUSCL求得了,的定義在第一講中已經介紹是還沒說過的。
這個矩陣可以寫成特征矩陣和特征向量矩陣的形式
而,和的具體表達式在許多書上都有,而且這里的矩陣表達有問題,所以就不寫了。
是由、和代入計算得到。而、和采用所謂Roe平均值
這才是Roe求解器關鍵的地方!
總結一下,就是用Roe平均計算界面上的氣體狀態(tài),這樣句分析一下。,然后計算得到
就可以得到了。如果有時間,我后面會找一個代碼逐總之,計算還是很不直接的。構造近似黎曼解是挺有學問的,需要對氣體動力學的物理和數(shù)學方面有較深的理解。通常,如果不是做基礎研究,你只需要知道它們的特點,會用它們就可以了,而不必深究它們怎么推導出來的。
第五篇:CFD培訓心得體會-sc
CFD培訓心得體會
2018年3月31日至4月2日,我在北京了參加計算流體動力學(Computatio-nal Fluid Dynamics,CFD)的培訓,十分感謝室領導給我這次外出學習的機會。3天時光的培訓雖很短,但從中學到的知識卻使我受益匪淺,受益良多,使我更深刻的認識到了CFD的強大之處,在很大程度上開拓了我的眼界、增強了自我的業(yè)務潛力,同時也認清了自身離一個優(yōu)秀的CFD使用者之間所存在的差距,明確了自我今后的學習發(fā)展方向,為今后的學習和業(yè)務技能培訓奠定了堅實的基礎。現(xiàn)將外出培訓學習所學總結如下:
1、對CFD及其軟件模塊有了進一步的認識:
計算流體力學可用于多相流、化學組分流、多物理場耦合、一般流動問題、流體換熱問題、運動部件等應用領域的問題。具體到常用的軟件模塊有SCDM,ICEM,fluent等。這些模塊都有各自擅長的領域,并且相互之間是可以進行互聯(lián)互通的。
SCDM模塊的使用,主要用于三維幾何建模,功能和使用操作方面類似于常用的三維建模軟件。ICEM軟件模塊主要用于網格的劃分,網格劃分是一項細致活兒,可以毫不夸張的說這是一門藝術。因為工程計算上多采用成熟的程序或商業(yè)軟件作為求解器,只要設置好初始條件、物理參數(shù)和收斂條件,計算工作基本上由計算機來完成。網格的生成工作約占整個項目周期的80%~95%,生成一套高質量的網格將顯著提高計算精度和收斂的速度,對于復雜模型,網格劃分顯得尤為重要。fluent模塊具有豐富的物理模型、先進的數(shù)值方法和強大的前后處理功能,并且還隨著其軟件的升級而進一步的完善和豐富??捎糜谟嬎愕奈锢韱栴}包括可壓與不可壓流體、耦合傳熱、熱輻射、多相流、粒子輸送過程、化學反應和燃燒問題。還擁有諸如氣蝕、凝固、沸騰、多孔介質、相傳介質、非牛頓流、噴霧干燥、動靜干涉、真實氣體等大批復雜現(xiàn)象的使用模型。
2、業(yè)務技能方面有了進一步提高:
在這幾天里,我們進行了ICEM-CFD網格劃分與Fluent通用技術培訓,主要內容有CFD基礎、應用場合以及基本的工作流程,看老師操作和自己操作是并一回事,這是一門十分重視實操的軟件 注重理論學習,理論知識得到充實:以前看書的時候總想著看完就完了,也就是為了應付某個考試而看,可透過這次培訓,使我認識到醫(yī)學領域里的理論知識就好比蓋房子打的地基一樣,需要相當?shù)睦喂?、扎實。是任何科研與操作的先決條件,要求相當?shù)膰乐?,一環(huán)扣一環(huán)。
一些流體的物理參數(shù)和紊流模型的經驗系數(shù)等
不能知其然不知其所以然。軟件模擬只是數(shù)字化的模型計算,主要還是靠人為來選擇合理正確的模型和參數(shù)設置。這就需要我們將實際問題抽象簡化成為已知的一種物理模型或多種物理模型的組合。
3、下一步學習計劃:
(1)進一步扎實理論功底,掌握流體力學基礎理論。熟悉常用流體模型極其參數(shù)設置,如雷諾數(shù)和瑞利數(shù)等。
(2)進一步強化軟件操作,結合已知案例熟悉操作流程,增強自身技術能力。
(3)結合現(xiàn)有的工作需求,獨立自主解決實際工作中的相關流體計算問題,以達到學以致用的目的。
總之,在此次培訓學習中,我付出了一定的時光、精力,相比我所得到的知識、經驗與感悟,后者更值。在理論知識和實踐技能方面都有了必須提高,更重要的是視野的開拓,思維的拓寬,理念的轉變是我最大的收獲??傮w實現(xiàn)了既定目標,在今后的工作中,我將結合培訓所得,使自身工作能力得到進一步提高,結合我們的實際狀況,以最好的方式回報組織的培養(yǎng)。