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文件的常见解决方法

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 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定义了多个宏命,有一些不需要,加了 /* */ 引起的错误。

解决的方法就是删除这些多余的宏,只保留需要的。

(完整版)FluentUDF编译出错解决方法总结

(完整版)FluentUDF编译出错解决方法总结

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这个环境变量里,问题就解决了。

UDF的编译的心得

UDF的编译的心得

UDF的编译的心得最近编写了一个udf程序在解释模式下运行正常可以的到理想的结果但是采用编译模式运行总是不能将数据输出到fluent控制台中后来检查发现可以将数据输出到文件中看了下面的文章恍然大悟原来在编译模式下将数据输出到控制台不能用printf命令要用Message命令遂引述如下关于UDF的编译的心得刚刚接触UDF的时候我大多用的的是InterpretedUDF这样很方便也很简单但是到了后来编的越来越复杂不得不用CompiledUDF而且有些UDF只能Compiled但是过程却复杂多了.我在这里把过程讲一下希望对新手有帮助.一开始看帮助说是createadirectory都不知道directory是什么其实很简单就是文件夹把这个文件夹放在你case所在的目录下命名为libudf名字是什么无所谓然后在libudf 下建立两个子文件夹分别命名为src和ntx86把你的源程序也就是.c放进src 在ntx86下再建子文件夹命名为2d3d或是并行计算可同理参阅帮助然后在2d 文件夹下把Fluent.Incfluent6.srcmakefile_nt.udf和Fluent.Incfluent6.srcuser_nt.udf拷进去将makefile_nt.udf重命名为makefile接着修改user_nt.udf里的内容要改成以下格式:SOURCESSRCudfexample.c这里是有的源程序名字VERSION2d是二维还是三维PARALLEL_NODEnone有没有并行最后点开始-程序-附件-命令提示符进入DOS界面访问libudfntx862d然后敲nmake这样就OK了.然后在FLUENT里load这个libudf就行了.当然也有简单的方法在CompiledUDF里点addsourcecodes你找到你的源程序加入然后build再LOAD就行了如果在在原来的文件夹下已经有libudf文件夹那你把它删了再进行上面的步骤或者你修改libudfname比如改成lib这样也OK了.还有在UDF中要在控制窗口显示一些值比如说压力值用InterpretedUDF时就得用printf语句而在CompiledUDF时就得用Message语句二者不能互用.引自/dispbbs_163_17527_4_1.html补充message系列的函数参数格式和c语言中的printf格式是完全相同的因此只要将解释模式下的printf 直接改成Message即可作为编译程序运行。

fluent udf编译出错解决办法

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位系统后编译中出现的的常见错误与应对方法

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 编译与解释

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软件中进行解释与调试,确保其能够正确地加载和运行。

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啦。

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 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出错—设置环境变量

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\lib x:\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\IDE 2010vcX:\Program Files\Microsoft Visual Studio 10.0\VC\binX:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE 经过测试,这么添加环境变量之后就可以编译udf了,build与load都没问题。

Fluent无法编译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;。

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

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命令,然后将他的地址添加到环境变量中就可以了。

fluent问题解答

fluent问题解答

1.迭代一步出现:Error: Floating pointerror: invalid number!!计算中,用UDF定义速度入口,迭代一步就出现下面问题:Error: Floating point error: invalid number这是什么原因呢?请各位指教!1.对于这个问题,其本质上就是迭代初值不能为0(计算机内部迭代要求分母不能为0,大家都知道的)!如果你在计算中也出现了类似问题,我觉得你应该首先应该向这个方面想,如果能够想到迭代初值不能为0,那么你就能够更方便的检查你的问题2.我也曾经出现过,不过重新启动下机子再进去就没了,我也不知道什么原因就好了!我个人觉得应该和电脑有关系。

3 .UDF出错了,主要是坐标对应的问题:x=r[1];y=r[2];z=r[3]!不要把坐标搞错就行了。

