版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
Open?FOAMTheOpenSourceCFDToolboxUserGuideVersion2.3.05thFebruary2014注:1、藍色部分為個人標注2、省略了部分章節(jié)內容3、部分內容翻譯不到位,請參考原文PAGE\*ROMANPAGE\*ROMANIV目錄第1章引言 1第2章指導案例 1cavityflow 2前處理 2查看網格 8求解 9后處理 9增大網格分辨率(密度)Increasingthemeshresolution 12meshgrading 16增加雷諾數(shù) 19高雷諾數(shù)流動 20改變案例幾何結構 22后處理修正的幾何結構 24帶孔板的應力分析 25網格生成 26運行代碼 32后處理 322.2.4練習 34水壩崩塌 34網格生成 35邊界條件 36初始場設置 37流體屬性 38紊流模型 38時間步長控制 38離散方法 39線性求解器控制 40運行代碼 40后處理 402.3.11并行 412.3.12并行運算的后處理 42andlibraries 43OpenFOAM程序設計語言 44一般語言 44與C++ 44方程表達 44求解器代碼 45編譯(Compiling)應用和庫 45頭文件.H 45編譯 46系列表wclean、rmdepall 49編譯舉例:pisoFoam 49messagingandoptimisationswitches 52將用戶定義的庫鏈接到已存在的應用 52運行應用 52并行運算 53網格和初始場數(shù)據(jù)的分解 53運行分解的案例 54跨磁盤分解數(shù)據(jù) 54并行案例后處理 55標準求解器 55標準應用 55標準庫 55第4章OpenFOAM案例 55案例的文件結構 56基本輸入輸出格式 56通用語法規(guī)則 564.2.2詞庫 564.2.3數(shù)據(jù)文件標題 574.2.4列表 57標量,矢量與張量 58位Dimensionalunits 58types 594.2.8場 59andmacrosubstitutions 59指令#include和#inputMode 59指令#codeStream 60時間、數(shù)據(jù)的輸入輸出控制 60Numericalschemes 61schemes 62normalgradientschemes 63梯度方法 64方法Laplacianschemes 64schemes 64時間方法 65通量計算 65求解和算法控制 65線性求解器控制 66under-relaxation 67算法 68其他參數(shù) 69第5章網格生成與轉化 69網格描述 69網格規(guī)格和有效約束 69polyMesh簡介 70cellShape工具 71一維、二維及軸對稱問題 72邊界boundary 73指定邊界面片類型 73base類型 75Primitive類型 75Derived類型 76blockMesh進行網格劃分 77文件 77多個塊 80創(chuàng)建少于8個頂點的塊 80blockMesh 81生成網格 81snappyHexMesh網格生成過程 81創(chuàng)建背景六面體網格 82在特性邊緣和表面拆分單元 82移除單元 84指定的區(qū)域的單元拆分 84貼合表面 85網格層 86網格質量控制 87網格轉化 88fluentMeshToFoam 885.5.2~5.5.4略 89mapFields不同幾何形狀之間映射場 89一致場的映射 89非一致場的映射 89映射并行案例 90第6章后處理 90paraFoam 90paraFoam概述 90Properties面板 91Display面板 92工具條 92視圖操作 93等值線繪制 936.1.8流線 94圖像輸出 94動畫輸出 94Fluent后處理 94Fieldview后處理 95EnSight后處理(略) 96數(shù)據(jù)取樣 96任務的監(jiān)控與管理 98foamJob腳本 98foamLog腳本 98第7章模型和物理特性 99熱物理模型 99熱物理特性數(shù)據(jù) 101紊流模型 102模型系數(shù) 103壁面函數(shù) 103PAGEPAGE1031章引言本教程隨OpenFOAM2.3C++庫同時發(fā)布,描述了OpenFOAMOpenFOAM的各個組成部分。OpenOAM首先是一種+appcaonsappcaons分成兩類:求解器(soers,用來解決特定的連續(xù)介質力學(connuumechancs)問題;實用程序(utesdaaanpuaionOFsoer和utes,3章進行詳細介紹。OpenFOAM有一個強大的功能,就是掌握必要的數(shù)學、物理和編程技術等知識的用戶可以創(chuàng)建solversutilities。OpenFOAM需要前處理和后處理環(huán)境。前處理、后處理的接口就是OF應用本身,從而確保協(xié)調的數(shù)據(jù)傳輸環(huán)境。OFFigure1.14OF的運行案例。第5章講的是用OF提供的網格生成器(meshgenerator)劃分網格,以及利用第三方軟件進行網格數(shù)據(jù)6章介紹后處理。2章指導案例這一章詳細描述了一些OF指導案例的設置、模擬和后處理,其首要目的是讓用戶了解運行OF的基本流程。指導案例在$FOAM_TUTORIALS目錄中,為使用OF提供的所有求解器和許多實用程序(utilities)OF。指導案例描述了預處理(pre-processing)工具blockMesh的使用,案例設置,OF求解器的運行以及使用paraoam進行后處理(posprocessng。使用OF支持的第三方后處理軟件的用戶可以按paraFoam6章的第三方軟件使用說明。OF安裝目錄下的tutorials文件夾包含所有的指導案例文件。指導案例文件根據(jù)流動類型分在不同的目錄下,對應子目錄根據(jù)求解器分類。例如,所有icoFoam的案例存儲在“incompressible/cooamncopressbeuorals目錄復制到本地運行目錄。命令如下:-pcavityflow本案例的設定為二維正方形區(qū)域內的絕熱(isothermal)不可壓縮(incompressible)流動。如圖所示,該正方形區(qū)域的所有邊界均為壁面,上方的壁面沿x方向以1米/秒的速度移動,其他3amnarcooam流等溫不可壓流動。在本案例中,將研究細化網格和網格向壁面分級(意思是沿朝向壁面的方向逐漸細化網格,從而形成一定的網格密度變化梯度)的效果。最終,流動雷諾數(shù)(Reynoldsnumber)增加,必須使用用于絕熱不可壓縮紊流(turbulent)pisoFoam求解器。前處理OF案例的設置是通過編輯案例的文檔來實現(xiàn)的,用戶應選擇一個編輯器進行前處meshfedsproeresconrolparaeers)4.1節(jié)所述,這些數(shù)據(jù)存儲在案例目錄下的一組文件中,而不是單個文件。cavity。在編輯案例文件cavity案例之前,用戶應打開該案例的目錄:cdMeshgenerationF(aresancoordnessemOFempty邊界條件,這些邊界垂直于不需要求解的第三維,從而來求解二維問題。2.2OFblockMeshblockMeshDict(在給目錄下)blockMeshDict如下所示:/*/*|=========*-C++-*||\\|\\ /| \\/| \\/\*FoamFile/FieldOperation|OpenFOAM:TheOpenSourceCFDToolbox|Version:2.3.0And|Web:www.OpenFOAM.orgManipulation|*\|||||*/{versionformatclassobject2.0;ascii;//存儲形式二進制或者asciidictionary;//類名blockMeshDict; //對象名,與文件名一致}//*************************************//convertToMeters0.1;//單位轉換,也就是說下面所有點都要乘以0.1才是真值vertices//頂點((000)(100)(110)(010)(000.1)(100.1)(110.1)(010.1));(hex01234567//塊的頂點編號(20(20201//各向網格數(shù)simpleGrading111)//梯度);();boundary(movingWall{typewall;faces((3762));}fixedWalls{typewall;faces((0473)(2651)(1540));}frontAndBack{typeempty;faces((0321)(4567));});mergePatchPairs//需要和在一起的patch對();//*************************************************************************//文件的前7行以標語的形式展示了頭信息,后面是FoamFile子目錄中的文件信息,用{...}大括號定界。FomFie中首先指定該區(qū)域頂點的坐標(coornaesofheertexertces,然后通過頂點標號(erexabes)和單元(cel)個數(shù)定義塊(bock,最后,定義邊界面片(boudarypaches。5.3blockMeshDict文件中輸入項的含義。blockMesh根據(jù)blockMeshDict文件生成網格。在本實例目錄中,只需在終端輸入:終端會自動顯示blockMesh運行報告。如果出現(xiàn)錯誤信息,用戶應修改文件相關內容,以保證該階段不會出現(xiàn)任何錯誤。Boundaryandinitialconditions網格生成以后,用戶可以查看案例的初始場設置文件。本案例開始時間設為0s,cavity/0/目錄下。它包括兩個文件,pU。壓力(p)和速度(U)p的內容:dimensionsdimensions[02-20000];internalField uniform0;boundaryFieldboundaryField{movingWall{type}zeroGradient;fixedWalls{type}zeroGradient;frontAndBack{type}empty;}3個輸入項:dimensions:場數(shù)據(jù)的度量方式(單位的指數(shù),有7個參數(shù),依次為質量、長度、時間、溫度、(nemacpressure(/ρ的單位為ms即[0220000](4.2.6節(jié);internalField:內部場,可以是uniform,均勻的,由單一值確定;也可以是nonuniform,非均勻的,場所有數(shù)據(jù)必須指定。(4.2.8節(jié))boundaryField:邊界的場數(shù)據(jù),包括所有邊界面片(movingWall等)(詳細信息4.2.8節(jié))對于本實例caty,邊界僅由壁面組成,并可分為兩種(面片為自定義的名稱,非標準1)fxedl(2)ovnl:移動墻,即頂蓋。由于兩者都是壁面,其邊界條件均設成了zeroGradientfrontAndBack代表二維情況下的前后empty該實例中,正如大多數(shù)我們遇到的情況一樣,初始場設為均勻的。在這里,壓力指運動學壓力,uniform0。用戶可用同樣的方式查看cavity/0/U文件中的速度場。dimensionsdimensions[01-10000];internalField uniform(000);boundaryField{movingWall{typevalue}fixedValue;uniform(100);fixedWalls{typevalue}fixedValue;uniform(000);frontAndBack{type}empty;}dimensions為速度單位的指數(shù);nernaleld初始化為unformero3unform(0004.2.5節(jié);boundaryField方面,要求frontAndBack的邊界條件相同;fixedWalls假定無滑移,故其類型為fxedue,值為unform(000;頂面以1s的速度沿xfxedueuniform(100)值。Physicalproperties實例的物理屬性存儲在Dictionaries目錄下后綴為Properties的文件里。對于icoFoam案例,只需指定運動粘度(存儲在transportProperties中。用戶可以通過打開或編輯transportProperties的入口參數(shù)來檢查運動粘度(kinematicviscosity)是否已經正確設置。運動粘度的關鍵字是nu,在方程中用同音的希臘字母代表。案例的初始雷諾數(shù)(Reynoldsnumber)為10,其中雷諾數(shù)定義為:Re=d|U|/ (2.1)式中,d和|U|分別為特征長度和特征速度,為運動粘度。此處d=0.1m,|U|=1m/s,所以Re=10時,nu[02-1nu[02-10000]0.01;controlDictcontrolDict文件包含與時間控制、求解數(shù)據(jù)的讀取和存儲相關的輸入數(shù)據(jù)。它位于system目錄下。運行的開始/結束時刻及時間步長必須設置。OF的時間控制方式十分靈活,詳細描述見4.3節(jié)。在這個教程中將開始運行時刻設為t=0,這意味著OF要從文件夾0讀取流場數(shù)據(jù)(案例文件結構詳4.1節(jié)startFromstartTime0。對于結束時間,我們希望獲得繞腔體循環(huán)流動時的穩(wěn)態(tài)解。一般而言,層流中,流體通過該區(qū)域10次才能達到穩(wěn)態(tài)。在這個實例中,腔體沒有進口也沒有出口,因此流體無法通過該區(qū)域。取而代之的方法是,將蓋子穿過腔體10次所用的時間設為結束時間,即1s;事實上,事后發(fā)現(xiàn)0.5s就stopAtendTime0.5。現(xiàn)在我們需要設置時間步長,由關鍵詞deltaT代表。為保證運行icoFoam時的瞬時精確性和數(shù)值穩(wěn)定性,要求庫朗數(shù)(Courantnumber)1。對于一個單元,庫朗數(shù)定義如下:Co=δt|U|/δx (2.2)其中δt是時間步長,|U|是通過單元的速度大小,δx是該速度方向上的單元尺寸。流Co<1。整個區(qū)域的單元尺寸固定,所1m/s。單元尺寸為δx=d/n=0.1/20=0.005m (2.3)因此為了達到全部區(qū)域內Co<=1,時間步長deltaT的設置必須小于等于δt=Coδx/|U|=1×0.005/1=0.005s (2.4)我們希望模擬過程中每隔一段時間記錄一次結果,以便在后處理中查看。關鍵詞writeControl表示記錄結果的時間的設置方式,這里我們選擇timeStep,代表每隔n次時間步長輸出一次結果,其中n值由關鍵詞writeInterval0.1,0.2,...,0.5s0.005s20writeInterval20。OF(求解時)會創(chuàng)建以當前時間命名的文件夾,例如0.1,每個文件夾中都包含一系列的數(shù)據(jù)applicationicoFoam;startFromstartTime;startTime0;stopAtendTime;endTime0.5;deltaT0.005;//當前case所用求解器的名字(在4.1applicationicoFoam;startFromstartTime;startTime0;stopAtendTime;endTime0.5;deltaT0.005;//當前case所用求解器的名字writeControltimeStep;writeControltimeStep;writeInterval20;purgeWrite0;writeFormatascii;writePrecision6;writeCompressionoff;//按照時間步長寫,也可以為runTime//20個時間步長寫一次(如果按照時間來寫的話為1)//寫過程是否覆蓋,如果0則不覆蓋,大于0為覆蓋。//文件寫入精度//是否對生成數(shù)據(jù)進行壓縮timeFormatgeneral;/*時間文件夾格式:fixedm.dd…,d的個數(shù)取決于timePrecision;scientific:科學計數(shù)法;general:科學計數(shù)法,指數(shù)小于-44*/timePrecision6;runTimeModifiabletrue; //在求解過程中是否允許修改以上參數(shù)Discretisationandlinear-solversettings用戶可以在system目錄下fvSchemes詞庫中指定選擇有限體積離散法。用戶可以在fvSolution詞庫(同在system目錄下)中指定線性方程求解器規(guī)范、限差和其他算法控制。用戶可以自由的查看這些詞庫類,但是在它們的入口函數(shù)中,我們目前只需要掌握fvSolution詞庫中PISO子詞庫下的pRefCell和pRefValue。腔體為封閉系統(tǒng),用的是相對壓力(是壓力范圍而不是絕對值。在這種情況下,求解器在pRefCell單元中通過pRefValue設置一個相對值,在該實例中都設為0。改變其中任何一個的值都會改變絕對壓力場,而不會改變相對壓力場或速度場。fvSolution文件如下:solverssolvers{p{solver PCG;preconditioner DIC;tolerance relTol 0;//壓力采用預條件共軛梯度法(主要求解對稱矩陣)Cholesky//公差//相對公差}U{solversmoothertolerancerelTolsmoothSolver;symGaussSeidel;1e-05;0;}}PISO{nCorrectors2;nNonOrthogonalCorrectors0;pRefCell 0;pRefValue 0;//修正次數(shù)//非正交修正次數(shù)//壓力參考單元的編號//壓力參考值}ddtSchemes{default}ddtSchemes{default}//非穩(wěn)態(tài)格式Euler;//默認采用歐拉離散gradSchemes{}divSchemes{defaultdiv(phi,U)}none;Gausslinear;//散度的離散(必須指定沒有默認值)//對流項離散,高斯理論,采用線性插值defaultGausslinear;//梯度離散采用高斯方法,線性插值grad(p)Gausslinear;//壓力的梯度離散laplacianSchemes{default Gausslinearorthogonal;//拉普拉斯項離散,必須指定}interpolationSchemes{default linear; //默認線性插值}snGradSchemes{defaultorthogonal;//梯度法向分量//默認正交}fluxRequired{defaultno;//是否計算通量p};//壓力需要計算,因為需要利用壓力通量修正速度查看網格在實例運行前,最好查看一下網格以檢查是否有錯。用戶可通過OpenFOAM提供的后處理工具paraFoam查看網格,其啟動方式為,在終端案例目錄下輸入:也可以使用可選參數(shù)-case來指定案例目錄從而啟動paraFoam:ParaView6.1PipelineBrowserParaView已經打開了cavity案例模塊cavity.OpenFOAM。在點擊Apply按鈕前,用戶需要從MeshParts面板上選擇一些幾何結構。因為該案例很小,用戶可以選擇MeshParts標題下的所有選項,這樣就可以自動檢查各個面板ApplyParaView中。之后打開Display面板,其控制著所選模塊的可視化重現(xiàn)。在Display面板中,用戶需要執(zhí)行的操作如圖2.3(1)設置oor為odoor(2)點擊etoidoor選擇適當?shù)念伾?,如黑色(對于白色背景?)在le面板中,epresenaon項選擇refrae。背景顏色可以在頂EditViewSettings...來設置。用戶啟動ParaView時,尤其是第一次,必須能夠熟練地操作(見6.1.5節(jié)。特別的,該二維案例應進行如下設置:打開Edit—ViewSettings窗口,在General面板中必須選擇UseParallelProjection,在Annotation窗口中可選擇性地勾選OrientationAxes,也可以通過鼠標拖曳來移動。求解與所有UNIX/Linux可執(zhí)行軟件一樣,OpenFOAM的應用程序可以按以下兩種方式運行:前臺程序,shell要等到其命令結束之后才可以執(zhí)行其他命令;后臺程序,shell不需要等待其結束就可以執(zhí)行其他命令本案例中使用前臺程序的方式運行icoFoam。icoFoam求解器的執(zhí)行方式,一是可以進入案例目錄,在命令提示符處輸入:二是使用可選參數(shù)-case來指定案例目錄:終端窗口會顯示程序的進程,包括當前時間,最大庫朗數(shù),所有場的初始值及最終值。后處理時間目錄中生成結果文件后,就可以用paraFoam來查看?;氐絧araFoam窗口,并且選擇cavity.OpenFOAM模塊的Properties面板。如果案例模塊的窗口面板在任何時刻都不能正常顯示,則應檢查cavity.OpenFOAM是否調為高亮藍色;旁邊的eye按鈕是否已經打開。為了得到最終的數(shù)據(jù),首先將運行時間調至0.5s。如果打開ParaFoam時求解器還在運行,那么時間目錄中的輸出數(shù)據(jù)不會自動加載到Paraview中,此時在Properties窗口中單擊RefreshTimes,ParaView中。Isosurfaceandcontourplots為查看壓力,用戶應該打開Disply面板,因為它控制著所選模型的可視化表現(xiàn)。為繪制一個簡單2.4Style面板中,RepresentationSurfaceColor(p)RescaletoDataRanget=0.5sVCRControls或者CurrentTimeControls(位于ParaView窗口頂部菜單下方的工具欄中,見圖6.4)將時間設為0.5,壓力場如預期一2.5所示。通過點圖標(。p,壓力場在各個單元間內插,從而得到連續(xù)的流場。相反的,如果用戶選擇單元圖標,在每個單元上就是一個單獨的壓力值,所以每個單元都由單一的顏色表示而沒有梯度。ActiveVariableControlsToggleColorLegendVisibilityView菜單選擇ShowColorLegend,即可調出顏色棒圖。點擊ActiveVariableControlsDisply窗口中Color面板中的EditColorMap按鈕,用戶就可以設置顏色棒圖特性的范圍,比如文字大小,字型選擇及尺度計數(shù)形式等。通過鼠標拖動可以改變顏色棒圖在圖像窗口的位置。ParaView(彩虹色。ParaViewColorScaleEditor中選擇hoosereset(初調ueoedanbowOKMakeDefaultParaView一直采用這種顏色色棒。如果用戶旋轉圖像,可以發(fā)現(xiàn)整個幾何表面的都按壓力上色了。為產生真實的等值線,用戶首sc(切片ice6.1..1節(jié)描述。切割面中心在(0.05,0.05,0.005),垂直線設為(0,0,1)。一旦產生了切割面,通過使用6.1.6節(jié)Contourfilter來產生等值線。VectorplotsSlice及Contourfilters。PipelineBrowserPropertiesDelete,從而整體PipelineBrowsereye按鈕來使其處于不工作狀態(tài)。ecorlph的數(shù)據(jù),如節(jié)所述。在PipelineBrowser中使cavity.OpenFOAM模塊高亮,選擇Filter->Alphabetical->CellCentersApply。在peinerowser中使eners高亮,然后在ler->Aphabecal菜單中選擇Gph(點符,則Properties窗口應該如圖2.6所示,在Properties面板中,vectors項自動確定為速度場U,因為它是目前唯一的矢量場;ScaleMode默認為速度的VectorMagnitude,但是由于我們想看到貫穿整個區(qū)域的速度,應該選擇off,SetScaleFactor為0.005如白色。用戶應該根據(jù)速度大小用顏色標識圖像,通過在Disply面板中設置ColorbyU來控制,也EditColorMapShowColorLegend(圖例2.7所示,在圖中,大寫的Timesomanfons是在ooreendAuomacabelormatabelormat文字框中輸入%-#6.2f2ViewSettingsGeneral面板中設置背景節(jié)描述。Streamlineplots同樣的,在ParaView中繼續(xù)后處理之前,要退出之前所描述的矢量繪制等模塊,現(xiàn)在繪制速度的流線(6.1.8節(jié))PipelineBrowsercavity.OpenFOAMFilter->StreamTracerProperties2.8所示進行設置。Seedtype選擇LineSource,并將其指定為垂直于幾何中心的直線,即點(0.05,0,0.005)到點(0.05,0.1,0.005)的直線(注:流線的原點在指定的直線上,即所繪制的流線只包含經過該直線的部分,因此指定一條z向并穿過幾何體中心的直線可以顯示XY平面內的所有流線。圖中所使用的參數(shù)為:原點的Resolution為21;MaxPropagation為Length->0.5;StepLengthCellLength->0.01;IntegrationDirectionBOTH。IntegratorType默認使用Runge-Kutta2。ler->eNun.des6;Radius0.0003;Radiusfactor10Apply2.9所示。增大網格分辨率(密度)Increasingthemeshresolution然后對比細網格與粗網格的求解結果。Creatinganewcaseusinganexistingcase根據(jù)cavity創(chuàng)建一個名為cavityFine的新案例,需要復制cavitycavity相同的目錄下創(chuàng)建一個新的案例文件,如:cdcavitycavityFinecavityFine案例:cp-rcp-rcdCreatingthefinermeshblockMesh增加網格單元數(shù)。打開blockMeshDictblock的指定信息。blocks關鍵詞下的列表中指定了其參數(shù)。Block定義的句法結構見節(jié)的完整描述;在該階段只需要知道hex后面首先是塊頂點的列表,然后是是每個方向上單元數(shù)量的列表。最初在cavity案例中設為(202040401bocesh將粗網格映射(Mapping)到細網格mapFields應用程序能夠將一個給定幾何結構的場映射到另外一個幾何結構的相應場中,在我們的例子中,認為流場是連續(xù)的,因為源場和目標場的幾何結構、邊界類型或條件都是恒定的。在該例子中執(zhí)行mapFields-consistent命令行。目標案例的controlDict文件中的startFrom/startTime指定了開始時間,從對應的時間目錄(也就是結果被映射到的地方)中讀取mapFields映射的流場數(shù)據(jù)。在本例中,我們要將粗網格(在cavity案例中)的最終結果映射到細網格(在cavityFine案例中。由于這些結果存儲在cavity案例的文件0.5controlDictstartTime0.5?,F(xiàn)在案例已準備好運行mapFields了,輸入mapFields-help可以看到mapFields要求指定源案例目conssent選項(caFineSource:"..""cavity"Source:"..""cavity"Target:".""cavityFine"CreatedatabasesastimeCase :../cavitynProce:1Sourcetime:0.5Targettime:0.5CreatemeshesSourcemeshsize:400Targetmeshsize:1600Consistentlycreatingandmappingfieldsfortime0.5Creatingmesh-to-meshaddressing...Creatingmesh-to-meshaddressing...Overlapvolume:0.0001CreatingAMIbetweensourcepatchmovingWallandtargetpatchmovingWerpolatingpinterpolatingUEndControladjustments為保持庫朗數(shù)小于1,由于所有單元的尺寸都減半了,所以時間步長必須減半(見節(jié)所述,即conroDct文件中deaT設為0.005。流場數(shù)據(jù)輸出時以固定數(shù)目的時間步長為間隔?,F(xiàn)在我們以固定時間為間隔。在controlDict文件中的writeControl關鍵詞下,我們不再使用timeStep(以固定數(shù)目的時間步長作為間隔runTime(以固定的運行時間作為間隔用戶應該指定每0.1輸出一次,因此應設置writeInterval為0.1。最終,由于案例是在粗網格結果上開始的,只需要運行很短的時間就能達到穩(wěn)態(tài)。所以endTime設為0.7s。確保這些設置正確并保存文件。Runningthecodeasabackgroundprocess用戶應該體驗一下后臺運行icoFoam,將終端輸出內容存儲到一個logcavityFine目錄下,執(zhí)行:Vectorplotwiththerefinedmesh用戶可以在ParaViewPipelineBrowser中一個新的模塊。當在ParaView中打開一個新的案例時有一個小的不便,因為有一個前提,所選數(shù)據(jù)是一個帶有擴展名的文件。但是在OpenFOAM中,每個案例存儲在指定目錄結構的大批沒有擴展名的文件中,paraFoam程序自動運行的結果,就是產生一個帶有擴展名.OpenFOAM的空白文件,因此,cavitycavity.OpenFOAM。然而,如果用戶希望在ParaView中直接打開另一個案例,就需要創(chuàng)建這樣一個空白文件。例如,cavityFine案例,通過輸入下列命令來創(chuàng)建該文件:cdFileOpencavityFine.OpenFOAM,cavityFine案例可以加載到ParaView中。用戶現(xiàn)在可以在ParaView中由細網格繪制向量圖。同時激活兩個案例glyph圖像進行對比。Plottinggraphs用戶也許希望通過抽取一些速度標量(scalarmeasures)及沿著穿過區(qū)域的軸線繪制2維圖像來foamCalc中。它是一個獨特的應用程序,其執(zhí)行方式為:>>foamCalcxxxxSelectingcalcTypexxxxunknowncalcTypetypexxxx,constructor>>foamCalcxxxxSelectingcalcTypexxxxunknowncalcTypetypexxxx,constructornotinhashtableValidcalcTypeselectionsare:8(randomisemagSqrmagGradaddSubtractdivmaginterpolatecomponents)components及magcalcTypes提供有用的速度標量。當在案例如cavity上運行“foamCalccomponentsU”時,它從每個時間目錄中讀取速度矢量場,在相應的時間目錄中,輸出標量場Ux,Uy,Uz分別代表速度的,zfoaCacagU”輸出一個標量場maU到每個時(anude。用戶可以在cavity及cavityFinecomponentscalcTypefoamCalc。例如,對于cavitycavityfoamCalc:cdU單獨的分量可以在ParaView中繪制成圖。繪制過程快速、方便,并且可以很好地控制標簽和格式,所以輸出的結果十分標準。但是為發(fā)表圖像,用戶也許更想要原始數(shù)據(jù),然后用專門的繪圖工gnuplot或Grace/xmgrsample6.5節(jié)和2.2.3節(jié)。Ux,Uy及UzParaView中。為此,在所工作的基本模塊cavity.OpenFOAMPropertiesRefreshTimes按鈕。單擊應用使新的場加載到ParaView中,將出現(xiàn)在VolumeFields必要的話再次點擊Apply。另外,如果在MeshParts面板上選擇了boundaryregions,邊界上的數(shù)據(jù)就MeshParts面板上的邊界區(qū)域,即movingWall,fixedWall及frontAndBack,然后單擊應用?,F(xiàn)在為了在ParaView中顯示圖像,用戶應該選擇所感興趣的模塊,例如cavity.OpenFOAM,F(xiàn)ilter->DataAnalysisPlotOverLine3DView窗口旁邊打開了一個新的XYPlot窗口,創(chuàng)建了一個ProbeLine模塊,在其中用戶可以指定Properties面板中線條的終點。在Point1和Point2(0.05,0,0.005)到(0.05,0.1,0.005)Resolution100。XYPlotDisplayAttributeMode為PointData,XAxisDataUseDataArray,arclengthx軸代表了與腔體底部的距離。面板中要顯示的場。從顯示的標量場列表中可以看到,默認情況下矢量場的大小和分量都可以選擇,如U:x,因此沒有必要使用foamCalc創(chuàng)建Ux。不過,用戶應當取消Ux(U:x)以外的所有選項。旁邊一欄的色塊可以指示線的顏色,雙擊即可修改。為了使格式化圖像,用戶應當修改LineSeries面板下的設置:panel,namelyLineColor,LineThickness,LineStyle,MarkerStyleandChartAxes。也可以單擊XYPlot左上角的圖標進行設置。舉個例子,第三個按鈕可進入ViewSettings窗口,從中可以設置各軸的標題,軸標題的字體、顏色和排列,軸范圍的一些選項以及軸標簽是線性的還是對數(shù)的。圖2.11是用ParaView制作的圖像。用戶可以制作各種希望得到的圖像。圖2.11的坐標軸所使用的選項為:標準符號類型,指定軸的范圍;標題SansSerif12號字體。激活Display窗口的EnableLineSeries按鈕,從而使圖像顯示一系列的點而不是一條線。注意,如果按鈕呈現(xiàn)灰色不可用狀態(tài),可以通過選擇,然后取消選擇LineSeries的選項來使之變?yōu)榭捎?。選中EnableLineSeriesLineStyleMarkerStyle都可根據(jù)需要調整。網格分級介紹Introducingmeshgrading真實解與假設的數(shù)據(jù)模型在形式上具有較大差別時,求解結果的誤差會更加明顯。舉個例子,當真實解為線性形式時,基于單元參數(shù)線性變化的數(shù)據(jù)模型只能得到確定的結果。當真實解最大限度地偏離線性形式時,斜率的變化量也達到最大值,誤差也就達到最大。誤差隨單元尺寸一塊兒減小。設置問題之前應對解決形式有個直觀的認識。這樣才有可能預見哪些地方的誤差最大,使網格分級(細化cay以網格應該分得更小一些。在使用相同數(shù)量的單元的情況下,可以獲得更高的準確度,而不會增大計算負擔。蓋驅動腔體問題將使用朝向壁面分級的20x20的網格,將節(jié)細網格的結果映射到分級網格中以作為初始條件。將分級網格的結果與先前的網格進行對比。由于blockMeshDict文件中的更改非常重要,$FOAM_RUN/tutorials/incompressible/icoFoam中提供了本節(jié)用到的案例cavityGrade,。Creatingthegradedmesh由于區(qū)域的上下左右需要不同的網格等級,此處網格需要分為4塊。網格的塊結構如圖2.12所示。用戶可參考cavityGrade/constant/polyMesh目錄下的blockMeshDict文件,為了保持完整,blockMeshDict文件中的關鍵詞也列在后面?,F(xiàn)在每個塊在x和y方向均有10個單元,最大單元和2。convertToMeters0.1;convertToMeters0.1;vertices((000)(0.500)(100)(00.50)(0.50.50)(10.50)(010)(0.510)(110)(000.1)(0.500.1)(100.1)(00.50.1)()(10.50.1)(010.1)(0.510.1)(110.1));blocks(hex(01439101312)(10101)simpleGrading(221)hex(125410111413)(10101)simpleGrading(0.521)hex(347612131615)(10101)simpleGrading(20.51)hex(458713141716)(10101)simpleGrading(0.50.51));edges();patches(wallmovingWall((615167)(716178))wallfixedWalls((312156)(09123)(01(01109)(121110)(251411)(581714))emptyfrontAndBack((0341)(1452)(3674)(4785)(9101312)(10111413)(12131615)(13141716)));mergePatchPairs();//*************************************************************************//熟悉blockMeshDict文件之后,用戶就可以通過命令行執(zhí)行blockMesh了。使用paraFoam可以2.1.2節(jié)相同。Changingtimeandtimestep靠近頂蓋的速度最大,單元最小,則最大的Co數(shù)產生于頂蓋附近,原因見節(jié)所述,因此很有必要估計頂蓋附近的單元尺寸,以便計算合適的時間步長。計算單元尺寸。長度為l的方向上,有n個單元,最后一個單元與第一個單元之間的比值為R,最小單元的尺寸δxs為:
r1
(2.5)r為相鄰單元尺寸之比:
R
s 1rRn1,R1
(2.6) n
(2.7)對cavityGrade案例,在每個塊中沿各個方向的單元數(shù)為10,最大最小單元比為2,塊高寬為0.05m,因此最小的單元長度為3.45mm(l=0.05m,r=2^1/9=1.08,a=R=2),從公式2.2可知,為使Co<1,3.45sdeaT減小為2.5s=文件。startTimecavityFine0.7cavitycavityFine在所指示的運行時間內收斂較好,可以設置cavityGrade0.1sendTime0.8.映射流場如mapFields將cavityFine的最終結果映射到cavityGrade網格上,進入:cd現(xiàn)在從案例目錄運行icoFoam,并且監(jiān)視時間信息。查看該案例的收斂結果并通過后處理工具節(jié)所描述。增加雷諾數(shù)之前所有案例的雷諾數(shù)都為10,這個數(shù)非常小很快產生穩(wěn)定解,在腔體底部拐角處僅有很小的二次漩渦(seconaryorices。現(xiàn)在增加雷諾數(shù)到100,此時需要較長時間達到收斂(conee,cavitycavitycavityHighRecdcp-r前處理cavityHighRetransportPropertiesRe10倍,因此動力粘度要變?yōu)樵瓉淼?/10,即1*10-3m2s-1。從cavity案例結束處重新開始運行該案例。為此,設置startFrom關鍵詞為latestTimeicoFoam提取存儲在最近時刻文件(也就是0.5)中的初始數(shù)值,endTime2s。運行代碼在案例目錄下運行icoFoam,查看運行時間信息。當在后臺運行時,后面的UNIX命令會非常有用。nohup:使發(fā)出命令的用戶注銷后,命令仍然能夠運行nice:改變內核調度程序中任務的優(yōu)先權,其值為20代表最高優(yōu)先權,19次之。舉個例子,如果用戶想要在一臺遠端機器上運行案例而不想要實時監(jiān)控,這樣就需要在機器上給它一個低的優(yōu)先權,此時使用nohop命令,就可以實現(xiàn)用戶注銷這在運行的遠端機器,而任務卻nice19。對于本案例,可以執(zhí)行如下命令:cd-n19>log&Time=1.43CourantNumbermean:0.221921max:0.839902smoothSolver:SolvingforUx,Initialresidual=8.73381e-06,Finalresidual=8.73381e-06,NoIterations0smoothSolver:SolvingforUy,Initialresidual=9.89679e-06,Finalresidual=9.89679e-06,NoIterations0DICPCG:Time=1.43CourantNumbermean:0.221921max:0.839902smoothSolver:SolvingforUx,Initialresidual=8.73381e-06,Finalresidual=8.73381e-06,NoIterations0smoothSolver:SolvingforUy,Initialresidual=9.89679e-06,Finalresidual=9.89679e-06,NoIterations0DICPCG:Solvingforp,Initialresidual=3.67506e-06,Finalresidual=8.62986e-07,NoIterations4timestepcontinuityerrors:sumlocal=6.57947e-09,global=-6.6679e-19,cumulative=-6.2539e-18DICPCG:Solvingforp,Initialresidual=2.60898e-06,Finalresidual=7.92532e-07,NoIterations3timetimestepcontinuityerrors:sumlocal=6.26199e-09,global=-1.02984e-18,cumulative=-7.28374e-18ExecutionTime=0.37sClockTime=0sTime=1.435CourantNumbermean:0.221923max:0.839903smoothSolver:SolvingforUx,Initialresidual=8.53935e-06,Finalresidual=8.53935e-06,NoIterations0smoothSolver:SolvingforUy,Initialresidual=9.71405e-06,Finalresidual=9.71405e-06,NoIterations0DICPCG:Solvingforp,Initialresidual=4.0223e-06,Finalresidual=9.89693e-07,NoIterations3timestepcontinuityerrors:sumlocal=8.15199e-09,global=5.33614e-19,cumulative=-6.75012e-18DICPCG:Solvingforp,Initialresidual=2.38807e-06,Finalresidual=8.44595e-07,NoIterations3timestepcontinuityerrors:sumlocal=7.48751e-09,global=-4.42707e-19,cumulative=-7.19283e-18ExecutionTime=0.37sClockTime=0s高雷諾數(shù)流動查看paraFoam中的結果,顯示速度矢量。拐角處的二次漩渦在尺寸上有或多或少的增加。用戶可以通過減小黏度進一步增大雷諾數(shù),然后回到案例。漩渦數(shù)量增多,為了求解更加復雜的流動模式,漩渦附近的網格密度也需要增大。另外,隨著雷諾數(shù)增大,達到收斂所用的時間也就增大。endTime以確保達到收斂。當流動進入紊流狀態(tài),會出現(xiàn)結果穩(wěn)定性問題,單純增加空間和時間上的網格密度已經不能達到目的了。實際上,許多工程問題的雷諾數(shù)非常高,直接求解紊流行為消耗很大。取而代之的方法是,使用RAS(Reynolds-averagedsimulation,平均雷諾數(shù)模擬)紊流模型來求解主要的流動行為和起伏狀態(tài)。本節(jié)將使用包含壁面函數(shù)(wallfunctions)的標準k?ε模型,用于解決雷諾數(shù)為104的蓋驅動kurbuentneiceneyεurbuentdsspaonrae。OpenOAM的求解器psooam前處理進入$FOAM_RUN/tutorials/incompressible/pisoFoam/rasblockMesh產生網格,當使用帶有壁面函數(shù)的標準k?ε模型時,沒有必要使網格朝向壁面分級,這是由于近壁單元的流動已經建模,而不用區(qū)分。dimensions[02-10000];internalField uniform0;boundaryField{movingWall{dimensions[02-10000];internalField uniform0;boundaryField{movingWall{typevalue}fixedWalls{typevalue}frontAndBack{type}nutWallFunction;uniform0;nutWallFunction;uniform0;empty;} 本案例中movingWall和fixedWalls使用標準壁面函數(shù),由nutWallFunction關鍵詞指定,其他nutRoughWallFunction指定。用戶現(xiàn)在應該打開0/k及0/epsilon文件,檢查邊界條件。邊界為壁面的條件下,ε指定為epsilonWallFunction邊界條件,kkqRwallFunction邊界條件,后者是一個通用的邊界條件,可以提供給任何包括紊流動能類型的流場,例如k,q,或者雷諾應力R。k及ε的初始值由一個估計的波動Ul來指定,k及ε由下列公式定義:2C0.75k1.5
(2.8) l
(2.9)其中Cμ是k?ε模型的常系數(shù),等于0.09,對笛卡爾坐標,k為:,Uy'^2Uz'^2x,y,z方向的分量。假設初始紊流是各向同性5%,l等于盒子寬度(0.1m)20%,k、ε為:這樣k、ε的初始條件就確定了,U及p的初始條件和之前一樣,分別為(0,0,0)及0。simulationType RASModel;//*************************************************************************//紊流模型包括一系列的方法,例如RAS或者OpenFOAM.提供的大渦模型(LES,large-eddysimulation)constant/turbulencePropertiessimulationType RASModel;//*************************************************************************//simulationType的選擇有l(wèi)aminar,RASModel和LESModel,在本案例中選擇RASModel,RAS模型選項在constant/RASPropertiesRASModel入口從表3.9所列的一長串可用模型中選擇紊流模型。用戶應當選擇kEpsilon模型,這是標準k?ε模型;用戶還需確保turbulence狀態(tài)為on。(coefficients)printCoeffs為on,其名稱為模型名加Coeffs,例如,kEpsilon模型的案例中的kEpsilonCoeffs。模型(例如kEpsilon)RASProperties文件的子項中,然后調整其值。用戶下一步要在transportProperties中設置層流動力粘度,為使Re=10^4,根據(jù)方程2.1對Re定義,則動力粘度為10^-5。controlDictstartTime,stopTime,deltaTwriteInterval,設置deltaT0.005CoendTime=10s。運行代碼進入案例目錄并輸入“pisoFoam”來執(zhí)行,在該案例中,粘度很低,緊貼移動頂蓋的邊界層(boundary在100個時間步長之后,單元速度明顯接近頂蓋速度,二者相差達到極限值0.2ms^-1,因此最大Co數(shù)比0.2大一點。通過增加時間步長使Co數(shù)更接近1,從而增加求解時間的做法是很明智的,因此重deltaT0.02s,并且在這種情況下,設置startFromlatestTime,這指示pisoFoam從最后時刻文件讀取起始數(shù)據(jù),也就是說10,endTime應該設為20s,因為運行收斂遠比層流情況要慢。重新運行,監(jiān)控求解的收斂。查看串行時間步長的結果,看求解結果是否收斂到穩(wěn)態(tài),或者也許達到周期震蕩狀態(tài)。在后一種情況下,也許無法達到收斂,但這并不意味著結果不準確。改變案例幾何結構用戶也許希望改變案例的幾何結構,運行一個新的模擬。也許需要保持一部分或所有原始結果作為新模擬的開始工況。這有點復雜因為原始解的流場與新案例的并不一致。但是mapFields應用程序可以映射不一致的流場,幾何形狀或邊界類型都可以。convertToMeters0.1;vertices((000)(0.600)(00.40)(0.60.40)convertToMeters0.1;vertices((000)(0.600)(00.40)(0.60.40)(10.40)(010)(0.610)(110)(000.1)(0.600.1)(00.40.1)()(10.40.1)(010.1)(0.610.1)(110.1));blocks(hex(0132891110)(1281)simpleGrading(111)hex(236510111413)(12121)simpleGrading(111)hex(347611121514)(8121)simpleGrading(111));edges();patches(walllid((5(513146)(614157))wallfixedWalls((08102)(210135)(715124)(412113)(31191)(1980))emptyfrontAndBack((0231)(2563)(3674)(891110)(10111413)(11121514)));mergePatchPairs();//*************************************************************************//用blockMesh產生網格,邊界設置與之前cavity案例一樣,為在描述場映射過程清晰起見,上壁面邊界(cavitymovingWall邊界)lid。在非一致映射中,不能擔保所有的場數(shù)據(jù)都能從源案例中映射過來。殘留的數(shù)據(jù)一定來自目標案例自身的流場文件。因此,在映射之前,流場數(shù)據(jù)一定要存在于目標案例的時間文件中。在cavityClipped案例中,設映射開始時間為0.5s,這是由于controlDict中startTime設為0.5s,因此0:cd0在映射數(shù)據(jù)之前,用戶應該查看幾何形狀及0.5s的流場。patchMap(lidmovingWall);現(xiàn)在要從cavity中映射速度及壓力場到cavityClip
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年臨時員工派遣工作服務合同
- 2025版基礎設施建設項目退工程款合同樣本3篇
- 二零二五年度木材加工廢棄物處理與資源化利用合同2篇
- 2025年勞動力補償福利協(xié)議
- 2025年大學生健身俱樂部協(xié)議
- 二零二五版新能源車輛充電站合作協(xié)議書下載3篇
- 2025版小產權房購房合同范本:房產交易稅費優(yōu)惠政策解析2篇
- 2025年度木雕工藝品行業(yè)信息共享與數(shù)據(jù)服務合同4篇
- 2025年度個人二手房買賣協(xié)議書范本:房屋交易全程保險合同4篇
- 2025年食堂承包經營餐飲服務安全檢查與整改協(xié)議3篇
- 茉莉花-附指法鋼琴譜五線譜
- 結婚函調報告表
- SYT 6968-2021 油氣輸送管道工程水平定向鉆穿越設計規(guī)范-PDF解密
- 冷庫制冷負荷計算表
- 肩袖損傷護理查房
- 設備運維管理安全規(guī)范標準
- 辦文辦會辦事實務課件
- 大學宿舍人際關系
- 2023光明小升初(語文)試卷
- GB/T 14600-2009電子工業(yè)用氣體氧化亞氮
- 申請使用物業(yè)專項維修資金征求業(yè)主意見表
評論
0/150
提交評論