Fluent无法编译UDF文件的常见解决方法

合集下载

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 常见问题

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 编译疑难问题

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出错问题收集

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编译错误解决方法

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编译]错误解决办法

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。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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;。

相关文档
最新文档