传热学虚拟实验平台的开发外文翻译资料
2022-10-30 10:46:29
英语原文共 43 页,剩余内容已隐藏,支付完成后下载完整资料
FLUENT SCHEME5&6*编程手册
奥地利林茨的若阿内斯·开普勒大学的流动和传热过程的米尔科·贾夫克研究所http://fluid.jku.at
起步于2000年9月补充:2003年,10-2004
目录
前言
介绍
Fluent-Scheme接口
RP变量
CX变量
Fluent-Scheme-UDFs接口
数据交换
调用函数
算术函数
全局Scheme变量
局部Scheme变量
串列(list)
If命令
Do 循环
Format 命令
for-each 循环
在TUI中的Alias方法
示例:创建动画
举例:从数据文件报告数据
示例:从Data或者Case文件你读取数据
示例:输出Fluent Zone的名称到UDF
迭代控制
串列命令
Format 命令
System命令
Fluent变量和函数
Scheme文献
Fluent Scheme 的标准函数
Fluent-Scheme 环境
前言
在Fluent中使用Scheme可以非常轻松的自动执行仿真流程。非常遗憾的是,到目前 为止都没有正式的支持文档。在Fluent中使用Scheme必须对标准的Scheme语言有足够的 了解。这个文档非常简单,但是仍然不失为一个好的参考资料,Fluent德国都是直接向用 户推荐这个手册,因为他们自己本身也没有官方的手册。实际上,Fluent的后续版本将不 会再使用Scheme作为开发语言,转而使用Python这个灵活度更高的语言。
简介
Scheme是Lisp的一个分支,有着非常统一而又简单的命令格式:
(commandname argumentl argument2 ...)
每一个命令调用都是一个函数调用,因此也就会输出一个结果。命令名和变量名不区分大 小写,但是只能以字母开头,可以包含除了 a-z和0-9之外的特殊符号,包括 - */lt;gt;=?.:%$!~八_ 等字符。注経使用;;开头,行结束就表示注経结束。
Fluent-Scheme 接口
在Fluent中调用scheme命令
使用Fluent的命令行界面输入(也可以使用鼠标拷贝命令)或者在文本编辑器中编好Scheme程序,然后用.scm结尾的文件储存,再通过Fluent的菜 单 “File/Read/Scheme” 调用;
如果在用户文件夹中存在一个fluent文件,这个文件会随着Fluent的启动而运行。
在菜单” Solve/Monitor/Commands/Command “输入Scheme命令,可以在每次迭代或者时长运行。
在Scheme中调用Fluent命令
文字界面输入命令:
(ti-menu-load-string 'display/contour temperature 30 100')
返冋倌:#t代表执行成功,#f代表失败或者是使用Ctrl-C取消的;Ctrl-C终止Fluent命令,
但不终止Scheme程序的执行。
GUI命令:Journal文件中可以直接使用Scheme命令,执行图形化操作。比如:
(cx-gui-do cx-activate-item 'Velocity Vectors*PanelButtons*PushButton1(OK)')
文字命令执行速度更快,更紧凑,而且在很多方面可以使用。GUI命令比较慢,不方便查 看和编写(查找Fluent命令比较麻烦)。因此应该优先使用文字界面命令,只有当没有文字命令可以使用的时候才使用GUI命令。文字界面命令还不能注释,操作步骤:搜索想要运行的命令,尝试运行,然后组织命令行。
在Fluent文字界面的输出样式:
(display object)
(newline)
Scheme中的文件访问(读/写)(参见示例)。
RP-变量
获得变量值:比如获得模拟时间:
- (rpgetvar flow-time)
0.1
设置变量值:
- (rpsetvar flow-time 0)
所有RP变量都是在Case中定义(参考'变量'一章).
CX-变量
读取变量,比如说颜色历程表,
- (cxgetvar lsquo;cmap-list)
0.1
设置变量:
- (cxsetvar def-cmap 'rgb')
所有的CX变量都是在Case文件中定义的(参考” Cortex变量”)
Fluent-Scheme-UDFs 接口
数据交换
可以定义自己的RP变量,通过Fluent的文字界面或者在UDF中通过特殊的函数进行调用。 定义一个自己的RP变量::
(rp-var-define name default-and-init-value type #f)
类型:int real boolean string ...?
比如:
gt; (rp-var-define udf/var1 0 real #f)
变量信息:
gt; (rp-var-object udf/varl) (udf/varl 0 real #f 0)
gt; (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手册。
调用函数
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', 但是没有途径可以进入此环境。
数学函数
基本运算 -*/,可以有2个以上的参数:
gt;( 245)
11
- (/ 6 3)
2
- (/2) ;;等同于(/1 2)
0.5
其它函数:(abs x), (sqrt x), (expt x y) [= xy], (exp x)[= ex], (log x) [= In 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
全局Scheme变量
用如下方法定义:
- (define x 3)
- ( x 1)
4
没有变量类型区别(Integer, Real, String,hellip;)-每个变量都可以接受任何一种类型的值. 使用再定义方法改变变量值(不能在函数内部操作,函数内部是局部变量区域,所以定义的 将会是一个新的局部变量),更好的方式是使用如下的句子:
(set! x 1)
输出显示变量值
(display x)
或者
(write x)
Write仅当Fluent变量值都储存在文件里面而又想读出来的时候才使用;Write使用前置符 号显示符号变量值。
常量:整数(2),浮点数(2.5),布尔值(#t真,#f假)字符串('this is a text string')和符号 (rsquo;symbol),比如:
(define x this-is-a-symbol)
字符串中的特殊符号使用:
' '
新行
全局变量和自定义Scheme函数的有效性保持到Fluent结束运行。
局部Scheme变量
(let ((var1 value1) (var2 value2) ...) ...命令...
)
串列(list)
定义方法,例如:
- (define my-surfaces (wall-top wall-bottom symmetry))
任意长度,支持动态管理和嵌套 使用如下格式进行定义:lsquo;(elements ...):
- (define l (a b c))
串列的第一个元素
- (car l) a
串列剩下的部分(没有第一个元素的串列)
- (cdr l)
(b c
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[138391],资料为PDF文档或Word文档,PDF文档可免费转换为Word