ANSYS 15.0 fluent udf环境变量的设置
初学udf,还没进入主题就被udf问题搞死了,摸索了一两天终于让我搞出了点名堂,本人用的是ANSYS 15.0和vc 10.0.不多说,先把ANSYS 和vc都装上,网上有教程安装的,一步步来别跳步。最好把vc6也装一下,因为里面有的东西设置环境变量要用到。先不要打开软件。 设置环境变量:
1. C:\\Program Files\\ANSYS Inc\\v150\\fluent\\ntbin\\win64目录下双击setenv和remenv 2.设置环境变量:
INCLUDE
C:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include;C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v7.0A\\Include; LIB
C:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\lib\\amd64;C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v7.0A\\Lib\\x64;C:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\atlmfc\\lib; PATH
C:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\bin\\amd64;C:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\Common7\\IDE;
找个udf文件,注意udf是支持三维还是二维的,打开fluent , 设置工作目录。如下:
接着就是编译了,不用打开case的,直接就可以define ….
如果出现什么 xcopy….我们找到C:\\Windows\\System32里面的xcopy复制到 C:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\bin;
C:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\bin\\amd64;
如果出现“size_t”: 重定义;不同的基类型,可能是你的udf文件有问题。如果实在不行,按照下面的环境变量重新设置一下,重启电脑。
INCLUDE C:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include;C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v7.0A\\Include;
LIB C:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\lib\\amd64;C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v7.0A\\Lib\\x64; C:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\atlmfc\\lib;
PATH C:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\bin;C:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\bin\\amd64;C:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\Common7\\IDE;C:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\Common7\\Tools;c:\\program files\\ansys inc\\v150\\fluent\\ntbin\\win64
4.1 Problem with 'nmake'
According to the manual, I wrote a C code, saved it in my working folder, added it, clicked Build... and then I saw this:
(system \\1 file(s) copied. (chdir \(chdir \
'nmake' is not recognized as an internal or external command, operable program or batch file.
'nmake' is not recognized as an internal or external command, operable program or batch file. Done.
4.2 Solution to the 'nmake' problem
Without any detail, the problem is caused because nmake.exe cannot be found. The solution is to start Fluent from the x64 version of the Visual Studio 2013 Command Prompt:
1. Open the Start screen (press Windows button on your keyboard) 2. Type 'Visual Studio Tools', click the folder.
3. In the folder click and start 'VS2013 x64 Cross Tools Command Prompt' 4. Navigate to your working folder, i.e. the folder where your case and data files are (.cas & .dat).
5. Start Fluent with \
Inc\\v140\\fluent\\fluent14.0.0\\launcher\\win64\standard installation\
6. Make sure that on the Environment tab 'Setup Compilation Environment for UDF'
is ticked. The default address is fine.
Starting Fluent this way should solve the 'nmake' problem and the compilation message should look like this:
(system \\1 file(s) copied. (chdir \(chdir \# Generating ud_io1.h velocity_profile.c
# Generating udf_names.c because of makefile velocity_profile.obj udf_names.c
# Linking libudf.dll because of makefile user_nt.udf udf_names.obj velocity_profile.obj Microsoft (R) Incremental Linker Version 10.00.30319.01 Copyright (C) Microsoft Corporation. All rights reserved.
Creating library libudf.lib and object libudf.exp Done.
5.1 Problem with x64 system
In case you do not have Microsoft Visual Studio 2013 Express then likely you tried starting Fluent from the 'Visual Studio Command Prompt (2010)' or any other previous version of VS command prompt. It is likely that you encountered a problem when clicking Load, specifically this one:
The UDF library you are trying to load (libudf) is not compiled for 2d on the curent platform (win64). The system cannot find the file specified.
X:\\
The reason of this error is that previous versions of Visual Studio are 32bit and do not work with your x64 version of Fluent. You probably googled the problem and found advice to start Fluent from the command promt of the SDK (Software Development Kit) 7.0/7.1 instead, or from the command prompt of the .NET Framework. Unfortunately, as Microsoft states on their website at the Windows SDK 8.1 download page: \
environment. You must install a compiler and build environment separately. If you require a complete development environment that includes compilers and a build
environment, you can download Visual Studio 2013, which includes the appropriate components of the Windows SDK.\
Older versions of the .NET Framework and SDK do not seem to work properly on Windows 8.1 ([citation needed], just my experience ). I also found out that with a working x64 SDK installed you can start the simple windows command prompt (cmd.exe) with the proper environmental variables using a cmd.exe /k \
5.2 Solution to the problem of x64 system
The solution to this is to start Fluent from the x64 command prompt 'VS2013 x64 Cross Tools Command Prompt' as described in (4.1) instead of previous versions of VS or SDK/.NET command prompts.
6.1 Problem with math.h
Another problem occurred even after I had everything set up. This problem was reported by cfd-online user KITetima as well in this forum topic. The very simple c code to initialize the velocity on the inlet boundary to a given velocity profile did not compile, and the following error message appeared:
C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\INCLUDE\\math.h(482) : error C2059: syntax error : ',' C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\INCLUDE\\math.h(482) : error C2143: syntax error : missing ')' before 'constant'
C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\INCLUDE\\math.h(482) : error C2143: syntax error : missing '{' before 'constant'
C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\INCLUDE\\math.h(482) : error C2059: syntax error : 'constant'
C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\INCLUDE\\math.h(482) : error C2059: syntax error : ')' Done.
I could not figure out exactly what is the problem, but it seems that the header file math.h provided by VS2013 has some mistakes, or somehow isn't compatible with Fluent 14 (and Fluent 14.5).
First I tried to give the math.h header file for the UDF myself in the Header section (see Figure above), however, the compiler still used the math.h file that is located in C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\include.
6.2 Solution to the problem with math.h