OpenFOAM顶盖驱动流详解!使用手册(中文翻译版)_第1页
OpenFOAM顶盖驱动流详解!使用手册(中文翻译版)_第2页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、OpenSour匚巳FieldOperationandManipulation(OpenFOAM)C+十LibraryFigure1.1:OverviewofOpenFOAMstructure.引言这是开源场运算和操作C+库类(openfoam)的使用指南。他详细描述了OpenFOAM的基本操作。首先通过第二章一系列教程练习。然后通过对更多的独立组件的更详细的描述学习openfoam。Of首先主要是一个C+库类,主要用于创建可执行文件,比如应用程(application)。应用程序分成两类:求解器,都是为了解决特定的连续介质力学问题而设计的;公用工程,这些是为了执行包括数据操作等任务而设计的。

2、Of包括了数量众多的solver和utilities,牵涉的问题也比较广泛。将在第三章进行详尽的描述。Of的一个强项是用户可以通过必要的预备知识(包括数学,物理和编程技术)创建新的solvers和utilities。Of需要前处理和后处理环境。前处理、后处理接口就是of本身的实用程序(utilities),以此确保协调的数据传输环境。图1.1是of总体的结构。第4章和第五章描述了前处理和运行of的案例。既包括用of提供的meshgenerator划分网格也包括第三方软件生成的网格数据转换。第六章介绍后处理。UtilitiesMeshingToolsUserApplications5t白ndar

3、dApplicationsParaViewOthersEnSightChapter2指导手册在这一章中我们详细描述了安装过程,模拟和后进程处理一些OpenFOAM测试案例,以引导用户运行OpenFOAM的基本程序。$FOAM_TUTORIALS目录包含许多案件演示of提供的所有求解器以及许多共用程序的使用,在试图运行教程之前,用户必须首先确保他们已经正确地安装了OpenFOAM。该教程案件描述blockMesh预处理工具的使用,paraFoam案例设置和运行OpenFOAM求解器及使用paraFoam进行后处理。使用OpenFOAM支持的第三方后处理软件的用户可以选择:他们要么可以按照教程使用

4、paraFoam,或当需要后处理时参阅第六章的第三方软件使用说明。OpenFOAM安装目录下的tutorials目录中所有的指导手册都是可复制的。教程根据流动类型分列在不同的目录下,对应子目录根据求解器slover分类。例如,所有icoFoam的案件存储在一个子目录“incompressible/icoFoam",incompressible表示流动类型为不可压。如果用户希望运行一套例子,建议该用户复制tutorials目录到本地运行目录。他们可以轻松的通过输入下边的命令来复制:mkdir-p$FOAMRUNcp-r$FOAMTUTORIALS$FOAMRUN2.1盖驱动腔流Lid-

5、drivencavityflow本节将介绍如何进行预处理,运行和后处理一个例子,涉及二维正方形区域内的等温,不可压缩流动。图2.1中几何体的所有边界都是由壁面。在x方向顶层墙体以1米/秒的速度移动,而其他3个墙壁是静止的。最初,流动会假设为层流,将在均匀网格上使用icoFoam求解器来求解层流等温不可压流动。在本教程中,将研究加强网格的划分的效果和网格朝向壁面分级的效果。最终,流动雷诺数增加,必须使用用于恒温不可压缩紊流的pisoFoam求解器.constanLsystemI'igiire2.1:oft.ht*ltddrivencavity.2.1.1前处理通过编辑实例文件在OpenF

6、OAM中设置实例,用户应选择一个xeditor进行前处理,如emacs,vi,gedit,kate,nedit等。编辑文件可能在OpenFOAM中,因为I/0的目录格式的关键字意思很明确,很容易使没有经验的用户理解。模拟实例涉及网格,流场,属性,控制参数等数据。如4.1节所述,在OpenFOAM,这些数据是存储在实例目录下的一组文件中,而不是单个实例文件,如许多其他流体力学软件包。实例目录给予适当的描述性名称,例如:该教程中的第一个例子就叫cavity。在编辑实例文件和运行cavity实例前的准备工作中,用户应打开该案例的目录:cd/home/turtlebot/OpenFOAM/OpenFO