4. 这个错误提示还有其他一些可能比如边界条件设置不合理,动量方程源项很大,可能会出现出现异常的局部速度从而导致这一错误的发生当然某些情况下的亚松弛因子过大也有可能出现这一问题2.请高手帮助:FLUENT在开始运行时出现ERROR:divergence detected in AMG solver:X momentum是什么原因造成的1.我算题时有时会出现ERROR:divergence detected in AMG solver:preesure如果在残差监视里选择了print,这个时候屏幕上就会出现压强超出了极限,在slutionlimits中将最大压强值改大点,再计算就可以继续算下去,不知道你这个是不是可以在里面改!divergence是发散的意思,学流体的应该知道这两字的含义2.:1/网格质量不要太差,扭曲率不大于0。

92/检查边界条件及边界的位置是否合理,具体看help文件3/如果是压力进口,且压力非常高(10个大气压左右)可以设置一大小相同的初始化压力。

3.在开始计算时,库朗数要设置的小一些,等计算收敛后再逐渐增大。

fluent udf编译出错解决办法

fluent udf编译出错解决办法

高中英语课堂教学的几点反思高中英语课堂教学是培养学生英语综合应用能力和语言素养的重要环节,也是实现教育目标、提高教学质量的关键。

在长期的教学实践中,我发现存在着一些问题,需要进行反思和改进。

本文将就高中英语课堂教学的几个方面进行反思,并提出相应的改进措施。

教学目标设置不明确。

高中英语教学的一个重要目标是培养学生的英语语言运用能力。

在实际教学中,有时我们只注重单纯的知识传授,而忽视了学生的语言实践能力的培养。

我认为在教学中应注重培养学生的英语听说读写能力,并在教学目标中明确体现出来。

还应设置一些综合性的任务,如口头报告、写作等,以提高学生的语言运用能力。

教学内容过于单一。

传统的英语课堂教学通常只侧重于课本内容的讲解和学习,而忽视了其他有效的教学资源。

教师应在教学中注重多元化的教学内容。

如运用多媒体教学资源,引入一些真实的文化材料,以扩大学生的知识面和视野,并激发学生学习英语的兴趣。

还可以组织一些英语角、课外读书和英语演讲等活动,使学生能更好地运用所学知识。

教学方法不够灵活多样。

传统的教学方法主要以教师为中心,注重知识的传授,而忽视了学生的主动性和参与性。

现代教育理念认为学生应是学习的主体,教师应起到引导和促进的作用。

在教学中,我应采用一些灵活多样的教学方法,如情景教学法、合作学习法、项目学习法等,以激发学生的学习热情和积极性,并促进学生的自主学习和合作能力的培养。

评价方式过于单一。

传统的评价方式主要以考试为主,注重对学生的记忆和应试能力的测试,而忽视了对学生综合素质的评价。

现代教育理念认为评价应是多维度的,要注重对学生思维能力、语言实践能力和创新能力的评价。

我应采用多种评价方式,如日常观察、作业评价、口头表现评价和课堂互动评价等,以全面了解学生的学习情况,并给予针对性的指导和反馈。

高中英语课堂教学的改进离不开对教学目标的明确、教学内容的多样化、教学方法的灵活多样和评价方式的多维度。

只有不断反思和改进,才能让高中英语课堂教学更加有效和有意义。

Fluent安装在64位系统后编译中出现的的常见错误与应对方法

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等三个宏被重定义的问题按理不应该有这种错误,我目前没有很好的解决方法。

FluentUDF编译Console中显示乱码【中文乱码】解决方法

FluentUDF编译Console中显示乱码【中文乱码】解决方法

FluentUDF编译Console中显⽰乱码【中⽂乱码】解决⽅法参照:
进⾏设置,成功。

⼀:打开控制⾯板,选择区域
⼆:选择“管理”标签
三:选择更改系统区域设置
四:当前系统区域设置,选择“英语(美国)”
五:重启,再打开Fluent,编译即可显⽰为英⽂结果。

============================================================================
按照上述⽅法修改后有个坑爹的地⽅,office⾥⾯不再显⽰中⽂字体,导致⽂档乱码,⼜改回来了。

顺带说⼀句,勾选 “Beta版:使⽤Unicode UTF-8提供全球语⾔⽀持” 后,某些软件会出现中⽂乱码现象,⽐如有道词典。

============================================================================
好消息!fluent 2020 R1 已经全⾯⽀持中⽂了。

只需要再打开fluent时,在 environment 选项卡中添加⼀句 lang=zh 即可
打开后显⽰样⼦:
但是!控制台还是中⽂乱码!
============================================================================
看到⽹上有⼈说把 visual studio 换成英⽂版就可以,可我试了还是不⾏。

