Fluent UDF 中文教程UDF第7章 编译与链接

Fluent UDF 中文教程UDF第7章 编译与链接

ID:47317289

大小:163.51 KB

页数:19页

时间:2019-08-17

Fluent UDF 中文教程UDF第7章 编译与链接_第1页
Fluent UDF 中文教程UDF第7章 编译与链接_第2页
Fluent UDF 中文教程UDF第7章 编译与链接_第3页
Fluent UDF 中文教程UDF第7章 编译与链接_第4页
Fluent UDF 中文教程UDF第7章 编译与链接_第5页
资源描述:

《Fluent UDF 中文教程UDF第7章 编译与链接》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第七章 UDF的编译与链接编写好UDF件(详见第三章)后,接下来则准备编译(或链接)它。在7.2或7.3节中指导将用户编写好的UDF如何解释、编译成为共享目标库的UDF。_第7.1节:介绍_第7.2节:解释UDF_第7.3节:编译UDF7.1 介绍解释的UDF和编译的UDF其源码产生途径及编译过程产生的结果代码是不同的。编译后的UDF由C语言系统的编译器编译成本地目标码。这一过程须在FLUENT运行前完成。在FLUENT运行时会执行存放于共享库里的目标码,这一过程称为“动态装载”。另一方面,解释的UDF被编译成与体系结构无关的

2、中间代码或伪码。这一代码调用时是在内部模拟器或解释器上运行。与体系结构无关的代码牺牲了程序性能,但其UDF可易于共享在不同的结构体系之间,即操作系统和FLUENT版本中。如果执行速度是所关心的,UDF文件可以不用修改直接在编译模式里运行。为了区别这种不同,在FLUENT中解释UDF和编译UDF的控制面板其形式是不同的。解释UDF的控制面板里有个“Compile按钮”,当点击“Compile按钮”时会实时编译源码。编译UDF的控制面板里有个“Open按钮”,当点击“Open按钮”时会“打开”或连接目标代码库运行FLUENT(此时

3、在运行FLUENT之前需要编译好目标码)。当FLUENT程序运行中链接一个已编译好的UDF库时,和该共享库相关的东西都被存放到case文件中。因此,只要读取case文件,这个库会自动地链接到FLUENT处理过程。同样地,一个已经经过解释的UDF文件在运行时刻被编译,用户自定义的C函数的名称与内容将会被存放到用户的case文件中。只要读取这个case文件,这些函数会被自动编译。注:已编译的UDF所用到的目标代码库必须适用于当前所使用的计算机体系结构、操作系统以及FLUENT软件的可执行版本。一旦用户的FLUENT升级、操作系统改

4、变了或者运行在不同的类型的计算机,必须重新编译这些库。UDF必须用DEFINE宏进行定义,DEFINE宏的定义是在udf.h文件中。因此,在用户编译UDF之前,udf.h文件必须被放到一个可被找到的路径,或者放到当前的工作目录中。udf.h文件放置在:path/Fluent.Inc/fluent6.+x/src/udf.h其中path是Fluent软件的安装目录,即Fluent.Inc目录。X代表了你所安装的版本号。通常情况下,用户不应该从安装默认目录中复制udf.h文件。编译器先在当前目录中寻找该文件,如果没找到,编译器会自

5、动到/src目录下寻找。如果你升级了软件的版本,但是没有从你的工作目录中删除旧版本的udf.h文件,你则不能访问到该文件的最新版本。在任何情况下都不应该改变udf.h文件。7.2UDF解释这一节介绍编译经过解释的UDF的步骤。一旦经过解释的UDF被编译,用户自定义的C函数的名称与内容将会被存放到case文件中。只要读取这个case文件,这些函数便会自动被编译。编译被解释的UDF的一般程序如下:1.如果用户没有在网络Windows计算机上使用并行的FLUENT版本,则需要确定UDF的C源码和case文件与当前工作目录一致。具体步

6、骤见7.2.2节。!如果源码不在当前工作目录,则用户编译UDF时,用户必须在解释UDF的控制面板里输入文件的完全路径,而不是只输入文件名。2.在当前工作目录下运行FLUENT。3.读取(或建立)case文件。4.打开“InterpretedUDFspanel”,编译UDF(如vprofile.c)。     图7.2.1解释的UDF的控制面板(a)在“SourceFileName”下输入C源码的文件名(如vprofile.c)。!如果自定义的C源码不在工作目录中,用户必须输入完全的自定义的C函数路径。当写入case文件时,自定

7、义源码的名称(或源码的完全路径)会存放到case文件中。(b)在“CPPCommandName”指定为C的预处理程序。当然也有其它有效的ANSIC预处理程序,包括gcc-E和cc–E。详细检查所用的计算机系统管理。(c)如果自定义函数局部变量数不引起栈的溢出,则保持“StackSize”的默认值为1000。此时,所设“StackSize”的数要远远大于局部变量用的数。(d)选择“DisplayAssemblyListing”,则当函数编译汇编码的清单会出现在窗口的控制台内。这一选项会保存于case文件,当用户接着运行FLUEN

8、T时汇编码会自动显示。(e)如果用户使用“FluentInc”提供的C预处理程序,选择“UseContributedCPP”。(f)点击“Compile”编译UDF。自定义C程序的名称和内容会存入于所写的case文件。只要编译UDF,汇编码会出现在控制窗口,所示范例如下。(g

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。