找回密码
 注册
查看: 2895|回复: 5

[原创]解释型与编译型udf的不同

[复制链接]
发表于 2005-5-30 23:11:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
[watermark]我自己翻译的,有什么问题希望大家提出来共同研究[/watermark]
发表于 2005-5-31 08:57:45 | 显示全部楼层

[原创]解释型与编译型udf的不同

不知道你在说什么。关于interpreted VS complile UDF的区别UDF里面说的很清楚了。
 楼主| 发表于 2005-5-31 09:06:50 | 显示全部楼层

[原创]解释型与编译型udf的不同

编译型与解释型UDF 的区别
编译型UDF 采用与FLUENT 本身执行命令相同的方式构建的。采用一个称为Makefile
的脚本来引导c 编译器构造一个当地目标编码库(目标编码库包含有将高级c 语言源代码转
换为机器语言。)这个共享库在运行时通过“动态加载”过程载入到FLUENT 中。目标库特
指那些使用的计算机体系结构,和运行的特殊FLUENT 版本。因此,FLUENT 版本升级,
计算机操作系统改变以及在另一台不同类型的计算机上运行时,这个库必须进行重构。
编译型UDF 通过用户界面将原代码进行编译,分为两个过程。这两个过程是:访问编
译UDF 面板,从源文件第一次构建共享库的目标文件中;然后加载共享库到FLUENT 中。
解释型UDF
解释型UDF 同样也是通过图形用户界面解释原代码,却只有单一过程。这一过程伴随
着运行,包含对解释型UDF 面板的访问,这一面板位于源文件中的解释函数。
在FLUENT 内部,源代码通过c 编译器被编译为即时的、体系结构独立的机器语言。
UDF 调用时,机器编码通过内部模拟器或者解释器执行。额外层次的代码导致操作不利,但
是允许解释型UDF 在不同计算结构,操作系统和FLUENT 版本上很容易实现共享。如果迭
代速度成为焦点时,解释型UDF 可以不用修改就用编译编码直接运行。
解释型UDF 使用的解释器不需要有标准的c 编译器的所有功能。特别是解释型UDF 不
含有下列C 程序语言部分:
goto 语句声明
无ANSI-C 语法原形
没有直接数据结构引用
局部结构的声明
联合
函数指针
函数阵列
在解释型与编译型UDF 之间的主要的不同之处是很重要的,例如当你想在UDF 中引进
新的数据结构时。解释型不能通过直接数据引用获得FLUENT 解算器的数据;只能间接的通
过FLUENT 预先提供的宏来获取数据。具体请参考第7 章。
总结:当选择写解释型或者编译型UDF 时,记住以下几条:
解释型UDF:
对别的运行系统是可移植的
可以作为编译型运行
不需要c 编译器
比编译型的要慢
在使用C 程序语言时有限制
不能链接到编译系统或者用户库
只能通过预先提供的宏访问FLUENT 中存储的数据
编译型UDF
运行要快于解释型UDF
对C 程序语言没有限制
可以使用任何ANSI-compliant c 编译器进行编译
可以调用其他语言写的函数(特别是独立于系统和编译器的)
如果包含某些解释器不能处理的c 语言部分时用解释型UDF 是不行的
总之,当决定哪一类型的udf 应用到你的模型时:
对小的,直接的函数用解释型
对复杂函数使用编译型
——对cpu 有高的要求(例如每次迭代都要访问每个单元属性)
——需要使用共享库
发表于 2005-5-31 09:11:18 | 显示全部楼层

[原创]解释型与编译型udf的不同

是这个a,总结的不错!
发表于 2005-5-31 10:26:57 | 显示全部楼层

[原创]解释型与编译型udf的不同

不错,谢谢了
发表于 2012-5-3 15:24:07 | 显示全部楼层
总结的不错,谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表