Fluent无法编译UDF文件的常见解决方法
UDF 编译疑难问题

接下来如果编译如下的程序
#include "udf.h"
DEFINE_TRANS_FLENGTH(user_Flength, c, t)
{
real Flength = 31.468;
return Flength;
}
DEFINE_TRANS_RETHETA_C(user_Re_thetac, c, t)
_Check_return_ _ACRTIMP double __cdecl cbrt(_In_ double _X);(求立方根函数)
改成
//_Check_return_ _ACRTIMP double __cdecl cbrt(_In_ double _X);(求立方根函数)
即忽略这样一个函数的定义。结果就可以成功的编译UDF了。
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\math.h(99): errorC2059:语法错误:“;”
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\math.h(101): error C2061:语法错误:标识符“__ATTRIBUTES”
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\math.h(101): error C2059:语法错误:“;”
说明这条头文件是必须的。所以这种方法又失败了。
所以还是回到微软自己提供的math.h文件。解决以上出现的编译问题其实解决的思路很简单将
Fluent 常见问题

1 现在用FLUENT的UDF来加入模块,但是用compiled udf时,共享库老是连不上?解决办法:1〉你的计算机必须安装C语言编译器。
2〉请你按照以下结构构建文件夹和存放文件:libudf/src/*.c (*.c为你的源程序);libudf/ntx86/2d(二维为2d,三维为3d)/makefile(由makefile_nt.udf改过来的)libudf/ntx86/2d(二维为2d,三维为3d)/user_nt.udf(对文件中的SOURCE,VERSION,P ARALLEL_NODE进行相应地编辑)3〉通过命令提示符进入文件夹libudf/ntx86/2d/中,运行C语言命令nmake,如果C预言编译器按装正确和你的源程序无错误,那么此时会编译出Fluent需要的库文件(*.lib)这时再启动Fluent就不会出错了。
2 在使用UDF中用编译连接,按照帮助文件中给出的步骤去做了,结果在连接中报错“系统找不到指定文件”。
udf 文件可能不在工作目录中,应该把它拷到工作目录下,或者输入它的全部路径.3 这个1e-3或者1e-4的收敛标准是相对而言的。
在FLUENT中残差是以开始5步的平均值为基准进行比较的。
如果你的初值取得好,你的迭代会很快收敛,但是你的残差却依然很高;但是当你改变初场到比较不同的值时,你的残差开始会很大,但随后却可以很快降低到很低的水平,让你看起来心情很好。
其实两种情况下流场是基本相同的。
由此来看,判断是否收敛并不是严格根据残差的走向而定的。
可以选定流场中具有特征意义的点,监测其速度,压力,温度等的变化情况。
如果变化很小,符合你的要求,即可认为是收敛了。
一般来说,压力的收敛相对比较慢一些的。
是否收敛不能简单看残差图,还有许多其他的重要标准,比如进出口流量差、压力系数波动等等尽管残差仍然维持在较高数值,但凭其他监测也可判断是否收敛。
最重要的就是是否符合物理事实或试验结论。
UDF 编译疑难问题

接下来如果编译如下的程序
#include "udf.h"
DEFINE_TRANS_FLENGTH(user_Flength, c, t)
{
real Flength = 31.468;
return Flength;
}
DEFINE_TRANS_RETHETA_C(user_Re_thetac, c, t)
如果你查找ycheck.h,想加入这个头文件来解决这个问题的话,你会发现在中文资料库里根本就查不到这样的头文件。这可能是该公司内部开发的一个头文件。所以这条路又行不通。那么如果将这条预处理程序忽略掉呢?结果就会出现以下的编译错误:
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\math.h(99): error C2061:语法错误:标识符“__ATTRIBUTES”
{
real Re_thetac = 176.396;
return Re_thetac;
}
DEFINE_TRANS_RETHETA_T(user_Re_thetat, c, t)
{
real Re_thetat = 210;
return Re_etat;
}
会出现如下的错误,许多人认为这个程序是直接从fluent帮助文件里拷贝的应该没什么问题,但是阅读资料应该全面,注意到t的声明在程序里没有给出,但是却在帮助文件的前半部分查到。Fluent里面默认thread为一个指针,而t不是所以将t改成thread应该就可以了,结果证实我的推理是正确的。
udf_names.c(7): error C2059:语法错误:“}”udf_names.c(8): warning C4034: sizeof返回0
fluent出错问题收集

Question 1
Fluent中读UDF时经常会遇到错误,也非常的让人头疼,这是我遇到的一个问题,终于被我彻底搞清楚了,现在将问题和解决方法叙述如下,以造福菜鸟们及自己以后备用。
1 编译出的第一种问题:
rror [cortex] [time 12/1/13 19:41:25] The UDF library you are trying to load (libudf) is not compiled for 2ddp on the curent platform (win64).
系统找不到指定的文件。
C:\Users\hexian\Desktop\syan\libudf\win64\2ddp\libudf.dll
这个问题的根源是build没有成功,而不是load没有成功。
成功的build,应该显示如下:
没有build成功的原因有很多,可能你的C源程序有错误,这样一般在build之后会提示的,
像这种错误就老老实实的回去检查源文件吧!
如果build编译成功了,load还出现我们刚开始说的那个错误,就是没有系统找不到UDF.h的原因,自己将udf.h找到,一般默认的地址是(C:\Program Files\ANSYS Inc\v140\fluent\fluent14.0.0\src\udf.h ),然后将这个地址添加到环境变量的Path下面去,就OK了!记得重新启动计算机!当然在编写C源文件的时候,也可以使用udf.h的绝对路径。
2 出现如下错误时是因为没有将nmake的路径添加到环境变量中,所以在电脑中收索nmake命令,然后将他的地址添加到环境变量中就可以了。
UDF编译错误解决方法

compiled的时候,fluent出现以下提示:'nmake' 不是内部或外部命令,也不是可运行的程序或批处理文件。
'nmake' 不是内部或外部命令,也不是可运行的程序或批处理文件。
而点击load时则出现不可编译的错误:Opening library "libudf"... Error: open_udf_library: 系统找不到指定的文件。
解决方法:1)安装VC的时候要依据提示当询问是否设置环境变量要选是2)安装完毕后点击我的电脑> 属性> 高级> 环境变量查看环境变量值是否存在:“include”“lib”“path”变量(如不存在可以按照我最后显示的变量值手动添加)3)当以上环境变量均存在时运行开始——Fluent6.3——set Enviroment选择yes,fluent的环境变量将会自动添加,这时再运行fluent,重新编译就可以成功了Build和load的提示为:Deleted old libudf\ntx86\2d\libudf.dll已复制 1 个文件。
(system "copy C:\fluent\Fluent.Inc\fluent6.3.26\src\makefile_nt.udf libudf\ntx86\2d\makefile")已复制 1 个文件。
(chdir "libudf")()(chdir "ntx86\2d")()valve.c# Generating udf_names.c because of makefile valve.objudf_names.c# Linking libudf.dll because of makefile user_nt.udf udf_names.obj valve.objMicrosoft (R) Incremental Linker Version 6.00.8168Copyright (C) Microsoft Corp 1992-1998. All rights reserved.Creating library libudf.lib and object libudf.expDone."E:/dongwanggelianxi"Opening library "libudf"...Library "libudf\ntx86\2d\libudf.dll" openedvalveDone.此时我机子的环境变量显示如下:1)Include D:\Program Files\Microsoft Visual Studio\VC98\atl\include;D:\Program Files\Microsoft Visual Studio\VC98\mfc\include;D:\Program Files\Microsoft Visual Studio\VC98\include2)Lib D:\Program Files\Microsoft Visual Studio\VC98\mfc\lib;D:\Program Files\Microsoft Visual Studio\VC98\lib3)MSDevDir D:\Program Files\Microsoft Visual Studio\Common\MSDev984)PATH D:\Program Files\Microsoft Visual Studio\Common\Tools\WinNT;D:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin;D:\Program Files\Microsoft Visual Studio\Common\Tools;D:\Program Files\Microsoft Visual Studio\VC98\bin;C:\Program Files\StormII\Codec;C:\Program Files\StormII;c:\fluent\fluent.inc\ntbin\ntx86环境变量设置成如上形式就OK啦。
Fluent UDF compiled [UDF编译]错误解决办法
![Fluent UDF compiled [UDF编译]错误解决办法](https://img.taocdn.com/s3/m/42ad00c64028915f804dc299.png)
WinXP下使用UDF编译(compiled UDF)FLUENT UDF在interpreted时不需要vc++是可以的,但如果要用compiled,那么必须安装vc++了。
Fluent UDF 在compiled时点击build时出现错误:'nmake' 不是内部或外部命令,也不是可运行的程序。
点击load时则出现不可编译的错误:Opening library "libUDF"...Error: open_UDF_library: 系统找不到指定的文件。
Error Object: ()原因:环境变量有问题。
可能是安装vc++时没有勾选【设置环境变量】。
解决方法:需要设置环境变量,我的电脑-属性-高级-环境变量添加 include、lib、path和MSDevDir 环境变量,环境变量路径与安装vc++的路径有关。
如果不会设置,那么最简单的方法就是重装vc++ ,在安装过程的倒数第二步勾选设置环境变量(对于VC6.0)。
如果设置好环境变量了,build时不再出现/'nmake' 不是内部或外部命令,也不是可运行的程序。
/ 但点load时仍出现Opening library "libUDF"...Error: open_UDF_library: 系统找不到指定的文件。
Error Object: ()那么可能是因为没有加入头文件(Header files)UDF.h。
加入source files 和header files 后重新build 再load 就OK啦。
另外,在build是若出现错误:UDF_names.c(40) : fatal error C1071: unexpected end of file found in comment。
一种原因是:UDF定义了多个宏命,有一些不需要,加了 /* */ 引起的错误。
解决的方法就是删除这些多余的宏,只保留需要的。
Fluent无法编译UDF文件的常见解决方法