真让⼈头⼤……。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
至于为什么意思语句编译会出错就需要更加专业的程序员来解释。
接下来如果编译如下的程序
#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文件。解决以上出现的编译问题其实解决的思路很简单将
如果你查找ycheck.h,想加入这个头文件来解决这个问题的话,你会发现在中文资料库里根本就查不到这样的头文件。这可能是该公司内部开发的一个头文件。所以这条路又行不通。那么如果将这条预处理程序忽略掉呢?结果就会出现以下的编译错误:
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\math.h(99): error C2061:语法错误:标识符“__ATTRIBUTES”
if not "%MSVC%" == "" goto msvc_env110
这个文件中还有其他类似的语句,但是都是重复查找不同的编译环境。通过查找vcvarsall.bat,fluent才知道编译器位置。如果不是就要靠运行msvc_env110,那就要手动设置环境变量了。注意你安装了VS2015以后,在program(x86)中有Microsoft Visual Studio 14.0,Microsoft Visual Studio 12.0,Microsoft Visual Studio 11.0,其中只有一个是有效的,这个要仔细确认(一般只有一个文件夹是完整的安装,估计这样做是为了向下兼容性)。
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\math.h(483): error C2143:语法错误:缺少“)”(在“/”的前面)
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\math.h(483): error C2143:语法错误:缺少“{”(在“/”的前面)
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\math.h(483): error C2059:语法错误:“/”
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\math.h(483): error C2059:语法错误:“)”
UDF编译疑难问题
作者 华南理工大学 何奎2016 5月
随着用户求解的问题越来越复杂,使用fluent软件难免使用编译型的UDF,编译型需要用户安装微软visual stadio C++开发软件,并做正确的环境变量配置。否则则会出现如nmake不是内部命令的错误。除了编译环境的正确设置,还有一些细节上的疑难问题一并给出解决方法。目前这mes.c(7): error C2059:语法错误:“}”udf_names.c(8): warning C4034: sizeof返回0
编译结果
udf_names.c(8): warning C4113: “void (*)()”和“void (*)(void)”的参数列表不同
# Linking libudf.dll because of user_nt.udf udf_names.obj FTparam.obj vel.obj
Microsoft (R) Incremental Linker Version 14.00.23918.0
Copyright (C) Microsoft Corporation. All rights reserved.
如果光按fluent提示的查找错误,是不可能完成错误查找的,打开math.h因为你会看见483行是这样
_Check_return_ _ACRTIMP double __cdecl cbrt(_In_ double _X);(求立方根函数)
这个语句本身是没有什么问题的。如果想修改这条语句完成math.h的编译,那就走入了死胡同。那么换个版本的math.h呢?
修改完了这个路径以后就OK了。
环境变量配置完全以后,还会出现一些别的问题。如编译UDF时会利用math.h,注意编译这个文件有可能会出现很多问题。如下:
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\math.h(483): error C2059:语法错误:“常量”
于是换了个瑞典公司开发的版本Copyright 2003-2010 IAR Systems AB(瑞典著名软件开发商).
结果编译出现:
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\math.h(19): fatal error C1083:无法打开包括文件:“ycheck.h”: No such file or directory
{
real Re_thetac = 176.396;
return Re_thetac;
}
DEFINE_TRANS_RETHETA_T(user_Re_thetat, c, t)
{
real Re_thetat = 210;
return Re_thetat;
}
会出现如下的错误,许多人认为这个程序是直接从fluent帮助文件里拷贝的应该没什么问题,但是阅读资料应该全面,注意到t的声明在程序里没有给出,但是却在帮助文件的前半部分查到。Fluent里面默认thread为一个指针,而t不是所以将t改成thread应该就可以了,结果证实我的推理是正确的。
关于环境变量的设置,பைடு நூலகம்络上已经有大量的实例,现介绍一种简单的环境变量配置方法:
在fluent的安装目录下找到udf.bat,修改以下内容:
set MSVC_DEFAULT=%ProgramFiles(x86)%\Microsoft Visual Studio 14.0
if exist "%MSVC_DEFAULT%\VC\vcvarsall.bat" set MSVC=%MSVC_DEFAULT%
相关文档
最新文档