本文简单描述Fluent TUI中的文本提示系统。
注:本文内容来自Fluent TUI文档。
Fluent TUI命令需要加入各种参数,如数字、文件名、yes/no响应、字符串和列表等。Fluent文本提示系统提供了TUI命令输入的统一接口,一个命令提示符通常包含一个提示字符串、后面跟着一个圆括号括起来的可选的单位字符串,其后再跟着一个方括号括起来的默认值。下面是一些命令提示的例子:
filled-mesh? [no] Enter
shrink-factor [0.1] Enter
line-weight [1] Enter
title [""]Enter
通过按下键盘上的Enter 键或输入a,(逗号)接受提示符的默认值。
注意:此处的逗号不是分隔符。它是一个单独的标记,用于指示一个默认值。如序列1,2产生三个值:第一个提示符的数字1,第二个提示符的默认值,第三个提示符的数字2。
输入**?** 可以在任何提示符处显示简短的帮助消息。快捷键Ctrl+C可以终止命令提示序列。
1 数值
最基本的命令参数为数字。其可以为整数或实数,如16, -2.4, .9e5及+1e-5均为合法的数字。
-
数字可以被指定为二进制、八进制或十六进制,如十进制数31可以被写作31、#b11111、#o37、#x1f -
在Scheme中,整数被当做实数的子集,所以无需使用一个小数点来表示一个数字是实数,2和2.0都是实数 -
如果在整数提示符下输入一个实数,那么该实数的小数部分都将被直接截断。如1.9将变成1
2 布尔值
有些提示需要回答yes或no。yes或y作为积极响应,no或n作为消极响应。Yes/no提示用于确认那些存在潜在危险的操作,如覆盖现有文件、在不保存数据的情况下退出等。
有些提示需要实际的Scheme布尔值(true或false)。此时输入表示真和假的Scheme符号#t和#f。
3 字符串
字符串以双引号表示,如“red”。字符串可以包含任何字符,包括空格及标点符号。
4 符号
符号(symbol)的输入不带引号。典型的符号如区域名称、边界名称和材料名称等。符号必须以字母开头,且不能包含任何空格或逗号。
在TUI中,可以使用通配符指定区域名称。一些例子:
-
*
被翻译成所有区域
-
如命令 display/boudary-grid *
可以显示网格中的所有边界 -
命令 /boundary/delete-island-faces wrap*
可以删除所有带wrap前缀的区域上的孤立面 -
>
被翻译为图形窗口中可见的所有区域
-
如命令 /boundary/manage/delete >,yes
可以删除所有图形窗口中可见的区域 -
^
被翻译为图形窗口中选择的所有区域
-
命令 /boundary/manage/delete ^,yes
可以删除图形窗口中选中的区域 -
[object_name
翻译为所有包含名称object_name的区域
-
如命令 /boundary/manage/delete [box, yes
删除所有名称为box的区域 -
[object_name/label_name
被翻译为所有Object_name包含label_name的区域
-
如命令 /boundary/manage/delete [fluid/box*, yes
删除名称fluid中包含box标签的所有区域
如果对需要单个区域作为输入的操作使用通配符,系统将提示从匹配指定表达式的列表中指定单个区域。
> /boundary/manage/name wall*
wall-1 wall-3 wall-5
wall-2 wall-4 wall-6
Zone Name [ ]
5 文件名
文件名实际上是字符串。为了方便起见,文件名提示不要求字符串用双引号括起来。如果文件名包含空格,则必须用双引号括起来。
如命令:
>/file/read-case/ "mesh.msh"
读取网格文件mesh.msh。
6 列表
Fluent中的一些函数需要一个对象列表,如数字、字符串、布尔值等。例如:
element(1) [()] 1
element(2) [()] 10
element(3) [()] 100
element(4) [()] Enter
创建了一个包含三个数字(分别为1,10,100)的列表。
也可以直接输入:
element(1) [1] ’(1 10 100)
7 求值
Scheme解释器将对提示符的所有响应(除了文件名以外)进行计算。因此,用户可以输入任何有效的Scheme表达式作为对提示的响应。例如,输入一个单位向量,其中一个分量等于1/3(不使用计算器)
/foo> set-xy
x-component [1.0] (/ 1 3)
y-component [0.0] (sqrt (/ 8 9))
或者,你可以先定义一个工具函数来计算单位向量的第二个分量
> (define (unit-y x) (sqrt (- 1.0 (* x x))))
unit-y
/foo> set-xy
x-component [1.0] (/ 1 3)
y-component [0.0] (unit-y (/ 1 3))
8 系统命令
可以利用!
运行系统命令。如windows系统下可以使用cd命令查看当前路径下的文件信息。
> !cd
p:/cfd/run/valve
> !dir valve*.*/w
Volume in drive P is users
Volume Serial Number is 1234-5678
Directory of p:/cfd/run/valve
valve1.cas valve1.msh valve2.cas valve2.msh
4 File(s) 621,183 bytes
0 Dir(s) 1,830,088,704 bytes free
9 文本菜单
在为ANSYS Fluent编写Scheme扩展函数时,通常可以方便地利用ti-menu-load-string函数中包含菜单命令。例如,要打开图形窗口2,使用命令:
(ti-menu-load-string "di ow 2")
例如使用一个Scheme循环将打开窗口1和窗口2,并在窗口1中显示网格的前视图,在窗口2中显示网格的后视图:
(for-each
(lambda (window view)
(ti-menu-load-string (format #f "di ow ~a gr view rv ~a"
window view)))
’(1 2)
’(front back))
这个循环使用format函数来构造菜单-load-string使用的字符串。这个简单的循环也可以在完全不使用菜单命令的情况下编写。
(for-each
(lambda (window view)
(cx-open-window window)
(display-mesh)
(cx-restore-view view))
’(1 2) ’(front back))
还可以创建别名以方便调用,如:
(alias ’dg (lambda () (ti-menu-load-string "/di gr")))
之后在命令窗口中输入dg即可执行菜单命令。
注意ti-menu-load-string执行的都是完整的菜单命令,如下面的命令是不对的。
(ti-menu-load-string "open-window 2 gr")
正确的命令应为:
(ti-menu-load-string "display open-window 2 mesh")
Fluent TUI用惯了会比GUI更方便。
本篇文章来源于微信公众号: CFD之道
评论前必须登录!
注册