解决Fluent无法编译UDF文件的问题方法1对于Fluent加载UDF时出现"The UDF library you are trying to load(libudf)is not complied for parallel use on the current platform (win64)"错误,主要是没有正确设置本机VS安装路径,导致udf编译器无法成功编译c代码。
解决方法:1. 找到Fluent内的UDF.bat编译器。
这里以我自己2019R2的64位学生版为例,在D:\Program Files\ANSYS Inc\ANSYS Student\v194\fluent\ntbin\win64下找到udf.bat用记事本打开2. 将本机Visual Studio的安装路径写入。
这里以我自己VS2015为例,将本机visual studio 2015的安装路径赋值给MSVC_DEFAULT,由于VS2015的版本代号是14.0,因此将"%ProgramFiles(x86)%\Microsoft Visual Studio 14.0"替换为"D:\Program Files (x86)\Microsoft Visual Studio 14.0",保存文件即可,如图1~2所示更改前更改后方法2对于某些低版本的VS,以上操作可能不足以解决问题,需要手动配置环境变量,具体方法如下:1.找到Fluent安装路径下的setenv.exe,双击运行选择是,路径X:\Program Files\ANSYS Inc\v130\fluent\ntbin\win64\setenv.exe2.右键“我的电脑”—属性—高级—环境变量,添加用户变量,以VS2013为例INCLUDE=D:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include;C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Include;LIB=D:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\lib\amd64;C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib\x64;C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib\kernel32.libPath=D:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\amd64;D:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE;。
fluent中编译UDF出错—设置环境变量

