OpenFOAM使用手冊(中文翻譯版_第1頁
OpenFOAM使用手冊(中文翻譯版_第2頁
OpenFOAM使用手冊(中文翻譯版_第3頁
OpenFOAM使用手冊(中文翻譯版_第4頁
OpenFOAM使用手冊(中文翻譯版_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、引言 這是開源場運算和操作 c+庫類(openfoam)的使用指南。他詳細描述了OpenFOAM的基本操作。首先通過第二章一系列教程練習(xí)。然后通過對更多的獨立組件的更詳細的描述學(xué)習(xí)openfoam。 Of 首先主要是一個c+庫類,主要用于創(chuàng)建可執(zhí)行文件,比如應(yīng)用程序(application)。應(yīng)用程序分成兩類:求解器,都是為了解決特定的連續(xù)介質(zhì)力學(xué)問題而設(shè)計的;公用工程,這些是為了執(zhí)行包括數(shù)據(jù)操作等任務(wù)而設(shè)計的。Of 包括了數(shù)量眾多的solver和utilities,牽涉的問題也比較廣泛。將在第三章進行詳盡的描述。 Of 的一個強項是用戶可以通過必要的預(yù)備知識(包括數(shù)學(xué),物理和編程技術(shù))創(chuàng)建新

2、的solvers 和utilities。 Of 需要前處理和后處理環(huán)境。前處理、后處理接口就是of本身的實用程序(utilities),以此確保協(xié)調(diào)的數(shù)據(jù)傳輸環(huán)境。圖1.1是of總體的結(jié)構(gòu)。第4章和第五章描述了前處理和運行of 的案例。既包括用of提供的mesh generator劃分網(wǎng)格也包括第三方軟件生成的網(wǎng)格數(shù)據(jù)轉(zhuǎn)換。第六章介紹后處理。 Chapter 2指導(dǎo)手冊 在這一章中我們詳細描述了安裝過程,模擬和后進程處理一些OpenFOAM測試案例,以引導(dǎo)用戶運行OpenFOAM的基本程序。 $FOAM_TUTORIALS 目錄包含許多案件演示of提供的所有求解器以及許多共用程序的使用,在試圖

3、運行教程之前,用戶必須首先確保他們已經(jīng)正確地安裝了OpenFOAM。 該教程案件描述 blockMesh預(yù)處理工具的使用,paraFoam案例設(shè)置和運行OpenFOAM求解器及使用paraFoam進行后處理。使用OpenFOAM支持的第三方后處理軟件的用戶可以選擇:他們要么可以按照教程使用paraFoam,或當(dāng)需要后處理時參閱第六章的第三方軟件使用說明。 OpenFOAM安裝目錄下的tutorials目錄中所有的指導(dǎo)手冊都是可復(fù)制的。教程根據(jù)流動類型分列在不同的目錄下,對應(yīng)子目錄根據(jù)求解器slover分類。例如,所有icoFoam的案件存儲在一個子目錄“incompressible / ico

4、Foam”, incompressible表示流動類型為不可壓。如果用戶希望運行一套例子,建議該用戶復(fù)制tutorials目錄到本地運行目錄。他們可以輕松的通過輸入下邊的命令來復(fù)制:mkdir -p $FOAM RUNcp -r $FOAM TUTORIALS $FOAM RUN2.1蓋驅(qū)動腔流Lid-driven cavity flow 本節(jié)將介紹如何進行預(yù)處理,運行和后處理一個例子,涉及二維正方形區(qū)域內(nèi)的等溫,不可壓縮流動。圖2.1中幾何體的所有邊界都是由壁面。在x方向頂層墻體以1米/秒的速度移動,而其他3個墻壁是靜止的。最初,流動會假設(shè)為層流,將在均勻網(wǎng)格上使用icoFoam求解器來求解

5、層流等溫不可壓流動。在本教程中,將研究加強網(wǎng)格的劃分的效果和網(wǎng)格朝向壁面分級的效果。最終,流動雷諾數(shù)增加,必須使用用于恒溫不可壓縮紊流的pisoFoam求解器.2.1.1前處理 通過編輯實例文件在OpenFOAM中設(shè)置實例,用戶應(yīng)選擇一個xeditor進行前處理,如emacs,vi,gedit,kate,nedit等。編輯文件可能在OpenFOAM中,因為I / O的目錄格式的關(guān)鍵字意思很明確,很容易使沒有經(jīng)驗的用戶理解。 模擬實例涉及網(wǎng)格,流場,屬性,控制參數(shù)等數(shù)據(jù)。如4.1節(jié)所述,在OpenFOAM,這些數(shù)據(jù)是存儲在實例目錄下的一組文件中,而不是單個實例文件,如許多其他流體力學(xué)軟件包。實例

6、目錄給予適當(dāng)?shù)拿枋鲂悦Q,例如:該教程中的第一個例子就叫cavity。在編輯實例文件和運行cavity實例前的準備工作中,用戶應(yīng)打開該案例的目錄: cd $FOAM RUN/tutorials/incompressible/icoFoam/cavity生成網(wǎng)格 OF經(jīng)常運行在三維直角坐標系統(tǒng)中,所有的幾何形狀都是三維的。OF默認求解三維問題,可以通過在某些邊界上指定一個special empty邊界條件,這些邊界垂直于不要求解的第三維,從而來求解二維問題。 cavity腔域是一個在xy平面上邊長d= 0.1m的正方形。起初用20*20的均勻網(wǎng)格。塊結(jié)構(gòu)見圖2.2。網(wǎng)格生成器是Op

7、enFOAM的blockMesh,根據(jù)一個輸入文檔blockMeshDict(在給定實例的constant/polyMesh目錄下)中的指定描述生成網(wǎng)格。對該實例輸入的blockMeshDict如下所示:11 format ascii;12 class dictionary;13 object blockMeshDict;14 15 / * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /1617 convertToMeters 0.1;1819 vertices20 (21 (0 0 0)22

8、(1 0 0)23 (1 1 0)24 (0 1 0)25 (0 0 0.1)26 (1 0 0.1)27 (1 1 0.1)28 (0 1 0.1)29 );3031 blocks32 (33 hex (0 1 2 3 4 5 6 7) (20 20 1) simpleGrading (1 1 1)34 );3536 edges37 (38 );3940 patches41 (42 wall movingWall43 (44 (3 7 6 2)45 )46 wall fixedWalls47 (48 (0 4 7 3)49 (2 6 5 1)50 (1 5 4 0)51 )52 empty

9、frontAndBack53 (54 (0 3 2 1)55 (4 5 6 7)56 )57 );5859 mergePatchPairs60 (61 );6263 / * /頭7行是文件頭信息,用寬顯線表示。接下來是FoamFile子目錄中的文件信息,用.大括號界定。注釋(來自蘇軍偉博客):FoamFile /文件頭 version 2.0;/版本號 format ascii; /存儲形式二進制或者ascii class volScalarField;/場的類型,體心標量場 object p; /場的名字在手冊其他部分: 為清楚起見并節(jié)省空間,文件頭,包括寬顯線及FoamFile子目錄,將會

10、在引用實例文件時全部省去。 文件首先指定塊頂點坐標,然后通過頂點標號和單元個數(shù)定義塊(此處僅有一個),最后,它定義邊界塊。建議用戶查閱5.3節(jié)了解blockMeshDict文件中輸入項的含義。 在blockMeshDict文件上運行blockMesh生成網(wǎng)格。在這個實例目錄中,做到這一點,只需在終端輸入: blockMesh 終端窗口產(chǎn)生blockMesh運行狀態(tài)報告。任何blockMeshDict文件的錯誤都會被blockMesh挑出來,所產(chǎn)生的錯誤信息直接引導(dǎo)用戶到文件中產(chǎn)生問題的所在行。在該階段不應(yīng)該有錯誤。2.1.2 邊界和初始條件 完成網(wǎng)格生成,用戶可以看看為這個案例設(shè)置的初始場文件

11、。案例設(shè)置開始時間t = 0 s,所以初始流場數(shù)據(jù)被設(shè)置在cavity目錄下面的名字為0的子文件夾里。文件夾0里包括兩個文件,p和U。每個壓力(p)和速度(U)的初始值和邊界條件都必須設(shè)置。讓我們來檢驗下文件p:17 dimensions 0 2 -2 0 0 0 0; 18 19 internalField uniform 0; 20 21 boundaryField 22 23 movingWall 24 25 type zeroGradient;26 2728 fixedWalls 29 30 type zeroGradient;31 3233 frontAndBack 34 35 ty

12、pe empty; /空邊界條件,說明求解是二維流動,這個在openFOAM是獨有的,如果遇到該類邊界,該邊界不參與方程/離散,也就是什么都不做。36 37 3839/ * / 流場數(shù)據(jù)文件有3個主要的輸入:dimensions:指定流場尺度(單位的指數(shù)),這里的運動學(xué)壓力,即m2s-2(0 2 -2 0 0 0 0 )(見第4.2.6節(jié)獲取更多信息);internalField:其內(nèi)部文件數(shù)據(jù)可以是統(tǒng)一的,由單一值確定;不均勻時,流場所有值必須指定(詳細信息見 4.2.8節(jié) );boundaryField:邊界的流場數(shù)據(jù),包括邊界條件和及所有邊界塊的數(shù)據(jù)(詳細信息見4.2.8節(jié))。 對于這個

13、腔體例子,邊界僅由壁面組成,分為兩種邊界:(1)fixedWall:固定墻包括側(cè)墻和低墻(2) movingWall :移動墻的頂蓋。作為壁面,兩者的P文件都是 zeroGradient邊界條件,即“壓力垂直梯度為零”。frontAndBack代表二維情況下的前后兩個塊,因此必須設(shè)置為empty。 該實例中,正如大多數(shù)我們遇到的情況一樣,初始場被設(shè)置為是均勻的。在這里,壓力是運動學(xué)上的壓力,作為一種不可壓縮的情況,其絕對值是不相關(guān),因此為方便起見設(shè)置為uniform 0。(為什么跟絕對值不相關(guān)?) 用戶可用同樣的方式檢測0 / U文件中的速度場。dimensions為對速度所期望的因次,內(nèi)部流

14、場初始化為uniform zero ,在這個例子里速度場必須由由3個矢量表示,即均勻的(0 0 0)見第4.2.5節(jié)獲取更多信息)。 對frontAndBack塊,速度邊界流場要求相同的邊界條件。其他方向都是墻:固定墻需要假定無滑移條件,因此fixedValue 條件其值為統(tǒng)一(0 0 0)。頂面以1米每秒的速度沿x方向移動,因此也需要fixedValue條件,但為統(tǒng)一(1 0 0)值。物理特性 實例的物理屬性存儲在后綴為.Properties的文件里,放在Dictionaries目錄樹。對于這個icoFoam例子,唯一必須指定的運動粘度是存儲在transportProperti

15、es目錄中。用戶可以檢查運動粘度是否正確設(shè)置,通過打開transportProperties目錄來查看或編輯的入口。運動粘度的關(guān)鍵字是nu,在方程中用同音的希臘字母代表。最初,例子運行時雷諾數(shù)為10,其中雷諾數(shù)定義為: 式中,d和1U1分別為特征長度和特征速度,為運動粘度。此處d=0.1m,1U1=1m/s,所以Re=10時,=0.01m2 s1 。因此正確的動力粘度文件入口指定為: control 與時間控制、解數(shù)據(jù)的讀取與存儲相關(guān)的輸入數(shù)據(jù)都是從controlDict目錄讀入的。讀者應(yīng)看看這個文件;作為實例控制文件,他放在system目錄中。 運行的開始/結(jié)束時刻及時間步長必

16、須設(shè)置。 4.3節(jié)詳細介紹了OpenFOAM提供的度夠靈活的時間控制。在這個教程我們設(shè)置開始運行時刻從t=0開始,這意味著of需要從文件夾0讀取流場數(shù)據(jù),更多案例文件結(jié)構(gòu)信息見4.1小節(jié)。因此我們設(shè)置startFrom關(guān)鍵詞為startTime 并指定關(guān)鍵詞startTime 為0。 對于結(jié)束時間,我們希望獲得流動繞空腔循環(huán)(即穩(wěn)定)時的穩(wěn)態(tài)解。一般而言,層流中,流體通過該區(qū)域10次才能達到穩(wěn)態(tài)。在這個例子里,流動沒有通過該區(qū)域,因為這里沒有進口也沒有出口。取而代之,設(shè)蓋子穿過腔體10次為結(jié)束時間,即1s;事實上,事后發(fā)現(xiàn)0.5s就足夠了,因此應(yīng)采用該值。指定stopAt關(guān)鍵詞為endTime

17、,并賦值0.5 現(xiàn)在我們需要設(shè)置時間步長,由關(guān)鍵詞 deltaT 代表。運行icoFoam時為達到瞬時精確及數(shù)值穩(wěn)定,要求Courant 數(shù)小于1。對于一個單元Courant 數(shù)定義如下: t是時間步長,|U|是通過單元的速度大小, x是該速度方向上的單元尺寸。流速在穿過區(qū)域時是變化的,必須確保任何地方的Co1。因此我們以最糟的狀況選擇 t的取值:Co的最大值必須與大尺度流速和小的單元尺度聯(lián)合的效果相一致。這里,這個整個區(qū)域的單元尺寸固定,所以Co的最大值發(fā)生在緊挨著蓋子的地方,這里速度接近1米每秒。單元尺寸為: 因此為了達到全部區(qū)域內(nèi)Co log & cat log 在細網(wǎng)格

18、上繪制向量 用戶可以在ParaView中同時打開多個案例,這是由于本質(zhì)上每個新的案例就是Pipeline Browser 中一個新的模塊。當(dāng)在ParaView中打開一個新的案例時有一個次要的不便,因為有一個前提,所選數(shù)據(jù)是一個帶有擴展名的文件。但是在OpenFOAM中,每個案例存儲在指定目錄結(jié)構(gòu)的大批沒有擴展名的文件中,paraFoam程序自動運行的結(jié)果,就是產(chǎn)生一個帶有擴展名 .OpenFOAM 的空白文件,因此,cavity案例模塊稱為cavity.OpenFOAM。 然而,如果用戶希望在ParaView中直接打開另一個案例,就需要創(chuàng)建這樣一個空白文件。例如,為加載cavityFine 案

19、例,通過輸入下列命令來創(chuàng)建該文件: cd $FOAM RUN/tutorials/incompressible/icoFoam touch cavityFine/cavityFine.OpenFOAM 現(xiàn)在通過在File菜單選擇Open,并且通過瀏覽目錄選擇cavityFine.OpenFOAM ,cavityFine 案例可以加載到ParaView中。用戶現(xiàn)在可以在ParaView中由細網(wǎng)格繪制向量圖。通過同時使兩個案例的glyph激活,圖像可以與cavity案例相比較。 繪制圖像用戶也許希望通過抽取一些速度標量及沿著穿過區(qū)域的軸線繪制2維圖像來使結(jié)果具體化。 OpenFOAM

20、 對這種數(shù)據(jù)處理很在行。有無數(shù)的應(yīng)用程序可以做專門的數(shù)據(jù)處理,一些簡單的計算包括在一個單個的應(yīng)用程序foamCalc 中。作為一個應(yīng)用程序,它是獨特的,因為它是這樣的: foamCalc 在中指定計算器操作;在輸出時,采用下列操作:addSubtract; randomise; div; components; mag; magGrad; magSqr; interpolate 。用戶可以通過故意調(diào)用一個不存在的操作來獲得 列表,所以foamCalc 產(chǎn)生一個錯誤信息并且列出可用的類型,例如: foamCalc xxxx Selecting calcType xxxx unknown calc

21、Type type xxxx, constructor not in hash table Valid calcType selections are: 8 ( randomise magSqr magGrad addSubtract div mag interpolate components ) components 及 mag calcTypes 提供有用的速度標量。當(dāng)在案例如cavity上運行“foamCalc components U ”時,它從每個時間文件中讀取速度矢量場,在相應(yīng)的時間文件中,輸出標量場Ux,Uy,Uz分別代表速度的x,y,z分量。類似的,“foamCalc mag

22、 mag U” 輸出一個標量場magU 到每個時間文件中,代表速度的量級。 用戶可以在 cavity及 cavityFine 案例上用components calcType 運行foamCalc 。例如,對于cavity案例,用戶應(yīng)該進入cavity目錄并執(zhí)行foamCalc如下: cd /home/ying/RUN/tutorials/incompressible/icoFoam/cavity foamCalc components U 單獨的分量可以在ParaView 中繪制成圖。這是很快速的,方便的,并且在標志及格式上有合理的好的控制,所以打印的輸出是相當(dāng)好的標準品。但是為發(fā)表圖像,用戶

23、也許偏好輸出未加工的數(shù)據(jù),然后用專門的圖像工具來繪制,比如gnuplot 或 Grace/xmgr 。為此,我們推薦使用sample應(yīng)用程序,見6.5節(jié)和2.2.3節(jié)。 在開始繪制之前,用戶需要加載新產(chǎn)生的Ux, Uy 及 Uz 場到ParaView 中。為此,在所工作的基本模塊例如cavity.OpenFOAM 中,需要檢查Properties 面板頂部的Update GUI 按鈕。點擊應(yīng)用使新的場加載到ParaView 中,將出現(xiàn)在Vol Field Status 窗口。確保已選擇新的場且改變得到應(yīng)用,也就是說如果需要再次點擊Apply。同樣,如果在 Region Status 面板上選擇

24、了boundary regions ,邊界上的數(shù)據(jù)插入錯誤。因此用戶應(yīng)該取消Region Status 面板中的邊界,也就是說movingWall, fixedWall 及frontAndBack ,然后應(yīng)用這些改變。 現(xiàn)在為了在 ParaView 中顯示圖像,用戶應(yīng)該選擇所感興趣的模塊,例如cavity.OpenFOAM ,從Filter-Data Analysis 菜單應(yīng)用Plot Over Line 。這在已存在的3DView窗口旁邊打開了一個新的XY Plot窗口,創(chuàng)建了一個ProbeLine 模塊,在其中用戶可以指定Properties面板中線條的終點。在這個例子中,用戶應(yīng)該使線條在

25、區(qū)域中心垂直向上 ,也就是說,在Point1 和 Point2 文本框中,從(0.05, 0, 0.005) 到(0.05, 0.1, 0.005) ,設(shè)置Resolution 為100. 點擊應(yīng)用,在XYPlot窗口出現(xiàn)圖像,在Display面板,選擇2.1.6 網(wǎng)格分級在 cavityGrade /constant/polyMesh /blockMeshDict 文件中,制定了分級等級,blockMesh根據(jù)blockMeshDict 文件劃分網(wǎng)格。convertToMeters 0.1; vertices ( (0 0 0) (0.5 0 0) (1 0 0) (0 0.5 0) (0.

26、5 0.5 0) (1 0.5 0) (0 1 0) (0.5 1 0) (1 1 0) (0 0 0.1) (0.5 0 0.1) (1 0 0.1) (0 0.5 0.1) (0.5 0.5 0.1) (1 0.5 0.1) (0 1 0.1) (0.5 1 0.1) (1 1 0.1) ); blocks ( hex (0 1 4 3 9 10 13 12) (10 10 1) simpleGrading (2 2 1) hex (1 2 5 4 10 11 14 13) (10 10 1) simpleGrading (0.5 2 1) hex (3 4 7 6 12 13 16 15

27、) (10 10 1) simpleGrading (2 0.5 1) hex (4 5 8 7 13 14 17 16) (10 10 1) simpleGrading (0.5 0.5 1) ); edges ( ); patches ( wall movingWall ( (6 15 16 7) (7 16 17 8) ) wall fixedWalls ( (3 12 15 6) (0 9 12 3) (0 1 10 9) (1 2 11 10) (2 5 14 11) (5 8 17 14) ) empty frontAndBack ( (0 3 4 1) (1 4 5 2) (3

28、6 7 4) (4 7 8 5) (9 10 13 12) (10 11 14 13) (12 13 16 15) (13 14 17 16) ) ); mergePatchPairs ( ); / * /在終端執(zhí)行:cd /home/ying/RUN/tutorials/incompressible/icoFoam/cavityGrade blockMesh paraFoam 所形成的網(wǎng)格為靠近上下左右壁面處密集,中間稀疏,如右圖所示: 改變時間及時間步長 靠近頂蓋的速度最大,單元最小,則最大的Co數(shù)產(chǎn)生于頂蓋附近,見節(jié)所述,因此很有必要估計頂蓋附近的單元尺寸,以

29、便計算合適的時間步。 當(dāng)使用非均勻網(wǎng)格梯度,blockMesh通過等比級數(shù)計算單元尺寸。沿著長度為l,有n個單元,最后一個單元與第一個單元之間的比例為R,最小單元的尺寸 xs 為: (2.5)r為相鄰單元尺寸之比: 對cavityGrade案例,在每個塊中沿各個方向的單元數(shù)為10,最大最小單元比為2,塊高寬為0.05m,因此最小的單元長度為3.45mm(l=0.05m,r=21/9=1.08,a=R=2),從公式2.2可知,為使Co1,則時間步3.45ms,為確保結(jié)果在合適的時間間隔輸出 ,時間步deltaT 減小為2.5ms,設(shè)置writeInterval =40,所以每0.1s輸出一次,這

30、些設(shè)置見 cavityGrade/system/controlDict 文件。 startTime 設(shè)為cavityFine 案例的結(jié)束時間,也就是0.7,由于cavity和cavityFine 在所指示的運行時間內(nèi)收斂較好,可以設(shè)置 cavityGrade的運行時間為0.1s,也就是endTime 為.6.3 映射流場 如節(jié),使用mapFields 將cavityFine 的最終結(jié)果映射到cavityGrade網(wǎng)格上,進入cavityGrade目錄并執(zhí)行mapFields : cd /home/ying/RUN/tutorials/incompressible/icoFoam/cavityGrade mapFields ./cavityFine -consistent 現(xiàn)在從案例目錄運行icoFoam,并且監(jiān)視時間信息。查看該案例的收斂結(jié)果并通過后處理工具與其他結(jié)果作對比,見節(jié)及

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論