




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第七章UDF的编译与_7.1_7.2_7.3存放到case文件中。因此,只要case文件,这个库会自动地到FLUENT 通常情况下,用户不应该从安装默认中udf.h文件。编译器先在当前目录中寻找该文件,如果没找到,编译器会自动到/src下寻找。如果你升级了软件的版本,但是没有从你的工作中删除旧版本的udf.h文件,你则不能访的C函数的名称与内容将会被存放到case文件中。只要这个case文件,这些 !如果源码不在当前工作 在当前工 下运行FLUENT打开“InterpretedUDFspanel”,编译UDF(如vprofile.c)图7.2.1解释的UDF在“SourceFileName”下输入C源码的文件名(如vprofile.c)!如果自定义的C源码不在工作 预处理程序,包括gcc-E和cc–E如果自定义函数局部变量数不引起栈的溢出,则保持“StackSize”的默认值为1000。此时,所设“StackSize”的数要远远大于局部变量用的数。(d)选择“DisplayAssemblyListing”,则当函数编译汇编码的会出现在窗如果用户使用“FluentInc”提供的C预处理程序,选择“Use点击“Compile”编译UDF编译结束点击“Close”中,例如all.c。然后用“InterpretedUDFs”面板编译连接的文件。这些函 在“Fluent.Inc”下创建一个名为“udf”在udf下创建子(如Fluent.Inc\udf\myudf),将UDF的C源码存放于这个下。如果在同一串下多个用户运行工作,每个用户在udf下创建自己的子(如Fluent.Inc\udf\abcudf和xyzudf)。!因为源码不在当前工作下,所以在编译UDF时必须在“InterpretedUDFs”<fileserver>应输入用户所安装FLUENT的计算机名(如myserver) 下调试解释的所用的出错信息。因此调试UDF时用户想关掉“DisplayAssemblyListing”。如果在调试UDF的过程中一直打开“InterpretedUDFs”面板,由于在独立窗口 gcc:vprofile.c:Nosuchfileordirectorygcc:NoinputfilesError:vprofile.c:line1:syntax为了避免错误,只需要在“InterpretedUDFs”控制面板中的“SourceFileName”编译Openinglibrary"libp1/ultra/2d/libudf.so"...编译和一个编译好的UDF的一般程序如下所示在当前工 下,建立专门 结构(见7.3.2节)编译用户的UDF和修建共享库(见7.3.3节)在当前工 下运行FLUENT(或建立)case文件(确信case文件在当前工 下)共享库到FLUENT(见7.3.4节)建 对于UNIX系统和Windows系统来说,结构是不同的。下面分别介绍在两种系统下如何建立结构。其中path是用户直接安装Fluent.Inc的路径,x是用户安装Fluent版本的相(如,fluent6.0为0)!FLUENT安装后所释放的makefile.udf2文件名为Makefile.udf 图7.3.1为编译好的UDF建立 的样本 !不要 (2d,2dhost,等等)下存放任何文件。当编译用户库(见1.下,创建一个用户库(如libudf)2.3.在用户创建的 下,建立一个用户源码、命名为src的源 4.用户源码(如udfexample.c)到所建的 irix6.5,需要在makefile single-precisionserial2Dor3D:2dordouble-precisionserial2Dor3D:2ddporsingle-precisionparallel2Dor3D:2d_nodeand2d_hostor3d_nodeand3d_hostdouble-precisionparallel2Dor3D:2ddp_nodeand2ddp_hostor3ddp_nodeand3ddp_host维下有两 ,二维双精度版本下有两 !不要 (2d,2dhost,等等)下存放任何文件。当编译用户库(见为了建立共享库所要求的结构,需要按照上面所讲的操作步骤进行。通过下面的例子来介绍结构的建立,如图7.3.2所示。需要注意的是在图7.3.2所示的结构为FLUENT的两种版本:二维单精度串型图7.3.2为编译好的UDF建立 的样本在当前工 下,创建一 用户库 (如libudf)在用户创建的 下,建立一个用户源码、命名为src的源 用户源码(如udfexample.c)到所建的 single-precisionserial2Dor3D:2dordouble-precisionserial2Dor3D:2ddporsingle-precisionparallel2Dor3D:2d_nodeand2d_hostor3d_nodeand3d_hostdouble-precisionparallel2Dor3D:2ddp_nodeand2ddp_hostor3ddp_nodeand3ddp_host !对于并行的版本来说,一定要这两个文件到主机和节点 示的2d_nodeand2d_host 其中path是用户直接安装Fluent.Inc的路径,x是用户安装Fluent版本的相(如,fluent6.0为0)!确定makefile_nt.udf和user_nt.udf为版本所用文件。如果安装新的重命名makefile_nt.udf为makefile在建 在用户的 SOURCESFLUENTINC #makefileforuserdefinedfunctions. #Usermodifiable SOURCES=udfexample.c #Buildtargets(donotmodifybelowthis ..CFLAGS_IRIX6R10=-KPIC-ansi-fullwarn-O-改变“-ansi”为“-xansi”,CFLAGS_IRIX6R10=-KPIC-xansi-fullwarn-O- "FLUENT#linkingto../../src/udfexample.cinultra/2d#linkingto../../src/makefileinultra/2d#buildinglibraryin#linkingto../../src/udfexample.cinultra/3d#linkingto../../src/makefileinultra/3d#buildinglibraryin这个例子中只用了一个C函数,但是用户在“SOURCESinthemakefile”下可在建 $(SRC)udfexample2.c)2dnode,3dhost,3dnode,2ddphost,2ddpnode,3ddphost,或3ddpnode。-{none:-{smpi:parallelusingsharedmemory(for-{vmpi:parallelusingsharedmemoryornetworkwithMPI!如果使用的是并行求解器,需要两个user_nt.udf文件(一个是主 一个是节 ),并且指定两个文件适当的SOURCE,VERSION,andNODE在MS-DOS命令提示窗口,键入nmake建 ,如\libudf\ntx86\2d\需要注意的是如果创建存在问题,通过键入nmakeclean从当前工 下启动FLUENT(或设置)case文件。(确认此case文件保存在当前的工 下。如果共享库保存在当前工 中,在Library libudf),否则输入完整路径,(例如,!注意,如果存放共享库的不在当前的工作或其子下,一定要输入单击Open按钮,这会将共享库连接到FLUENT执行文件中。求解器会自动搜索相应的结构格式和版本。一旦共享库连接到FLUENT执行文件以及case文件被写入以后,此连接关系就被保存在case文件中。因此,无论何时将case文件读入FLURENT,此共享库都会被自动连接。 录时,才可以在CompiledUDFs面板上直接输入共享库的 Openin
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论