fluent13用vc2010与vc2008编译的环境变量设置尝试fluent13与vc++2010express(这个可以在msdn直接下载使用的),编译就出现'nmake' 不是内部或外部命令,也不是可运行的程序或批处理文件。
而点击load时则出现不可编译的错误:Opening library "libudf"...Error: open_udf_library: 系统找不到指定的文件。
Error Object: ()等等错误提示,花了几天时间搜索各种办法尝试,终于搞定。
现在把步骤总结如下:1,右键“我的电脑”—属性—高级—环境变量—用户变量2,在fluent安装文件夹下双击setenv.exe 点“是”路径X:\Program Files\ANSYS Inc\v130\fluent\ntbin\ntx86之后就会看见用户变量里多了FLUENT—INC和Path两项3,设置vc的环境变量在vc6.0中,可以添加三个环境变量:lib,include,path就可以了,也可以在重装vc6.0的时候选定设置环境变量就可以了。
麻烦的是vc2008,2010,因为在这个编译器中,头文件和库函数分布在不同的位置,经过一天的实验,终于找齐了所有的位置,可以顺利编译include:vc08:X:\Program Files\Microsoft Visual Studio 9.0\VC\atlmfc\includex:\Program Files\Microsoft Visual Studio 9.0\VC\include.C:\Program Files\Microsoft SDKs\Windows\v6.0A\Include6vc2010:X:\Program Files\Microsoft Visual Studio 10.0\VC\includeC:\Program Files\Microsoft SDKs\Windows\v7.0A\Includelib:vc08X:\Program Files\Microsoft Visual Studio 9.0\VC\atlmfc\libx:\Program Files\Microsoft Visual Studio 9.0\VC\libC:\Program Files\Microsoft SDKs\Windows\v6.0A\Libvc2010X:\Program Files\Microsoft Visual Studio 10.0\VC\libC:\Program Files\Microsoft SDKs\Windows\v7.0A\LibPath:08vcX:\Program Files\Microsoft Visual Studio 9.0\VC\binx:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE2010vcX:\Program Files\Microsoft Visual Studio 10.0\VC\binX:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE经过测试,这么添加环境变量之后就可以编译udf了,build与load都没问题。
Fluent 64bit操作系统编译udf

