FLUENT_interpreted和compiled的区别及使用(转载总结)

1、区别:

解释UDF则是在运行时,直接从C语言源代码编译和装载(compiled and loaded directly  from the C source code)。在FLUENT运行中,源代码被编译为中介的独立于物理结构的使用C预处理程序的机器代码(an  intermediate, architecture-independent machine code)。当UDF  被调用时,机器代码由内部仿真器(an internal  emulator),或注释器(interpreter)执行。注释器不具备标准C编译器的所有功能;它不支持C语言的某些原理(elements)。所以,在使用  interpreted UDF 时,有语言限制,所以需要使用预定宏。。例如,interpreted UDF  不能够通过解除参照结构(dereferencing structures)来获得FLUENT 数据。要获得数据结构,必须使用由FLUENT  提供的预定义宏。另一个例子是FLUENT interpreter 不能识别指针数组。这些功能必须由compiled UDF  来执行。编译后,用户的C函数名称和内容将会被储存在case文件中。函数将会在读入case文件时被自动编译。可使UDF共享不同的物理结构,操作系统,和Fluent版本。缺点:运行速度慢,占内存,需要较多代码,在C语言上使用有限制,不能与编译系统或用户库(compiled  system or user libraries)相连。

编译UDF和FLUENT的构建方式一样。脚本Makefile 被用来调用C编译器来构建一个当地目标代码库(a native object code  library)。目标代码库包含高级C语言源代码的机器语言翻译。代码库在FLUENT 运行时由“动态加载”(``dynamic  loading'')过程连接到FLUENT上。连接后,与共享库的联系(the association with the shared  library)将会被保存在用户的case文件中,这样,当FLUENT以后再读入case文件时,此编译库将会与FLUENT  自动连接。这些库是针对计算机的体系结构和一定版本的FLUENT使用的。所以,当FLUENT更新,或计算机操作系统改变,或是在不同类型的机器上运行时,这些库必须重新构建。优点:可以使用所有C语言,可以调用其它语言编写的函数;运行速度快,可以解决解释UD的不足。

2、使用:

总的来说,当决定使用那种类型的UDF 时:

1)使用interpreted  UDF作为简单的函数

2)使用compiled UDF作为复杂的函数,这些函数对CPU有较大要求(例如每次运行时,在每个单元上均须调用的属性UDF(a  property UDF);

需要使用编译库(require access to a compiled library)。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Lua 5.1 参考手册 by Roberto Ierusalimschy, Luiz Henrique de F...
    苏黎九歌阅读 13,967评论 0 38
  • 一、温故而知新 1. 内存不够怎么办 内存简单分配策略的问题地址空间不隔离内存使用效率低程序运行的地址不确定 关于...
    SeanCST阅读 7,900评论 0 27
  • 动态链接,在可执行文件装载时或运行时,由操作系统的装载程序加载库。大多数操作系统将解析外部引用(比如库)作为加载过...
    小5筒阅读 5,581评论 0 3
  • http://192.168.136.131/sqlmap/mysql/get_int.php?id=1 当给sq...
    xuningbo阅读 10,457评论 2 22
  • sqlmap用户手册 说明:本文为转载,对原文中一些明显的拼写错误进行修正,并标注对自己有用的信息。 ======...
    wind_飘阅读 2,128评论 0 5