- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
openfoam使用步骤
[转载]使用openfoam的基本流前处理主要包括:网格的生成,物理参数的设定,初始边界条件的设定,求解控制设定,方程求解方法的选择,离散格式的选择。网格生成:OpenFOAM带有自己的网格生成功能blockMesh,他可以生成块结构化网格,使用比较简单,但对于复杂几何,该功能实施比较复杂。可以采用其网格软件如:gridgen,pointwise,gambit,icemcfd,tetgen,gmesh,ansys等生成网格,通过网格转换功能将其转换为openfoam可识别的网格。我本人通常采用gridgen生成fluent网格,再采用fluentMeshToFaom功能转换为openfoam可识别网格。物理参数的设置:OpenFOAM中的物理参数文件都在当前case文件夹里面的constant文件夹中,里面常用的文件通常常有environmentalProperties:设定环境参数,重力加速度transportProperties:传输相关参数,比如黏性,密度,对于非牛顿流体的黏性模型及其参数等LESProperties:大涡模型及其相关的模型参数RASProperties: 雷诺时均模型及其相关模型参数thermodynamicProperties:热物理相关参数这些文件的名字由solver里面定义,可以任意更改,上面书写是openfoam中的一个惯例,至于如何更改,请参看solver说明。初始边界条件的设定:初始条件和边界条件设定都在case文件夹中的0文件夹中,在Openfoam中,每个求解变量都有自己的单独的求解文件,下面以/OpenFOAM/OpenFOAM-1.5/tutorials/icoFoam/cavity/0/p压力文件为例进行说明FoamFile //文件头{version 2.0; //版本号format ascii; //存储形式二进制或者asciiclass volScalarField;//场的类型,体心标量场object p; //场的名字}// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ////场的单位,应当注意这里的压强单位并非实际压强,而是压强除去密度(p/rho)的单位//因为openfoam对动量方程直接求解的速度dimensions [0 2 -2 0 0 0 0];//初始条件:内部场为均匀场,所有全为0,如果不均匀场则采用setField或者funkySetField对初始场进行//设置,如何使用这些功能,以后再说明。internalField uniform 0;//边界条件boundaryField{movingWall //边界名字 {type zeroGradient; //边界条件为第二类边界条件,梯度为0}fixedWallsm //边界名字 {type zeroGradient;//边界条件为第二类边界条件,梯度为0}frontAndBack //边界名字 {//空边界条件,说明求解是二维流动,这个在openFOAM是独有的,如果遇到该类边界,该边界不参与方程离//散,也就是什么都不做。type empty;}}求解控制设定:文件为system/controlDict,典型的controlDict文件如下//文件头FoamFile{version 2.0;format ascii;class dictionary;object controlDict;}// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ////当前case所用求解器的名字application icoFoam;//程序从什么时候开始执行,startTime开始startFrom startTime;//startTime 设定为0,即从0时刻开始执行startTime 0;//程序什么时候结束,endTime结束stopAt endTime;//程序结束时间endTime 0.5;//当前算例的时间步长deltaT 0.005;//以什么方式写文件,按照时间步长写(也可以为runTime,即按照时间来些)writeControl timeStep;//20个时间步长,20*timeStep写一次;(如果按照时间来写的话为1)writeInterval 20; //写过程是否覆盖,如果0则不覆盖,大于0为覆盖,比如:2,case文件家中只有输出文件 比如6 和 7,//当算到8时候,会覆盖6,9会覆盖8,以此类推purgeWrite 0;//写的格式ascii或者binarywriteForm
文档评论(0)