Fluent12.0在64位操作系统中编译UDF简单操作
操作系统为windows 7 64bit,fluent计算采用编译型udf,直接打开fluent可能会遇到“系统找不到指定的路径”“’nmake’不是内部或外部命令,也不是可运行的程序或批处理文件”等问题。
这里介绍一个简单地操作。
首先在开始菜单中找到编译器,此处为visual studio 2010 ,打开visual studio tools,可以看到visual studio X64 win64 命令提示(2010),将其发送到桌面快捷方式。
然后在开始菜单中找到Fluent,将其发送到桌面快捷方式。
然后运行visual studio X64 win64 命令提示(2010),将fluent的图标拖动到visual studio X64 win64 命令提示(2010)窗口中,回车打开fluent运行,此时发现udf可以build了。
fluent udf 编译教程

在使用Fluent软件进行模拟计算时,经常会遇到需要自定义用户子程序(User Defined Function,简称UDF)的情况。
UDF是Fluent中用户自己编写的函数,用于描述流场中的边界条件、源项等物理过程。
为了正确地使用UDF并进行模拟计算,我们需要了解如何编写和编译UDF。
本教程将向大家介绍如何使用ANSYS Fluent进行UDF的编译,并提供一些常见问题的解决方法。
一、准备工作在进行UDF编译之前,我们需要进行一些准备工作。
1. 确保已安装ANSYS Fluent软件,并且能够正常运行;2. 确保已安装C/C++编译器,常见的编译器有Microsoft Visual Studio、GCC等;3. 编写好UDF的源代码文件,可以使用任何文本编辑器编写,但建议使用支持C/C++语法高亮的编辑器,以便于排查语法错误。
二、设置Fluent编译环境在进行UDF编译之前,我们需要设置Fluent的编译环境,以确保编译器可以正确地识别Fluent的API。
1. 打开命令行终端(Windows系统为cmd,Linux/Unix系统为Terminal);2. 运行以下命令设置Fluent的编译环境:对于Windows系统:```bashcd C:\Program Files\ANSYS Inc\v200\fluentfluent 3d -i```对于Linux/Unix系统:```bashcd /usr/ansys_inc/v200/fluent./fluent 3d -t xxx -g -i```其中,xxx是你的图形界面类型,可以根据你实际的图形界面类型进行替换,一般为Gl 或 X11。
运行上述命令后,Fluent将会启动,并且设置了编译环境。
在Fluent 的命令行界面中,我们可以进行UDF的编译和加载。
三、编译UDF在设置了Fluent的编译环境后,我们可以开始编译UDF了。
1. 将编写好的UDF源代码文件(后缀名通常为.c或.cpp)放置在Fluent的工作目录中;2. 在Fluent的命令行界面中,输入以下命令进行编译:```bash/define/user-definedpiled-functions load my_udf-name/define/user-definedpiled-functionspile my_udf-name/define/user-definedpiled-functions write my_udf-name/exit```其中,my_udf-name是你的UDF源代码文件的文件名(不包括后缀名),例如my_udf。
Fluent常见问题

