ANSYSFluent_批处理及连续计算方法
2016-09-04 by:CAE仿真在线 来源:互联网
一、前言
对于工程应用来说,计算精度要求不高,但是计算的case比较多,尤其模型优化工作,你可能有几十个case要算。一个case只需要计算个把小时,对于周末或者晚上来说,这么长时间内只能算一个工况,实在是浪费时间。对于特殊瞬态问题,不同时刻边界条件或者材料参数或者工况有所变更,此时可以更改journal文件进行连续计算。尤其是在工程应用中,为我们设计工程师节省了不少的计算时间。
二、什么是journal文件?
journal 文件在fluent中的作用就像windows下的批处理文件一样,文件中包含了一连串的操作命令(command)。
Journal文件是包含一系列TUI命令的文本文件。
Journal文件可以用文本编辑器来编写,也可以由执行分析时用的fluent命令记录来产生。
Fluent生成的journal文件包括任何GUI操作(都是以TUI的形式)。如果有许多任务要执行时使用journal文件显得非常方便。以下介绍两种制作journal文件的方法。
三、生成journal文件的方法
3.1 记录操作方法写journal文件
基本原理是使用fluent的journal文件,你要写一个journal文件,命名为a.journal在fluent 的file/write/start journal,选择文件名a.journal后,fluent就还是记录你的操作到a.jouranl中,你操作完成后,file/write/stop journal,然后用记事本打开,全部都是记录的操作步骤。
下面一段内容为已写好的journal文件,其作用是读取已有的case和data,计算保存计算结果。内容如下:
(cx-gui-do cx-activate-item "MenuBar*ReadSubMenu*Case & Data...") //打开 read case and data对话框
(cx-gui-do cx-set-text-entry "Select File*Text" "abcd.cas") //选择文件“abcd.cas”,这个文件改成你的文件
(cx-gui-do cx-activate-item "Select File*OK") //点击选择文件对话框的确定
(cx-gui-do cx-activate-item "MenuBar*SolveMenu*Iterate...") //打开iterate 对话框
(cx-gui-docx-set-integer-entry"Iterate*Table1*Frame2(Iteration)*Table2(Iteration)*IntegerEntry1(NumberofIterations)" 1000) //设置number of iterations 为1000,在你的case中没有对iterate apply过,这里默认的是1,因此在这个文件中我又设置了一次计算步数
(cx-gui-do cx-activate-item "MenuBar*SolveMenu*Iterate...") //激活iterate 对话框
(cx-gui-do cx-activate-item "Iterate*PanelButtons*PushButton1(OK)") //点击iterate,开始运算,直到运算结束(满足你设置的残差要求或者达到了1000步)
(cx-gui-do cx-activate-item "MenuBar*WriteSubMenu*Case & Data...") //打开保存case and data对话框
(cx-gui-do cx-set-text-entry "Select File*Text" "abcd.cas ") //选择保存的文件名“abcd.cas”
(cx-gui-do cx-activate-item "Select File*OK") //点击确定
(cx-gui-do cx-activate-item "Warning*OK") //由于前后两次使用的文件名一致,会跳出一个对话框警告是否覆盖,点击ok;如果你两次的对话框选择的文件名不一致,就不会警告你要不要覆盖,那么这一行就没有了
至此完成了一个case的读取,计算,保存。把上述过程再重复一次,其中读取、保存的文件换成你的第二个case,那么就进行第二个case的读取计算保存了。你有n个case需要计算,那么copy n次以上内容,更改读取、保存的文件名字在同一个journal文件中,比如文件名为1.journal。
简单方法:
如果你case都是2维的,或者都是3维的,那就简单了。首先,你把所有的case都设置好,并进行简单的计算,以确保你的case是收敛的。注意在iterate对话框中 number of iterations中输入合理的数值后记得Apply一下,否则这个数值不能记录到case中,那么以后你读入的case文件只计算一步,保存好caseand data文件。
打开对应版本的fluent,可以是单机的,可以是联网的;File/read/journal,选择你journal文件即可。
命令行:
如果你的case会有维数的变化,那么你写一个bat文件即可。
用记事本写如下内容,命名为1.bat, linux可以写shell脚本,对后缀没有要求:
fluent 2d -g -i g -i 11.journal
fluent 3d -g -i g -i 12.journal
fluent 2ddp -g -i g -i 13.journal
fluent 3ddp -g -i g -i 14.journal
上述是打开了四个不同的fluent,2d 2ddp 3d 3ddp,而journal文件11 12 13 14分别对应读取二维三维的case data文件。
3.2 TUI命令行写journal文件
打开fluent,然后在TUI(Text User Interface文本用户界面)输入file,回车键入read-case-data,回车提示case/data file name,然后将case所在文件路径copy到该命令行中,即可读入指定的文件,后续以同样的方法输入相应命令行,进行相关设置 。
然后将设置命令行copy到记事本,保存名为a.jou,至此完成journal文件的编译,具体操作方法请查看下面的案例分享。TUI中还包括图形用户界面中没有的一些设置,如周期性边界条件。
四、瞬态连续计算journal文件案例分享
工业厂房内堆放高温固体,顶部分布24台抽风机,前后门口敞开,墙壁侧面安装百叶窗,每隔3min工人师傅开推车放进一个250℃的高温钢卷,厂房内堆积360根钢卷,因此必须满足厂房内过道上的温度在人体可以承受的温度范围内,否则该设计不合理,需要重新进行风口及风量的布置。
对于我们仿真设计人员来说,在fluent中采取的方法是初始时所有的固体区域均设为流体区域,与大的空气区域的接触面为interior,3min后将其中一个小的流体域更改为solid,然后接触面自然变为wall,并生成相应的wall-shadow,我们可以一直盯在电脑前,当计算到3min时,再将另一个小域变为固体域,然后给定初始温度250℃,但是这样效率就明显下降,这时我们需要利用强大的journal文件来实现自动连续计算过程。
下面为TUI命令行编写的journal文件:
file/read-case "D: /aa.msh" //读入aa.msh文件
mesh/check //网格检查
mesh/scale 0.001 0.001 0.001//网格尺寸更改
define/models/unsteady-2nd-order y//打开非稳态计算
define/operating-conditions/gravity y 0 0 -9.81//打开重力项
define/models/energy y n n n y//计算热流动分析,打开能量方程
define/models/viscous/kr y//选择realizable k-e湍流模型
define/models/viscous/buoyancy-effects y//勾选buoyancy-effects
define/materials/change-create air air y boussinesq 1.225 n n n n y 0.0033 n //修改气体参数
define/materials/copy/solid steel //复制材料库中steel的材料参数
define/boundary-conditions/zone-type zone1 solid //将第一个堆放区域单元类型改为solid,含义为工人师傅将一根钢卷放入厂房内
define/boundary-conditions/pressure-inlet door-inlet y n 0 n 0 n 33 n y n n n y 5 4.2
define/boundary-conditions/pressure-inlet shutter y n 0 n 0 n 33 n y n n n y 5 3.314
define/boundary-conditions/pressure-outlet door-outlet n 0 n 33 n y n n n y 5 4.2 n n n
define/boundary-conditions/zone-type exhaust_fan exhaust-fan
define/boundary-conditions/exhaust-fan exhaust_fan n 0 n 33 n y n n n y 5 1.232 n n n constant 100//根据实际工况设定边界条件
solve/set/p-v-coupling 24//设置压力速度耦合为coupled
solve/set/gradient-scheme y//设置Gradient为Green-Gauss Node Based
solve/set/discretization-scheme/pressure 14//更改压力离散格式为PRESTO!
solve/initialize/hyb-initialization //进行初始化
solve/patch/(solid1) temperature 523.15//钢卷zone1初始时刻温度patch为523.15K
file/write-case-dat "D:/aa"//保存aa.cas和aa.dat文件
//当然以上所有设置可以在GUI图形用户界面中进行鼠标设置,以下为journal的重点内容
solve/set/time-step 0.01//设置时间步长,初始时给定一个小的时间步,有助于快速收敛
solve/dual-time-iterate 100 20//给定瞬态时间步数
solve/set/time-step 0.1//调整时间步长
solve/dual-time-iterate 90 20//给定瞬态时间步数
solve/set/time-step 1//调整时间步长
solve/dual-time-iterate 170 20//给定瞬态时间步数
file/write-case-dat "D:/aa _zone1"//保存case,data文件
define/boundary-conditions/zone-type zone2 solid//将该流体区域变为固体区域,含义为3min后第二个钢卷放入厂房内
solve/patch/(zone2) temperature 523.15//给定该钢卷初始温度为523.15K
solve/dual-time-iterate 180 20//瞬态迭代求解
file/write-case-dat "D:/aa _zone2"//保存case,data文件
define/boundary-conditions/zone-type zone3 solid//将该流体区域变为固体区域,含义为3min后第三个钢卷放入厂房内
solve/patch/(zone3) temperature 523.15//给定该钢卷初始温度为523.15K
solve/dual-time-iterate 180 20//瞬态迭代求解
file/write-case-dat "D:/aa _zone3"//保存case,data文件
……//复制更改对应名称
define/boundary-conditions/zone-type zone360 solid//将该流体区域变为固体区域,含义为3min后第360个钢卷放入厂房内
solve/patch/(zone360) temperature 523.15//给定该钢卷初始温度为523.15K
solve/dual-time-iterate 180 20//瞬态迭代求解
file/write-case-dat "D:/aa _zone360"//保存case,data文件
……
以上操作即可实现该瞬态问题的连续计算,为设计工程师节省不少时间,否则这是一个相当大的工作,耗时长,需要工程师一直盯着。因此巧用journal命令行,可以实现工作最大化。
为方便演示journal瞬态连续计算问题,以下是该物理问题的简化,简化方案见下面示意图。
define/boundary-conditions/zone-type zone1 solid
solve/patch/(zone1) temperature 523.15
solve/dual-time-iterate 180 20
file/write-case-dat "D:/aa _zone1"
define/boundary-conditions/zone-type zone2 solid
solve/patch/(zone2) temperature 523.15
solve/dual-time-iterate 180 20
file/write-case-dat "D:/aa _zone2"
define/boundary-conditions/zone-type zone3 solid
solve/patch/(zone3) temperature 523.15
solve/dual-time-iterate 180 20
file/write-case-dat "D:/aa _zone3
五 、总结
不论是使用记录操作步骤生成journal文件,还是TUI中命令行写journal文件,宗旨只有一个节省时间,前一种方法操作简单,上手较快,但是更改起来就比较麻烦,因为语句较为繁琐,而后一种方法简单明了,能一眼就看明白一条命令的含义及作用,只是第一次编辑时需要自行编辑,后面类似的计算只需更改或添加相应的命令行即可,个人比较偏向TUI命令行的方式,同时TUI语言编写的.jou文件,常常用于大型集群的投递计算,因此了解TUI语言的编写,将大大方便我们在以后的学习过程中进行相关操作。
相关标签搜索:ANSYSFluent_批处理及连续计算方法 Fluent培训 Fluent流体培训 Fluent软件培训 fluent技术教程 fluent在线视频教程 fluent资料下载 fluent分析理论 fluent化学反应 fluent软件下载 UDF编程代做 Fluent、CFX流体分析 HFSS电磁分析