没有合适的资源?快使用搜索试试~ 我知道了~
fluent——scheme简明中文手册
4星 · 超过85%的资源 需积分: 48 69 下载量 10 浏览量
2017-11-13
12:25:10
上传
评论 3
收藏 192KB PDF 举报
温馨提示
试读
27页
《fluent——scheme简明中文手册》PDF格式 短小精炼的指导手册
资源推荐
资源详情
资源评论
2
目录
1. 前言 ...........................................................................................................3
2. 简介 ...........................................................................................................3
3. Fluent-Scheme 接口..................................................................................3
3.1 在 Fluent 中调用 scheme 命令 ......................................................3
3.2 在 Scheme 中调用 Fluent 命令 ......................................................3
3.3 RP-变量 ............................................................................................4
3.4 CX-变量 ............................................................................................4
4. Fluent-Scheme-UDFs 接口 .......................................................................4
4.1 数据交换 .........................................................................................4
4.2 函数的调用 .....................................................................................5
5. 数学函数 ...................................................................................................5
6. 全局 Scheme 变量 ....................................................................................6
7. 局部 Scheme 变量 ....................................................................................7
8. 串列(list) ....................................................................................................7
9. If 命令 ......................................................................................................8
10. Do 循环 .....................................................................................................9
11. Format 命令 ...........................................................................................11
12. for-each 循环 .........................................................................................11
13. 在 TUI 中的 Alias 方法 ............................................................................12
14. 实例:建立动画 .....................................................................................13
15. 实例:从数据文件生成报告 .................................................................14
16. 实例:从 Data 或者 Case 文件你读取数据 ..........................................17
17. 实例:输出 Fluent Zone 的名称到 UDF ................................................18
18. 迭代控制 .................................................................................................20
19. Fluent Scheme 的特色 ............................................................................21
19.1 Eval 命令和环境 .........................................................................21
19.2 Listen 命令 ..................................................................................21
19.3 Format 命令 ................................................................................22
19.4 System 命令 ................................................................................22
19.5 Fluent 变量和函数......................................................................22
20. Scheme 文献 ..........................................................................................22
21. Fluent Scheme 的标准函数 ....................................................................22
22. Fluent-Scheme 环境...............................................................................26
3
1. 前言
在 Fluent 中使用 Scheme 可以非常轻松的自动执行仿真流程。非常遗憾的是,到目前
为止都没有正式的支持文档。在 Fluent 中使用 Scheme 必须对标准的 Scheme 语言有足够的
了解。这个文档非常简单,但是仍然不失为一个好的参考资料,Fluent 德国都是直接向用
户推荐这个手册,因为他们自己本身也没有官方的手册。实际上,Fluent 的后续版本将不
会再使用 Scheme 作为开发语言,转而使用 Python 这个灵活度更高的语言。
2. 简介
Scheme 是 Lisp 的一个分支,有着非常统一而又简单的命令格式:
(commandname argument1 argument2 ...)
每一个命令调用都是一个函数调用,因此也就会输出一个结果。命令名和变量名不区分大
小写,但是 只能以 字母开 头,可以包含除了 a-z 和 0-9 之外的特殊符号,包括+-
*/<>=?.:%$!~^_等字符。
注释使用;;开头,行结束就表示注释结束。
3. Fluent-Scheme 接口
3.1 在 Fluent 中调用 scheme 命令
l 使用 Fluent 的命令行界面输入(也可以使用鼠标拷贝命令)或者
l 在文本编辑器中编好 Scheme 程序,然后用.scm 结尾的文件储存,再通过 Fluent 的菜
单“File/Read/Scheme”调用
l 如果在用户文件夹中存在一个.fluent 文件,这个文件会随着 Fluent 的启动而运行
l 在菜单”Solve/Monitor/Commands/Command“输入 Scheme 命令,可以在每次迭代或
者时长运行。
3.2 在 Scheme 中调用 Fluent 命令
l 文字界面输入命令:
(ti-menu-load-string "display/contour temperature 30 100")
返回值: #t 代表执行成功,#f 代表失败或者是使用 Ctrl-C 取消的;Ctrl-C 终止 Fluent 命令,
但不终止 Scheme 程序的执行。
l GUI 命令:Journal 文件中可以直接使用 Scheme 命令,执行图形化操作。比如:
(cx-gui-do cx-activate-item "Velocity Vectors*PanelButtons*PushButton1(OK)")
文字命令执行速度更快,更紧凑,而且在很多方面可以使用。GUI 命令比较慢,不方便查
看和编写(查找 Fluent 命令比较麻烦)。因此应该优先使用文字界面命令,只有当没有文字
4
命令可以使用的时候才使用 GUI 命令。
文字界面命令还不能注释,操作步骤:搜索想要运行的命令,尝试运行,然后组织命令行。
在 Fluent 文字界面的输出样式:
(display object)
(newline)
3.3 RP-变量
获得变量值:比如获得模拟时间:
> (rpgetvar 'flow-time)
0.1
设置变量值:
> (rpsetvar 'flow-time 0)
所有 RP 变量都是在 Case 中定义(参考"变量"一章).
3.4 CX-变量
读取变量,比如说颜色历程表,
> (cxgetvar ‘cmap-list)
0.1
设置变量:
> (cxsetvar 'def-cmap "rgb")
所有的 CX 变量都是在 Case 文件中定义的(参考”Cortex 变量”)
4. Fluent-Scheme-UDFs 接口
4.1 数据交换
可以定义自己的 RP 变量,通过 Fluent 的文字界面或者在 UDF 中通过特殊的函数进行调用。
定义一个自己的 RP 变量::
(rp-var-define name default-and-init-value type #f)
类型: 'int 'real 'boolean 'string ...?
比如:
> (rp-var-define 'udf/var1 0 'real #f)
5
变量信息:
> (rp-var-object 'udf/var1)
(udf/var1 0 real #f 0)
> (rp-var-object 'udf/var2)
#f
变量的改变和查询可以像上面一样通过 rpsetvar 和 rpgetvar 来完成。
如果一个变量已经被定义一次,则在 Fluent 程序结束之前它都是有效的,储存在每个 Case
文件里面。重新载入这样的一个 Case 文件的时候,如果此变量没有被定义,则它会被自动
创建,并且储存在 Case 文件里面的变量值会被指定给这个变量。
在 UDF 里面,RP 变量可以通过如下的 C 函数(在 Fluent.Inc/fluentX.Y/src/var.h 中被声明)
赋值和查询
real RP_Get_Real(char *s);
long RP_Get_Integer(char *s);
char *RP_Get_String(char *s);
boolean RP_Get_Boolean(char *s);
void RP_Set_Real(char *s, real v);
void RP_Set_Integer(char *s, long v);
void RP_Set_Boolean(char *s, boolean v);
void RP_Set_String(char *s, char *v);
void RP_Set_Symbol(char *s, char *v);
例如:
var1 = RP_Get_Real("udf/var1");
RP_Set_Real("udf/var1", 3.2);
如果 UDF 是在并行模式中被使用,RP 变量的操作需要特别注意,详情请查阅 Fluent 的
UDF 手册。
4.2 函数的调用
EOD 类型的 UDF 可以使用 Scheme 的如下命令调用:
(%udf-on-demand "udf-eod-name")
目前还没有可能在在 UDF 中调用 Scheme 函数;虽然 Fluent.Inc/fluentX.Y/cortex/src/cx.h 中
声明的 C 函数 CX_Interpret_String("scheme-command-string")可以解释"scheme-command-
string",但是没有途径可以进入此环境。
5. 数学函数
基本运算 + - * /, 可以有 2 个以上的参数:
6
> (+ 2 4 5)
11
> (/ 6 3)
2
> (/ 2) ;; 等同于 (/ 1 2)
0.5
其它函数: (abs x), (sqrt x), (expt x y) [= xy], (exp x)[= ex], (log x) [= ln x], (sin x), (cos x),
(atan x), (atan x y) [= arctan(x/y)], …
取整函数:
> (remainder 45 6)
3
> (modulo 5 2)
1
(truncate x), (round x), (ceiling x), (floor x), ...
其它
(max x y ...), (min x y ...)
比如,寻找串列中的最大值:
> (apply max '(1 5 8 3 4))
8
6. 全局 Scheme 变量
用如下方法定义:
> (define x 3)
> (+ x 1)
4
没有变量类型区别 (Integer, Real, String, ...) – 每个变量都可以接受任何一种类型的值.
使用再定义方法改变变量值(不能在函数内部操作,函数内部是局部变量区域,所以定义的
将会是一个新的局部变量),更好的方式是使用如下的句子:
(set! x 1)
输出显示变量值
(display x)
或者
剩余26页未读,继续阅读
资源评论
- 斯格斯格哟哟2018-07-20非常实用!赞
- jiang06041022019-08-16正好用得上,赞
pulutong123
- 粉丝: 0
- 资源: 15
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功