Fluent常见问题1 现在用FLUENT的UDF来加入模块,但是用compiled udf时,共享库老是连不上?解决办法:1〉你的计算机必须安装C语言编译器。
2〉请你按照以下结构构建文件夹和存放文件:libudf/src/*.c (*.c为你的源程序);libudf/ntx86/2d(二维为2d,三维为3d)/makefile(由makefile_nt.udf改过来的)libudf/ntx86/2d(二维为2d,三维为3d)/user_nt.udf(对文件中的SOURCE,VERSION,P ARALLEL_NODE进行相应地编辑)3〉通过命令提示符进入文件夹libudf/ntx86/2d/中,运行C语言命令nmake,如果C预言编译器按装正确和你的源程序无错误,那么此时会编译出Fluent 需要的库文件(*.lib)这时再启动Fluent就不会出错了。
2 在使用UDF中用编译连接,按照帮助文件中给出的步骤去做了,结果在连接中报错“系统找不到指定文件”。
udf 文件可能不在工作目录中,应该把它拷到工作目录下,或者输入它的全部路径.3 这个1e-3或者1e-4的收敛标准是相对而言的。
在FLUENT中残差是以开始5步的平均值为基准进行比较的。
如果你的初值取得好,你的迭代会很快收敛,但是你的残差却依然很高;但是当你改变初场到比较不同的值时,你的残差开始会很大,但随后却可以很快降低到很低的水平,让你看起来心情很好。
其实两种情况下流场是基本相同的。
由此来看,判断是否收敛并不是严格根据残差的走向而定的。
可以选定流场中具有特征意义的点,监测其速度,压力,温度等的变化情况。
如果变化很小,符合你的要求,即可认为是收敛了。
一般来说,压力的收敛相对比较慢一些的。
是否收敛不能简单看残差图,还有许多其他的重要标准,比如进出口流量差、压力系数波动等等尽管残差仍然维持在较高数值,但凭其他监测也可判断是否收敛。
最重要的就是是否符合物理事实或试验结论。
fluent udf编译出错解决办法

UDF编译出错,久久不能解决,在网上查阅了很多解决办法,均不能凑效,直到看到天乐树的博文“ANSYS FLUENT 12.x 13.x版下使用Visual Studio 2010编译UDF的设置方法”,终于设置成功。
但是在读此博文的时候其实也遇到了一点小问题,我结合我的设置经历和大家分享一点经验,希望大家少走弯路。
我用的是FLUENT 16.0和VS2010。
找到fluent安装目录下的udf.bat(C:\Program Files\ANSYS Inc\v121\fluent\ntbin\win64\udf.bat)用文本编辑器修改udf.bat:添加echo trying to find MS C compiler, version 10.0....set MSVC_DEFAULT=%ProgramFiles(x86)%\Microsoft Visual Studio 10.0if exist "%MSVC_DEFAULT%\vC\vcvarsall.bat" set MSVC=%MSVC_DEFAULT%if not "%MSVC%" == "" goto msvc_env100set MSVC_DEFAULT=%ProgramFiles%\Microsoft Visual Studio 10.0if exist "%MSVC_DEFAULT%\vC\vcvarsall.bat" set MSVC=%MSVC_DEFAULT%if not "%MSVC%" == "" goto msvc_env100:msvc_env100set MSVC_VERSION=100call "%MSVC%\VC\vcvarsall.bat" amd64gotoms_c_end(添加了这段)注:如果Visual Studio安装到其他盘,(可能)需要修改路径,比如装到D盘Program Files下,便这样添加:set MSVC_DEFAULT=d:\Program Files\Microsoft Visual Studio 10.0(这儿其实容易理解错,红色部分应该是自己设置的安装路径,比如我的安装路径是D:\programfiles\VS2010(programfiles是我在D盘建的一个文件夹,VS2010是我自己建的安装Microsoft Visual Studio2010的文件夹),那么这个语句应该是set MSVC_DEFAULT=D:\programfiles\VS2010)if exist "%MSVC_DEFAULT%\VC\vcvarsall.bat" set MSVC=%MSVC_DEFAULT% if not "%MSVC%" == "" goto msvc_env100:msvc_env100set MSVC_VERSION=100call "%MSVC%\VC\vcvarsall.bat" amd64gotoms_c_end我觉得我说的应该简单易懂了,祝大家顺利解决问题。
Fluent安装在64位系统后编译中出现的的常见错误与应对方法

Fluent安装在64位系统后编译中出现的的常见错误与应对方法这几天在64位windows系统下装fluent,使用UDF编译时碰到各种错误,花了一天功夫,终于基本解决,贴上来跟大家分享下1.exceed无法安装exceed版本太低,不支持64位系统,使用exceed 11或更高级版本2、编译时出现'nmake' is not recognized as an internal or external command没有安装VC或者装了但环境变量没有设置好。
安装Visual Studio 2008(2010和2005应该也行),安装时选择完全安装,实在空间不够,就选自定义安装,其中64位编译器一定要勾上。
安装完成后设置环境变量(参考了傲雪论坛的gearboy的方法)(1)、按以下顺序点击:开始——程序——Fluent Inc products——Fluent 6.3.26,运行该菜单下的Set Enviroment;(2)、(如果第一次安装Visual Studio就选择了完全安装,这步可以省略,只要安装完成后启动下Visual Studio即可)右击“我的电脑”——属性——高级——环境变量,在这个菜单下,上方是用户变量,下方是系统变量,现在修改用户变量。
新建一个变量命名为“Include”,在Variable values中粘贴以下部分(具体目录按照自己电脑安装情况可能需要修改,如果Visual Studio安装在默认目录下,则直接粘贴):C:\Program Files\Microsoft SDKs\Windows\v6.0A\Include;C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\atlmfc\include;C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include按同样的方法增加变量如下LibC:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib\x64;C:\Program Files (x86)\Microsoft Visual Studio9.0\VC\atlmfc\lib\amd64;C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\lib\amd64LibpathC:\WINDOWS\\Framework64\v3.5;C:\WINDOWS\\Framework64\v2.0.50727;C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\atlmfc\lib\amd64;C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\lib\amd64Pathc:\fluent.inc\ntbin\win64;C:\Program Files (x86)\Microsoft Visual Studio9.0\VC\bin\amd64;C:\WINDOWS\\Framework64\v3.5;C:\WINDOWS\\Framework64\v3.5\Microsoft .NET Framework 3.5 SP1;C:\WINDOWS\\Framework64\v2.0.50727;C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\vcpackages;C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE;C:\Program Files(x86)\Microsoft Visual Studio 9.0\Common7\Tools;C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin\x64;C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin;注:32系统可以安装6.0版本的VC,安装时选择“注册环境变量”即可,这样比较省事3、经过第2步的处理后,nmake的错误没了,但出现stdout等三个宏被重定义的问题按理不应该有这种错误,我目前没有很好的解决方法。
Fluent UDF compiled [UDF编译]错误解决办法
![Fluent UDF compiled [UDF编译]错误解决办法](https://img.taocdn.com/s3/m/42ad00c64028915f804dc299.png)
WinXP下使用UDF编译(compiled UDF)FLUENT UDF在interpreted时不需要vc++是可以的,但如果要用compiled,那么必须安装vc++了。
Fluent UDF 在compiled时点击build时出现错误:'nmake' 不是内部或外部命令,也不是可运行的程序。
点击load时则出现不可编译的错误:Opening library "libUDF"...Error: open_UDF_library: 系统找不到指定的文件。
Error Object: ()原因:环境变量有问题。
可能是安装vc++时没有勾选【设置环境变量】。
解决方法:需要设置环境变量,我的电脑-属性-高级-环境变量添加 include、lib、path和MSDevDir 环境变量,环境变量路径与安装vc++的路径有关。
如果不会设置,那么最简单的方法就是重装vc++ ,在安装过程的倒数第二步勾选设置环境变量(对于VC6.0)。
如果设置好环境变量了,build时不再出现/'nmake' 不是内部或外部命令,也不是可运行的程序。
/ 但点load时仍出现Opening library "libUDF"...Error: open_UDF_library: 系统找不到指定的文件。
Error Object: ()那么可能是因为没有加入头文件(Header files)UDF.h。
加入source files 和header files 后重新build 再load 就OK啦。
另外,在build是若出现错误:UDF_names.c(40) : fatal error C1071: unexpected end of file found in comment。
一种原因是:UDF定义了多个宏命,有一些不需要,加了 /* */ 引起的错误。
解决的方法就是删除这些多余的宏,只保留需要的。
udf配置及错误解决

