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电磁分析 

编辑
在线报名:
  • 客服在线请直接联系我们的客服,您也可以通过下面的方式进行在线报名,我们会及时给您回复电话,谢谢!
验证码

全国服务热线

1358-032-9919

广州公司:
广州市环市中路306号金鹰大厦3800
电话:13580329919
          135-8032-9919
培训QQ咨询:点击咨询 点击咨询
项目QQ咨询:点击咨询
email:kf@1cae.com