7、AM2.3.O/tutorials/incompressible/icoFoam/cavity*tutorialsincompressibleicoFoamcavityOpenFOAM经常运行在三维直角坐标系统中,生成的都是三维几何结构。OpenFOAM默认求解三维问题,可以通过在某些边界上指定一个'special'empty边界条件,这些边界垂直于不要求解的第三维,从而来求解二维问题。(三维如何求解二维的问题)111213141516171819202122cavity腔域是一个在xy平面上边长d=0.1m的正方形。起初用20*20的均匀网格。块结构见图2.2。网格生成器是O

8、penFOAM的blockMesh,根据一个输入文档blockMeshDict(在给定实器是Fiel-dDperationAndManipulationC+IIDpenFDAM:TheOpenSourceCFDToolboxIVersion:1.7.1Ueb:wwv.DpenF0AM.orgFoamFlleversion2.0;Figure2.2:Blockst:rnetlireoftherneshforthecavity.例的constant/polyMesh目录下)中的指定描述生成网格。对该实例输入的blockMeshDict如下所示:formatascii;classdictionary

9、;objectblockMeshDict;/IIconvertToMeters0.1;vertices(000)(100)23242526272829303132333435363738394041424344454647484950515253545556575859(110)(010)(000.1)(100.1)(110.1)(010.1);blocks(hex(01234567)(20201)simpleGrading(111);edges();patches(wallmovingWall(3762)wallfixedWalls(0473)(2651)(1540)emptyfrontAn

10、dBack(0321)(4567);mergePatchPairs6061);6263/*x»/XTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTXTII头7行是文件头信息,用寬显线表示。接下来是FoamFile子目录中的文件信息,用.大括号界定。注释(来自苏军伟博客):FoamFile/文件头version2.0;/版本号formatascii;/存储形式二进制或

11、者asciiclassvolScalarField;/场的类型,体心标量场objectp;/场的名字在手册其他部分:为清楚起见并节省空间,文件头,包括寬显线及FoamFile子目录,将会在引用实例文件时全部省去。文件首先指定块顶点坐标,然后通过顶点标号和单元个数定义块(此处仅有一个),最后,它定义边界块。建议用户查阅5.3节了解blockMeshDict文件中输入项的含义。在blockMeshDict文件上运行blockMesh生成网格。在这个实例目录中,做到这一点,只需在终端输入:blockMesh终端窗口产生blockMesh运行状态报告。任何blockMeshDict文件的错误都会被bl

12、ockMesh挑出来,所产生的错误信息直接引导用户到文件中产生问题的所在行。在该阶段不应该有错误。Creattn?)patchesCreatingcellsCreatingpointswithscaleSriPlx*$cellsize:i段帅5-&.W5J0沾-趴轉Ek趴如八nWritingpolyMeshHeshInformationboundingBox;f會瞬们(1)nPoints:882nCellsi4B0nFaces"1610ninternalFa匚!e<e;:75®PatchespatchG(starti76&stze:2

13、&)nane:rravtingWallpatch1(starti7B0size:6&)nanesfiseedwallspatch2£starts.80size:B&B)namesfrantAndBackEndturtlebot电turtlebot-virtuaL-nachine!TOpenFdAH/OpenFOWM-230/TTGU/retiee/cauliTGUparcticecavityconstantpolyMeshrnentsloadsbourtdaryblockMeshDictFcesneighbourownerpoints2.1.2边界和初始条件完

14、成网格生成,用户可以看看为这个案例设置的初始场文件。案例设置开始时间t=0s,所以初始流场数据被设置在cavity目录下面的名字为0的子文件夹里。文件夹0里包括两个文件,p和U。每个压力(p)和速度(U)的初始值和边界条件都必须设置。让我们来检验下文件p:17dimensions02-20000;1819internalFielduniform0;2021boundaryField2223movingWall2425typezeroGradient;262728fixedWalls2930typezeroGradient;313233frontAndBack3435typeempty;/空边界

15、条件,说明求解是二维流动,这个在openFOAM是独有的,如果遇到该类边界,该边界不参与方程/离散,也就是什么都不做。36 37 38I1/y/流场数据文件有3个主要的输入:dimensions:指定流场尺度(单位的指数),这里的运动学压力,即m2s-2(02-20000)(见第4.2.6节获取更多信息);internalField:其内部文件数据可以是统一的,由单一值确定;不均匀时,流场所有值必须指定(详细信息见4.2.8节);boundaryField:边界的流场数据,包括边界条件和及所有边界块的数据(详细信息见4.2.8节)。对于这个腔体例子,边界仅由壁面组成,分为两种边界:(1)fix

16、edWall:固定墙包括侧墙和低墙(2)movingWall:移动墙的顶盖。作为壁面,两者的P文件都是zeroGradient边界条件,即“压力垂直梯度为零”。frontAndBack代表二维情况下的前后两个块,因此必须设置为empty。该实例中,正如大多数我们遇到的情况一样,初始场被设置为是均匀的。在这里,压力是运动学上的压力,作为一种不可压缩的情况,其绝对值是不相关,因此为方便起见设置为uniform0。(为什么跟绝对值不相关?)用户可用同样的方式检测0/U文件中的速度场。dimensions为对速度所期望的因次,内部流场初始化为uniformzero,在这个例子里速度场必须由由3个矢量表

17、示,即均匀的(000)见第4.2.5节获取更多信息)。对frontAndBack块,速度边界流场要求相同的边界条件。其他方向都是墙:固定墙需要假定无滑移条件,因此fixedValue条件其值为统一(000)。顶面以1米每秒的速度沿x方向移动,因此也需要fixedValue条件,但为统一(100)值。物理特性实例的物理属性存储在后缀为Properties的文件里,放在Dictionaries目录树。对于Re这个icoFoam例子,唯一必须指定的运动粘度是存储在transportProperties目录中。用户可以检查运动粘度是否正确设置,通过打开transportPropertie

18、s目录来查看或编辑的入口。运动粘度的关键字是nu,在方程中用同音的希腊字母v代表。最初,例子运行时雷诺数为10,其中雷诺数定义为:(2.1)式中,d和1U1分别为特征长度和特征速度,v为运动粘度。此处d=0.1m,iui=1m/s,所以Re=10时,v=0.01m2s-10因此正确的动力粘度文件入口指定为:17ianunu02100000.01;control与时间控制、解数据的读取与存储相关的输入数据都是从controlDict目录读入的。读者应看看这个文件;作为实例控制文件,他放在system目录中。运行的开始/结束时刻及时间步长必须设置。4.3节详细介绍了OpenFOAM提

19、供够灵活的时间控制。在这个教程我们设置开始运行时刻从t=0开始,这意味着of需要从文件夹0读取流场数据,更多案例文件结构信息见4.1小节。因此我们设置startFrom关键词为startTime并指定关键词startTime为0。对于结束时间,我们希望获得流动绕空腔循环(即稳定)时的稳态解。一般而言,层流中,流体通过该区域10次才能达到稳态。在这个例子里,流动没有通过该区域,因为这里没有进口也没有出口。取而代之,设盖子穿过腔体10次为结束时间,即1s;事实上,事后发现0.5s就足够了,因此应采用该值。指定stopAt关键词为endTime,并赋值0.5现在我们需要设置时间步长,由关键词delt

20、aT代表。运行icoFoam时为达到瞬时精确及数值稳定,要求Courant数小于1。对于一个单元Courant数定义如下:6t是时间步长,|U|是通过单兀的速度大小,6x是该速度方向上的单兀尺寸。流速在穿过区域时是变化的,必须确保任何地方的Co<1。因此我们以最糟的状况选择6t的取值:Co的最大值必须与大尺度流速和小的单元尺度联合的效果相一致。这里,这个整个区域的单元尺寸固定,所以Co的最大值发生在紧挨着盖子的地方,这里速度接近1米每秒。单元尺寸为:因此为了达到全部区域内Co<=1,时间步长deltaT的设置必须小于等于:(24)作为模拟进程,我们希望能写下每隔一段时间的结果,这样

21、我们就能在后处理包里查看结果。关键词writeControl表示设置输出结果时刻的一些可选项。这里我们选择timeStep选项:每隔n次时间步长输出一次结果,n值由关键词writeInterval指定。假设我们要设置在时刻0.1,0.2,.,0.5s输出结果,时间步长是0.005s,因此是每20次步长输出一次结果,故给writeInterval赋值20。Of会根据当前时间创建一个新的目录,例如0.1s,在每个时刻输出一系列的数据,在4.1章节有具体介绍。在icoFoam求解器输出的每个流场信息U和p放在时间目录里。对于这个例子,在controlDict中的输入如下:applicaTionsra

22、xtFrcELicoFoam;staxrTine;2123GtartTine-0;24stopAt州endTine0.5;272-KdeltaT0.00B;別:n.writeControltimeSTep;:-J2:胃uritfiliiterval20;purgeVrite0;S-fiwriteFornLaTascii;仙writePrecisian6;HUwriteCompressionuncompressed;timeForHatgeneral;timePrecision6;runTineModifiableyes;皿41424S44454.曲47型与离散和线性求解器设置用户

23、可以在system目录下fvSchemes文件中指定选择有限体积离散法。线性方程求解器规范和限差和其他算法控制在fvSolution文件中,同在system目录下。用户可以自由的查看这些库类,但是目前我们不需要讨论入口数据,除了fvSolution中PISO子目录下的pRefCell和pRefValue在封闭系统如腔体内,用的是相对压力:是压力范围而不是绝对值。在这种情况下,求解器在pRefCell单元中通过pRefValue设置一个相对值,在该实例中都设为0。改变其中任何一个的值都会只改变绝对压力场,而不会改变相对压力场或速度场。2.1.2査看网格在实例运行前,最好查看一下网格以检查是否有错

24、。网格在OpenFOAM提供的后处理工具paraFoam中查看,通过在终端在案例目录下(yingying-desktop:$cd/home/ying/RUN/tutorials/incompressible/icoFoam/cavity回车)输入:paraFoam来启动paraFoam后处理。rtlebotlturtlebot-virtual-nachine:/OpenFOAM/OpenlFOAM-2.3xO/TGLI/parctice/cavit$paraFoanFATALERROR:ParaViewreadernoduleLibrariesdonotexistPleasebuildther

25、eadermodulebeforecontinuing:cdSFOK_UTILITIES/po£tProcessing/graphiC£/PV4Readers*/Allwclean,/Allwriake也可以通过另一个目录位置执行:paraFoam-case$F0AM_RUN/tutorials/incompressible/icoFoam/cavity从而打开了ParaView窗口如图6.1所示。在PipelineBrowser,用户可以看到ParaView已经打开了cavity案例模块:cavity.OpenFOAM。在点击Apply按钮前,用户需要从RegionSta

26、tus和面板上选择一些几何结构。因为该案例很小,通过检查RegionStatus面板标题相邻的box可以很容易地选择所有的数据,这可以自动检查各个面板中的所有独立部件。然后用户可以点击Apply按钮将几何结构加载到ParaView中。节中介绍了一些常用设置,请查阅该章节申的相关设亶。之后用户应该打开Display面板,其控制着所选模块的可视化重现。在Display面板中,用户应该做如下工作,如图2.3所示:(1)设置Color为SolidColor;(2)点击SetSolidColor选择适当的颜色,如黑色(对于白色背景);(3)在Style面板,从Representation菜

27、单选择Wireframe。背景颜色可以在顶部菜单面板的Edit中选择ViewSettings.来设置。尤其是第一次启动ParaView,必须如6.1.5节描述的一样操作。特殊的,由于这是一个2D的情况,要求在Edit菜单中选择ViewSettings窗口,在General面板必须选择UseParallelProjection。在Annotation窗口OrientationAxes可以勾选或不宣,或通过鼠标拖曳来移动。(JpenDisplaypanelSelectColorbySolidColorSetSolidColor.巴q、bhickSelectWireframesaircwFihe-F

28、?RieEduyiawDkdCDcirre-ercwsarlimanonTbolsHebTraie95'Wir&lT3Tf5m|曰|口"rbutnO&IKl:inspectorkInlaraflCalap5口胛p甲Texture匚诽审呼SevUireframeRepresertiininouraudIrTterpalabonMalenaMane:PCirtfiH5-00Prqc<ilS5clspayi时maiionnCdorFigure2.3:X/iiyivin呂theni«shinparaFoam.3t-lSJldC-Qla-Q5ahd匚口商

29、2.1.3运行应用程序正如一切UNIX/Linux可执行软件,OpenFOAM应用程序可以按以下两种方式运行:作为前台处理器,也就是说,前台处理器中的shell一直等候,直到命令在给定命令提示符之前完成为止;作为后台处理器,不需要在shell接受附加要求之前完成。在该情况下,可以在前台运行icoFoam。icoFoam求解器即可以通过进入案例目录,在命令提示符处输入以下命令:icoFoamnuldtive=-2-04992e-18DICPCG:SolvingforprInitialresidual=廿Finalresidual=8*3304!e-e?,NoIterations0timestep

30、continuitj/errors:muelocal=8.S9385e-OD,global=5.07£89e-19,cunulattve=-1.5l2i33e-18ExecutionTine=0*22sClockTtne=1sTtme=9,5CuurarrcNumbermean:0222158max:e*852134snoothSolver:SolvingforUx,Initialresidual-2*3Z737e-07,尸inalresidual-2.32737e-07?NoI七erations&srnoothEtjLvmr:SolvingforUyInitialresid

31、ual=5.07OO2e-07Finalresidual=5.07002e-O7,NoiterationsDICPCGiSolvingfarp,Initi日Ire5i.dual_=1rOZSle-OC,Finalresidual=2*77Z37e'07,NoIterations1timestepcontinuityerrors:sunlocal=4,0374e-09,global=-0204e-19,cuniiatiwe二-2.44407e-18dicpcg:solvingforp,inlttalresidual.=5.319呂7亡-讣7Finalresidual=5*3198;e-S

32、7,NoIterations0timestepcontinuityerrors:&jhlocal=6+12557e-99,global=-3,937305-20cinula七ive=-2.8344e-18ExecuttonTine=0+22sClockTtne=1sEndThatmeansthatParaViewhasnotbeenbuiltyet.Youcanfollowtheinstructionsfromstepnumber#9fromthispage:从而执行,也可以是可选择的-case,给定案例目录,如:icoFoam-case$F0AMRUN/tutorials/incom

33、pressible/icoFoam/cavity进程写入终端,显示当前时间,最大Courant数,所有场的初始及最终残差。Figure6.1:TheparaFoamwindow2.1.4后处理当结果一写入时间目录,就可以用paraFoam来查看。回到paraFoam窗口,并且选择cavity.OpenFOAM模块的Properties面板。如果案例模块的正确的窗口面板似乎在任何时刻都不存在,则确保:cavity.OpenFOAM是高亮蓝色的;旁边的eye按钮是开的以显示图像是可行的;为了使paraFoam准备好显示所感兴趣的数据,首先使要求运行时间为0.5s,如果当ParaFoam开着时运行案

34、例,时间目录中的输出数据不会自动在Paraview中加载。为装载数据,用户必须在Properties窗口中选择UpdateGUI,然后点击绿色的Apply按钮。时间数据就会加载到ParaView中。等值面及等值线的绘制为查看压力,用户应该打开Disply面板,由于它控制着所选模型的可视化表现。为绘制一个简单的压力曲线,用户需要按照下面来选择,如图2.4具体所示:在Style面板,从Representation菜单选择Surface;在Color面板,选择。p及RescaletoDataRange,为了看早t=0.5s时刻的结果,用VCRControls或者CurrentTimeC

35、ontrols将时间设为0.5,这些位于ParaView窗口顶部菜单下方的工具栏中,见图6.4.压力场如预期一样,腔体左上部为低压区,右上角为高压区,如图2.5所示。PrtEsunprp(Pti-4.40-Z.Q3.0.討2.564.MFigure2百:Prenresinthecavityf眇c_通过点图标。p,压力场在各个单元间内插,从而得到连续的流场。相反的,如果用户选择单元图标dF-,在每个单元上就是一个蛋度的压力值,所以每个单元都由单一的颜色表示而没有梯度。颜色棒图可以在ActiveVariableControls中点击ToggleColorLegendVisibility而出现,也可

36、以在View菜单选择ShowColorLegend。点击ActiveVariableControls工具栏或Disply窗口中Color面板中的EditColorMap按钮,用户就可以设置颜色棒图特性的范围,比如文字大小,字型选择及尺度计数形式等。通过鼠标拖动可以改变颜色棒图在图像窗口的位置。ParaView的新版本默认使用颜色尺度为蓝色到白色到红色万恶不是更常见的蓝色到绿色到红色(彩虹)。因此用户第一次执行ParaView时,可能希望改变颜色尺度,者可以通过在ColorScaleEditor中选择ChoosePreset(初调),然后选择BluetoRedRainbow。在点击OK确认以后,

37、用户就可以点击MakeDefault按钮以便ParaView一直采用这种颜色色棒。如果用户旋转图像,可以发现整个几何表面的都按压力上色了。为产生真实的等值线,用户首先要产生一个切割面,或者说“slice(切片)”,穿过整个几何形状使用Slice滤波器,见节描述。切割面中心在(0.05,0.05,0.005),垂直线设为(0,0,1)。一旦产生了切割面,通过使用6.1.6节所介绍的Contourfilter来产生等值线。引入切割面通常用户都希望产生一个穿过平面的等值线,而不是等值面。用户就需要用Slicefilter来创造一个切割面,等值线就在这个切割面上绘制。Sli

38、cefilter允许用户在SliceType中通过设定center及normal/radius来指定切割Plane,Box或Sphere。用户可以用鼠标操作切割面。然后用户可以在切割面上运行Contourfilter易产生等值线,操作见.1.6等值线绘制在顶部菜单栏的Filter菜单中选择Contour,就可绘制等值线。filter在指定的模块上运行,所以如果模型本身是3D的,则等值线会是一系列的2D表面分别代表恒定的值,也就是说等值面。Contour的Properties面板包括Isosurfaces列表,可以编辑,最方便的就是使用NewRange窗口,所选择的尺度场从下拉菜单

39、中选择。所得等值线图如下所示:ParaView3.Q.0FileEdrtViewSourcesFikers少居MacrosHelpTime:B|tSurface阖曙也牴藝t®参凸逅因雪汐ti魁越淳IU洌Pipelir上:童区!匸LJll_I”2.:V.JDnJZ.-I'.ScelCmtcxirl2.4.2向量绘制厂白-Isosurfaces在绘制流速向量之.、几前,需要移走其他已经创建ObjectIn5pe£torPropertiesDisplay|linfarmatlioifi"atDEtefe匸I厂白-ContourCOTitmjrBy|pT(xCom

40、puteNormalsComputeGradients匚Compute5匸alar5.询rufRange143閃阳乩4.946541Delete的模块,比如上面使用的Slice及Contourfilters。可通过在以PipelineBrowser中高亮相关模块,然后在各自的Properties面板中点击Delete,从而整体移除,也可以通过切换PipelineBrowser中相关模块的eye按钮来使其处于不工作状态。现在我们希望在每个单元的中心产生一个速度向量点符,首先要过滤单元中心的数据,如所描述。在PipelineBrowser中使cavity.OpenFOAM模块高亮,用

41、户从Filter菜单中选择CellCenters,点击Apply。在PipelineBrowser中使Centers高亮,然后在Filter菜单中选择Glyph(点符),则Properties窗口应该如图2.6所示,在Properties面板,速度流场U自动在vectors菜单中选择,因为它是目前唯一的向量场。默认图像的ScaleMode为速度的VectorMagnitude,但是由于我们想看到贯穿整个区域的速度,应该选择off.SetScaleFactor为0.005点击应用,出现图像,但可能是-个单一的颜色,比如白色。用户OpwnParameterspanelSp<wifySetSc

42、日leFactor0-0-05SelectScaleMadeoffSelect:GlyphTypeArrovPropertiesDi呵avinkmiatiQn;XFE®phTypeoArrowTipRadiusSharft国电sEilion3cOnerrt宜决ivtodeoirFKtor0.005MajdniumNumber凸Pointe5QQCIxMaskPaintsFigure2南Propertit>s&>rth«ClyphlilhT.应该根据速度量级用颜色标识图像,通过在Disply面板中设置ColorbyU来控制,也可以在EditColorMap

43、中选择ShowColorLegend(图例)。输出如图2.7所示,在图中,大写的TimesRomanfonts是在ColorLegend标题中选择的,通过取消选定AutomaticLabelFormat,在LabelFormat文字框中输入%-#6.2f将其标记为2个固定的有效数字。在ViewSettings的General面板中设置背景色为白色,见节描述。.1.7向量绘制Glyphfilter产生,filter读取Vectors中选择的场,且提供一个GlyphTypes范围,Arrow提供一个清晰的向量平面图给GlyphTypes。在一个用户可以操作其为最佳效果的面板,每个图形

44、都有图形控制选项。剩下的Properties面板主要包括图像的ScaleMode菜单,最常见的ScaleMode选项为:Vector,其中图像长度正比于向量量级;Off,其中每个图像都是一样的长度。SetScaleFactor参数控制图像的基本长度。在单元中心绘制向量默认在单元顶点绘制,但通常希望在单元中心绘制数据。首先对案例模块应用CellCentersfilter,然后对产生的单元中心数据应用Glyphfilter。流线绘制同样的,在ParaView中继续后处理之前,要使之前所描述的向量绘制等模块退出,现在希望绘制速度流线,见6.1.8节所述。在Pipeline

45、Browser中保持cavity.OpenFOAM模块高亮,在Filter菜单选择StreamTracer,点击应用。参数窗口应设置如图2.8所示。指定Seedpoints(原点)沿着LineSource,其运行垂直于几何中心,也就是说,从(0.05,0,0.005)到(0.05,0.1,0.005),在本教程中的图像应用:pointResolution为21;MaxPropagation为Length0.5;初始StepLength为CellLength0.01;以及IntegrationDirectionBOTH。默认参数使用Runge-Kutta2IntegratorType。点击应用产

46、生轨迹,然后从Filter中选择Tube来产生高质量的流线图。在本图中,选择:Nun.Sides6;Radius0.0003;Radiusfactor10.流管根据速度量级上色。点击Apply产生如图2.9所示。ParameterspcineLOpenParameterspcineLSetMaxPropagationtoLength0.&Set:InitialStepLengthtoCellLengtii0X)1Set:IntegrationDirectiontoBOTHfSpEcifvLine3ourceandsetpc-intfituifiresolutionSetMaxPropa

47、gationt.oLength0.&Set:InitialStepLengthtoCellLengtii0X)1Set:IntegrationDirectiontoBOTHfSpEcifvLine3ourceandsetpc-intfituifiresolution7iiirc2曲Frcpcrtispt-LiielfortheStreamTracerlilt总匚2.1.5增加网格分辨率在每个方向上通过一个2因数增加网格分辨率,粗网格得出的结果可以映射到细网格上,作为问题的初始条件。然后将细网格的解与粗网格的解作对比。用已存在的案例创建一个新的案例现在希望根据cavity创

48、建一个名为cavityFine的新案例,用户需要克隆cavity案例,并且编辑必须的文件。首先,在于cavity相同的目录下创建一个新的案例文件,如:cd$F0AMRUN/tutorials/incompressible/icoFoammkdircavityFine然后从cavity案例中拷贝基本的文件到cavityFine中,然后进入cavityFine案例:cp-rcavity/constantcavityFinecp-rcavity/systemcavityFinecdcavityFine创建细网格希望用blockMesh增加网格单元数。打开blockMeshDict文件,

49、编辑block的指定信息。块的指定在blocks关键词下的列表中。Block定义的句法结构见节的完整描述;在该阶段只需知道紧随hex的首先是块顶点的列表,然后是是每个方向上许多单元数的列表。最初在cavity案例中设为(20201),现在改为(40401)并保存文件像之前一样运行blockMesh,得到新的细网格。将粗网格结果映射到细网格mapFields应用程序将与一个给定几何结构相关的场映射到另外一个几何结构的相应场中,在我们的例子中,流场认为是连续的,由于源场及目的场的几何结构及边界类型或条件都是恒定的。在该例子中执行mapFields时使用-consiste

50、nt命令行。从目标案例controlDict中startFrom/startTime指定的时间目录中读取mapFields映射的流场数据,也就是说,结果被映射到的地方。在本例中,希望从cavity案例粗网格的最终结果映射到cavityFine案例中的细网格,因此,由于这些结果存储在cavity的0.5文件中,在controlDict文件中设置startTime为0.5,startFrom设为startTime。现在案例已准备好运行mapFields,输入mapFields-help快速显示mapFields要求源案例目录作为自变量。使用-consistent选项,所以应用程在cavityFin

51、e目录执行:mapFields./cavity-consistent应用程序将运行并在终端输出:C丄Source:".""cavity"Target:".""cavityFine"CreatedatabasesastimeSourcetime:0.5Targettime:0.5CreatemeshesSourcemeshsize:400Targetmeshsize:1600Consistentlycreatingandmappingfieldsfortime0.5OpenFOAM-Lid-drive

52、ncavityflowU-33interpolatingpinterpolatingUEnd控制调整为保持Courant数小于1,见节所讨论的,由于所有单元的尺寸都评分了所以时间步长必须评分,所以controlDict文件中deltaT设为0.0025。流场数据在固定数目的时间步长间隔时输出。此处演示如何在固定时间间隔指定数据输出。在controlDict中的writeControl关键词下,在用runTime输入产生的输出结果间指定一个固定数量的运行时间,而不是通过timeStep输入固定书目的时间步来输出。在该案例中,用户应该指定没0.1输出,因此应设置writ

53、elnterval为0.1且writeControl为runTime。最终,由于案例是在粗网格结果上开始的,只需要运行很短的时间就能达到合理的收敛为稳态。所以endTime设为0.7Squebao这些设置正确并保存文件。运行代码作为后台过程用户应该体验运行icoFoam作为后台程序,重新定向终端输出到log文件,者在之后可以看到。在cavityFine目录下,用户执行:icoFoam>log&catlog在细网格上绘制向量用户可以在ParaView中同时打开多个案例,这是由于本质上每个新的案例就是PipelineBrowser中一个新的模块。当在Par

54、aView中打开一个新的案例时有一个次要的不便,因为有一个前提,所选数据是一个带有扩展名的文件。但是在OpenFOAM中,每个案例存储在指定目录结构的大批没有扩展名的文件中,paraFoam程序自动运行的结果,就是产生一个带有扩展名.OpenFOAM的空白文件,因此,cavity案例模块称为cavity.OpenFOAM。然而,如果用户希望在ParaView中直接打开另一个案例,就需要创建这样一个空白文件。例如,为加载cavityFine案例,通过输入下列命令来创建该文件:cd$FOAMRUN/tutorials/incompressible/icoFoamtouchcavityFine/ca

55、vityFine.OpenFOAM现在通过在File菜单选择Open,并且通过浏览目录选择cavityFine.OpenFOAM,cavityFine案例可以加载到ParaView中。用户现在可以在ParaView中由细网格绘制向量图。通过同时使两个案例的glyph激活,图像可以与cavity案例相比较。绘制图像用户也许希望通过抽取一些速度标量及沿着穿过区域的轴线绘制2维图像来使结果具体化。OpenFOAM对这种数据处理很在行。有无数的应用程序可以做专门的数据处理,一些简单的计算包括在一个单个的应用程序foamCalc中。作为一个应用程序,它是独特的,因为它是这样的:foamCalc<calcType><fieldName1.fieldNameN>在<calcType>中指定计算器操作;在输出时,采用下列操作:addSubtract;randomise;div;components;mag;magGrad;magSqr;interpolate。用户可以通过故意调用一个不存在的操作来获得<calcType>列表,所以foamCalc产生一个错误信息并且列出可用的类型,例如:>>foamCalcxxxxSelectingcalcTypexxxxunknowncalcTypetypexxxx,constru

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论