FLUENT UDF中关于动网格的DEFINE宏均要求为编译型。
FLUENT的UDF运行环境有两种:解释型与编译型。
虽然两种方式都是采用编译,但是编译方式及编译后获得的结果是不同的。
编译型UDF需要通过Complied进行编译,编译后得到相应的dll文件。
而解释型UDF则是通过Interprete进行加载,不会生成dll文件。
据我的直觉,编译型UDF可能利用了钩子函数的技术。
一、编译型UDF与解释型UDF的差异(翻译自UDF手册)1、解释型UDF一个精简的平台都能被作为编译型UDF使用不需要C编译器(利用FLUENT自身的编译器)比编译型UDF反应慢在方法方面受到较多的限制无法被链接到编译系统或其它库只能使用预定义宏访问存储于ansys fluent中的数据2、编译型UDF比解释型UDF反应迅速没有诸多C语法限制能够使用其它语言编写的函数当具有一些解释型UDF不能处理的功能时,无法作为解释型UDF使用3、选取原则对于小型的、简单的功能,使用解释型UDF复杂功能使用编译型UDF。
(如具有较大的CPU开销、需要访问公共库)二、配置UDF编译环境对于编译型UDF,在fluent中加载时,需要调用C编译器将其编译成DLL文件。
这里的C 编译器虽说理论上是没有任何限制的,但是在windows环境下还是推荐使用microsoft visual c++,在linux环境下推荐使用GCC。
我们这里只说windows环境下编译环境的配置问题。
visual c++最高版本是6.0,再往后就是microsoft visual studio7.0、8.0、9.0、10.0。
其中7.0对应microsoft visual studio2003,8.0对应2005,9.0对应2008,10.0对应2010。
在一些老版的fluent中,通常需要配置环境变量。
配置环境变量的方法,网络上很多,可以搜索。
这里讲的是通过修改udf.bat文件来配置编译环境。
fluent udf编译出错解决办法

