- 解释的UDF和编译的UDF其源码产生途径及编译过程产生的结果代码是不同的。
- 编译后的UDF由C语言系统的编译器编译成本地目标码。 这一过程须在FLUENT运行前
完成。在FLUENT运行时会执行存放于共享库里的目标码,这一过程称为“动态装载”。 - 解释的UDF被编译成与体系结构无关的中间代码或伪码。(中间代码或伪码,与编译后的目标码有显著不同)这一代码调用时是在内部模拟器或解释器上运行。与体系结构无关的代码牺牲了程序性能,但其UDF可易于共享在不同的结构体系之间,即操作系统和FLUENT版本中。
- 如果执行速度是所关心的,UDF文件可以不用修改直接在编译模式里运行(编译模式运行速度更快)。
- 当FLUENT程序运行中链接一个已编译好的UDF库时,和该共享库相关的东西都被存放到case文件中。因此,只要读取case文件,这个库会自动地链接到FLUENT处理过程。
- 一个已经经过解释的UDF文件在运行时刻被编译,用户自定义的C函数的名称与内容将会被存放到用户的case文件中。只要读取这个case文件,这些函数会被自动编译。
- 注: 已编译的UDF所用到的目标代码库必须适用于当前所使用的计算机体系结构、操作系统以及FLUENT软件的可执行版本。一旦用户的FLUENT升级、操作系统改变了或者运行在不同的类型的计算机,必须重新编译这些库。 (编译型对Fluent或操作系统版本适应性较差,不许重新编译,形成链接)