本文摘要(由AI生成):
本文介绍了Fluent脚本开发中的几种重要方法,包括使用Benchmark命令记录命令执行时间、查看当前RAM使用情况、递归和迭代函数方法以及最佳实践。通过使用这些方法,可以简化TUI日志脚本,提高脚本的智能化程度,并更好地管理和调试脚本执行过程。此外,文章还提醒读者注意TUI命令的版本兼容性和边界条件输入参数的变化,并介绍了未来ANSYS产品脚本计划的发展方向。最后,文章推荐了一些往期内容供读者参考。
Fluent具备非常强大的日志脚本功能,可以自动化任何仿真设置和操作。本篇文章会介绍如何生成可重用脚本的方法,以及其使用的最佳实践,让你快速入门和上手Fluent脚本自动化开发。
录制文件内容会取决于是通过GUI操作还是TUI命令来完成设置。下面代码给出了采用两种不同方式进行网格读取操作记录的命令文本。
2.5 通配符
为了在Fluent中创建通用脚本,我们可以灵活地使用通配符进行更复杂的操作。通配符允许根据前缀、中缀或后缀选择多个边界或单元区域,如fluid*、*fluid*或*fluid。
* :表示会选择所有可能的实体;(*) :表示选择所有实体并结束列表;
(*fluid*):表示将选择所有包含“fluid”字符串的实体并结束列表。
使用通配符对于编写通用脚本非常有用,我们可以根据命名约定设置预处理或后处理边界。
逗号将接受TUI参数的默认值,并且空括号()可用于结束列表输入。
下面我们来看一个案例:如报告所有前缀为car*的墙壁区域x方向的力,输入TUI命令的过程及参数如下:
对应的完整TUI命令为:
通过GUI操作:Results→Reports→Forces,可以得到与完整TUI命令输入控制台一样结果。
可以使用2.2节中方法:File > Write > Start Journal,然后输入TUI命令来记录,任何错误稍后都可以通过编辑记录的TUI命令轻松地修改和删除掉。
要在Windows系统的以后台模式运行ANSYS Fluent,可以使用以下命令:
上述命令中:
fluent 是以交互方式运行的命令,需将<ansys_dir>\fluent\ntbin\win64添加到系统环境中。
3ddp 表示3D双精度,其他选项为3d、2d和2ddp。
-tx 表示求解器以x核并行。
-meshing 表示启动到Fluent Meshing模式。
-tmy 表示网格划分以y核并行。
-g 表示要在任务栏中最小化地运行程序。
-i journal 表示读取指定的日志文件。
-wait 表示其他命令必须等待ANSYS Fluent完成后才能运行。
-hidden 表示运行ANSYS Fluent,完全隐藏,无交互。
在后台运行Fluent时候,最好通过Transcript文件记录脚本运行状态,方便我们后续监控后台运行状态和捕获错误。日志文件必须在开头包含以下TUI命令,才能将脚本执行过程写入到记录文件:
; start transcript file
/file/start-transcript outputfile.trn
(define iteration-number 100)
可以通过如下命令检查定义的Scheme变量值,此案例中会返回100。
(dislpay iteration-number)
一旦定义了Scheme变量,就可以在TUI命令中使用它,如下:
/solve/iterate iteration-number
如果你想设置一些变量为其他变量的函数,可以通过以下命令定义:
(define mylength 1)
(define double_mylength (* 2 mylength))
(define half_mylength (/ mylength 2))
(define theta 30)
(define x_vector (* 1 (cos theta)))
(define y_vector (* 1 (sin theta)))
(ti-menu-load-string "/mesh/check")
TUI窗口显示时间(可记录在Transcript文件中);
(display (format #f "~a" (format-time (local-time (time)) "\n%H:%M:%S %d/%m/%Y")))
Benchmark命令可用于包装任何TUI命令,并给出所花费的时间日志;
(benchmark '(ti-menu-load-string "/objects/create-new-mesh-object remesh (*) indiv"))
当前RAM使用情况;
(proc-stats)
3.4 递归和迭代
Scheme提供递归和迭代的函数方法,可以快速批量执行重复性任务。对于Fluent中涉及批量重复性的操作过程,可以采用递归和迭代来简化TUI日志脚本,让脚本更加智能化,常用的函数方法为do、for-each、let-loop,使用方法如下。
do循环
(do ((var init update)....)
(test result...)
(loop body)
(........))
for-each循环
(for-each
<procedure>
list1
list2 ...)
let-loop递归
(let loop ((variable init) ...)
expression
expression ...)
下面我们给出上述方法的具体使用示例:批量创建x坐标为0.1、0.2、0.3、0.4的等值面,脚本代码如下,大家可以根据自己需要更改相应参数使用,可以去公 众号获取资料。