高中英语课堂教学的几点反思高中英语课堂教学是培养学生英语综合应用能力和语言素养的重要环节,也是实现教育目标、提高教学质量的关键。
在长期的教学实践中,我发现存在着一些问题,需要进行反思和改进。
本文将就高中英语课堂教学的几个方面进行反思,并提出相应的改进措施。
教学目标设置不明确。
高中英语教学的一个重要目标是培养学生的英语语言运用能力。
在实际教学中,有时我们只注重单纯的知识传授,而忽视了学生的语言实践能力的培养。
我认为在教学中应注重培养学生的英语听说读写能力,并在教学目标中明确体现出来。
还应设置一些综合性的任务,如口头报告、写作等,以提高学生的语言运用能力。
教学内容过于单一。
传统的英语课堂教学通常只侧重于课本内容的讲解和学习,而忽视了其他有效的教学资源。
教师应在教学中注重多元化的教学内容。
如运用多媒体教学资源,引入一些真实的文化材料,以扩大学生的知识面和视野,并激发学生学习英语的兴趣。
还可以组织一些英语角、课外读书和英语演讲等活动,使学生能更好地运用所学知识。
教学方法不够灵活多样。
传统的教学方法主要以教师为中心,注重知识的传授,而忽视了学生的主动性和参与性。
现代教育理念认为学生应是学习的主体,教师应起到引导和促进的作用。
在教学中,我应采用一些灵活多样的教学方法,如情景教学法、合作学习法、项目学习法等,以激发学生的学习热情和积极性,并促进学生的自主学习和合作能力的培养。
评价方式过于单一。
传统的评价方式主要以考试为主,注重对学生的记忆和应试能力的测试,而忽视了对学生综合素质的评价。
现代教育理念认为评价应是多维度的,要注重对学生思维能力、语言实践能力和创新能力的评价。
我应采用多种评价方式,如日常观察、作业评价、口头表现评价和课堂互动评价等,以全面了解学生的学习情况,并给予针对性的指导和反馈。
高中英语课堂教学的改进离不开对教学目标的明确、教学内容的多样化、教学方法的灵活多样和评价方式的多维度。
只有不断反思和改进,才能让高中英语课堂教学更加有效和有意义。
fluent udf 编译与解释

