重用脚本方法,快速入门和上手Fluent脚本自动化开发

您所在的位置:网站首页 fluent监测点 重用脚本方法,快速入门和上手Fluent脚本自动化开发

重用脚本方法,快速入门和上手Fluent脚本自动化开发

2023-09-11 16:38| 来源: 网络整理| 查看: 265

Fluent具备非常强大的日志脚本功能,可以自动化任何仿真设置和操作。本篇文章会介绍如何生成可重用脚本的方法,以及其使用的最佳实践,让你快速入门和上手Fluent脚本自动化开发。

1、Fluent脚本概述Fluent的GUI界面具有广泛的功能和强大的工具,我们可以实现:

导入CAD模型,完成复杂的网格划分;

定义求解器、边界条件等参数;

解决CFD和多物理场仿真问题;

高级的定量和定性后处理操作;

设计优化和网格变形;

和更多操作…..

同样,采用Fluent中的脚本(Scripting)或日志(Journaling)可捕获和自动化包含上述任何方面的复杂仿真设置和操作。而且一些设置只能通过TUI激活,如附加模块、FMG初始化等。2、Fluent脚本基础Fluent提供文本用户命令(TUI命令)和界面用户命令(GUI命令),两者都是基于Scheme语言编写。对于大多数Fluent的GUI操作,都有一个相关的TUI命令对应,而有很多其他的操作只能通过TUI命令完成。下面我们来详细介绍下TUI命令。2.1 TUI命令输入在界面右下角处的控制台(Consle)窗口,按键查看当前选项,然后通过输入完整的命令或者子菜单命令。输入”q”字符然后可以返回TUI树上一级,如下所示。

2.2 TUI日志录制Fluent支持TUI日志文件的录制,便于自动和批量重复仿真工作,具体操作如下。①界面点击File>Write>Start Journal(或输入TUI命令:file start-journal ),设置日志文件存放位置和名称,扩展名为*.jou。②通过GUI界面或者是输入TUI命令来进行仿真流程设置,Fluent后台会自动记录GUI操作和输入的TUI命令。③录制完成后,界面点击File>Write>Stop Journal(或输入TUI命令:file stop-journal ),停止日志文件录制。

录制文件内容会取决于是通过GUI操作还是TUI命令来完成设置。下面代码给出了采用两种不同方式进行网格读取操作记录的命令文本。

我们对比发现:显然,通过输入TUI命令录制的日志文件更容易阅读,也更简洁;同时,TUI命令不是上下文敏感的,这是GUI操作生成日志的一个缺点。★注:这里的上下文敏感指的是,如果你在点击录制之前打开面板,然后修改面板,操作将被记录。如果在没有打开该面板的情况下重播日志,则日志可能无法运行,因为修改该面板的命令毫无意义。所以推荐大家采用输入TUI命令方式录制脚本。2.3 TUI命令帮助Fluent帮助文档中有一个文本命令列表,用于帮助设置正确的TUI命令。微信后台回复“TUI命令”,即可获取18.0~2019R3的TUI帮助文件。

2.4自动补全2019R1版本后支持TUI命令的自动补全,可以通过File→Preference打开设置窗口,勾选上Console auto-completer选项,然后确定后即可。通过自动补全明显提高开发效率。

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命令轻松地修改和删除掉。

2.6 Batch模式

要在Windows系统的以后台模式运行ANSYS Fluent,可以使用以下命令:

上述命令中:

fluent是以交互方式运行的命令,需将\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

3、Scheme脚本编写Fluent中的GUI和TUI都是基于Scheme语言编写的,Scheme命令可以与日志记录的TUI命令混合使用,如下有一些非常简单而有效的方法可以使用Scheme命令来大大简化日志文件,并让脚本更加智能化。3.1定义参数如定义一个变量“iteration-number”值为100,对应的Scheme命令为:

(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)))

Scheme是一个完整的脚本语言,有很多在线资源,如下:官网:https://schemers.org/MIT Scheme:http://web.mit.edu/scheme_v9.2/doc/mit-scheme-ref/Chez Scheme:https://www.scheme.com/tspl4/3.2 TUI命令调用可以将TUI命令嵌入到Scheme脚本中,通过执行Scheme命令来调用TUI命令,示例如下:;(ti-menu-load-string "put-TUI-command-here")

(ti-menu-load-string "/mesh/check")

3.3数据统计功能

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

list1

list2 ...)

let-loop递归

(let loop ((variable init) ...)

expression

expression ...)

下面我们给出上述方法的具体使用示例:批量创建x坐标为0.1、0.2、0.3、0.4的等值面,脚本代码如下,大家可以根据自己需要更改相应参数使用,可以去公众号获取资料。

4、最佳实践文章的最后,总结了Fluent脚本开发过程中的最佳实践,现分享给大家。

使用NotePad++编辑记录的TUI日志文件,删除与GUI相关命令,并设置语言为Scheme,方便我们利用其语法高亮功能,编写Scheme命令扩展日志脚本文件,让日志脚本更加智能化。

批处理模式下,推荐使用Transcript文件功能记录脚本执行过程,并寻找错误;可在文件中搜索“error”或“invalid”关键词,去定位那些执行错误的TUI命令。

在交互模式下运行日志脚本文件,错误以红色文本的形式出现在命令窗口,更加容易识别。

执行出现问题时,可以将日志脚本文件中的命令一行一行地复制粘贴到控制台窗口中,然后按回车查看是哪一行出现问题。

在行数较多的长日志中,如果特定行执行失败,复制日志并删除问题行和之后的所有内容,然后运行短日志到问题行并手动键入该行以检查参数错误。

请记住,TUI命令会随着版本变化而更改,Release Note中会列出相应更改。通过指定TUI命令版本(/file/set-tui-version “19.0”),可以获得更好的向前兼容性。

请注意:边界条件的TUI命令输入参数经常会随着物理模型的不同而发生变化,所以当物理模型反生更改时,需要同时更新边界条件的TUI命令。

最后,未来的ANSYS产品的脚本计划都是用IronPython实现,很期待Python一统ANSYS的一天。

作者: 小田老师  仿真秀优秀讲师



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3