在Fluent中实现自动操作

这段时间做一个蓄热体模拟的case,需要周期性的改变入口和出口边界条件,一个周期时长60s,一共需要模拟6000s,也就是要切换100次边界条件,如果人工去改条件,十分繁琐,而且不易精确地把握操作的时刻。那么怎样使Fluent自己每隔一段时间执行一系列事先定义好的操作呢?这里就要用到Dynamic Mesh里面的Event功能了。即使你的case不需要动网格,也可以勾选Dynamic Mesh选项

注意求解应是瞬态问题,在General选项卡中勾选Transient

在Fluent中实现自动操作_第1张图片

Number of Event中输入要定义的事件数比方有两个不同自定义的操作heat(设定蓄热过程边界条件)reg(设定放热过程边界条件)需要交互执行100次
在Fluent中实现自动操作_第2张图片
点击Define,在Type下拉菜单中选中Execute Command,在Command中输入下面的命令

file/read-journal/reg

这里的Command是Fluent中的TUI指令,即在Console窗口输入的命令,在Console窗口敲一下回车就可以看到命令列表,所有在图形界面可以用鼠标实现的操作都可以在这里用键盘敲入命令实现。
在Fluent中实现自动操作_第3张图片

你可能会问这行代码是做什么用的,这就是接下来我要讲的一个技巧,read-journal是读日志文件,reg是日志文件的名字,这个日志文件记录了我们在Fluent中的操作。如果我们能把改参数的动作用日志文件记录下来,需要再次重复这个改参数操作时,只要读一下日志文件,软件就会自己帮我们重复已经记录的操作,这样就实现了“自动操作”。
具体做法是:在File->write点击Start Journal,为你的journal文件输入一个名称,本例输入reg,点击ok后日志文件就开始记录你的操作,比方本例中我们将出入口边界条件改一下,完成后在File->write点击Stop Journal,刚才那一系列的操作就被日志文件记录了下来。本例中用同样的方法记录了另一个日志文件heat。
接下来回到Event,本例中理论上我们只要将这两个日志文件每隔60s读取进来就可以实现文章一开始提出的控制目标,但这里有个小问题,在Event窗口这样一个个添加操作太慢了,都是重复劳动,这里有个小技巧,我们先只添加两个事件,分别是读reg和读heat(记得勾选on),然后点击write导出event文件,用记事本打开后是这样的

(
((active . #t) (name . "event-0") (start . 60.) (action 15 "file/read-journal/reg"))
((active . #t) (name . "event-1") (start . 120.) (action 15 "file/read-journal/heat"))
)

由于本例就是将这两个事件重复100次,我们每次需要改的是event编号和事件,可以直接用复制粘贴的方法在文本中改,或是自己用Python写一段小循环生成这种格式的文本(记得后缀为.event)。改好后在Event窗口点击read读取。开始计算后,Fluent就会自动在计算到60s,120s,180s,240s…时执行我们预设的操作。
在Fluent中实现自动操作_第4张图片


至此,我们一开始提出的自动操作目标已经实现,实质上这种读journal文件的方法和Word中的宏操作比较类似。另外,Fluent的TUI比GUI的功能更加丰富,比如读写整个case的setting。在做模拟时适当的运用这些方法可以大大提升工作效率。

你可能感兴趣的:(Fluent)