主题:Fluent UDF编译与解释近年来,计算流体力学(CFD)领域得到了迅速的发展,并成为了工程学、地球科学、医学等领域中一个重要的研究工具。
在进行CFD仿真时,用户自定义函数(User Defined Function,UDF)作为一种重要的边界条件和源项模型,可以有效地增强FLUENT软件的功能。
但是,与普通的FLUENT软件中的命令不同,UDF需要用户自行编写程序,然后通过编译器将其转换成FLUENT软件可识别的格式。
对于大部分工程师和研究人员来说,编写、编译和解释UDF仍然是一个具有一定挑战性的任务。
本文将围绕Fluent UDF编译与解释展开,从编译器的选择、编译过程的原理、编译中可能遇到的问题以及UDF的解释与调试等方面,为读者详细介绍与分析Fluent UDF编译与解释相关的知识和技巧。
一、编译器的选择在进行Fluent UDF编译之前,用户需要选择适合的编译器。
FLUENT 软件支持多种编译器,包括Microsoft Visual Studio、gcc、Intel Compiler等。
用户可以根据自己的喜好和系统环境选择合适的编译器。
二、编译过程的原理Fluent UDF的编译过程是将用户编写的程序源文件经过编译器进行编译,生成动态信息库(.dll文件)或共享对象文件(.so文件),然后再将生成的库文件加载到FLUENT软件中。
编译器将源文件翻译成机器语言,使得FLUENT软件可以识别并运行用户自定义的函数。
三、编译中可能遇到的问题在编写UDF并进行编译的过程中,用户可能会遇到一些常见的问题,如编译器报错、信息错误、库文件加载失败等。
这些问题通常是由于用户编写的程序存在语法错误、逻辑错误或者编译器的设置问题所致。
在遇到这些问题时,用户需要逐一排查并修正,保证程序能够正确地编译通过。
四、 UDF的解释与调试编译通过的UDF需要在FLUENT软件中进行解释与调试,确保其能够正确地加载和运行。
Fluent UDF编译出错解决方法总结

Fluent UDF编译出错解决方法总结Fluent是一款非常成熟的CFD软件,因此得到广泛使用。
它提供了C语言接口UDF,用户可以根据自己需要扩展Fluent的不足。
然而,UDF编译往往给大家带来了很大的麻烦,因为Fluent编译需要借助VC。
同样这个问题困扰我很久,今天终于解决了,顺便总结一下,以便日后方便查询,呵呵。
我就遇到两类问题:1.'nmake' 不是内部或外部命令,也不是可运行的程序或批处理文件这个问题大家遇到的最多,网上的解释也很多,我也在重复一遍。
出现这个错,我们需要按照如下修改环境变量变量名include变量值D:\Program Files\Microsoft Visual Studio 9.0\VC\include变量名lib变量值D:\Program Files\Microsoft Visual Studio 9.0\VC\lib变量名path变量值D:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE;D:\Program Files\Microsoft Visual Studio 9.0\VC\bin;D:\Program Files\Microsoft Visual Studio 9.0是我安装Microsoft Visual Studio 2008 的文件夹。
2.LINK: fatal erro LNK1104: cannot open file 'kernel132.lib'这个问题困扰我很久,因为以前按照1修改环境变量就OK了,可这个实在不知道是什么错误,在百度上搜了很长时间没找到解决办法,都想放弃了。
今天无意试试google,结果找到了答案!因此以后要养成用google搜问题的习惯!解决办法还是修改环境变量,提示不能打开'kernel132.lib',我们就想办法找到他并把它添加到环境变量里lib里,我的电脑里'kernel132.lib'在C:\Program files\Microsoft SDKs\Windows\v6.0A\Lib\kernel32.lib,于是把这个路径添加到lib这个环境变量里,问题就解决了。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
解决Fluent无法编译UDF文件的问题
方法1
对于Fluent加载UDF时出现"The UDF library you are trying to load(libudf)is not complied for parallel use on the current platform (win64)"错误,主要是没有正确设置本机VS安装路径,导致udf编译器无法成功编译c代码。
解决方法:
1. 找到Fluent内的UDF.bat编译器。
这里以我自己2019R2的64位学生版为例,在D:\Program Files\ANSYS Inc\ANSYS Student\v194\fluent\ntbin\win64下找到udf.bat用记事本打开
2. 将本机Visual Studio的安装路径写入。
这里以我自己VS2015为例,将本机visual studio 2015的安装路径赋值给MSVC_DEFAULT,由于VS2015的版本代号是14.0,因此将"%ProgramFiles(x86)%\Microsoft Visual Studio 14.0"替换为"D:\Program Files (x86)\Microsoft Visual Studio 14.0",保存文件即可,如图1~2所示
更改前
更改后
方法2
对于某些低版本的VS,以上操作可能不足以解决问题,需要手动配置环境变量,具体方法如下:
1.找到Fluent安装路径下的setenv.exe,双击运行选择是,路径X:\Program Files\ANSYS Inc\v130\fluent\ntbin\win64\setenv.exe
2.右键“我的电脑”—属性—高级—环境变量,添加用户变量,以VS2013为例INCLUDE=D:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include;C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Include;
LIB=D:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\lib\amd64;C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib\x64;C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib\kernel32.lib
Path=D:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\amd64;D:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE;。