吾生有涯 学海无涯
析模有界 知识无界

Fluent TUI|02 文本提示系统

本文简单描述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之道

赞(0) 打赏
版权声明:未经允许,请勿随意用于商业用途。
文章名称:《Fluent TUI|02 文本提示系统》
文章链接:https://www.topcfd.cn/13923/
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
分享到

说两句 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者吧

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫

登录

找回密码

注册