1 说明
本教程目的在于帮助大家安装和设置Fortran编译器并使之能够与CFX协同工作,从而能够在某些模型和模拟的过程中,当CFX内置函数不能满足我们的需要的时候,能够调用我们自己编写的用户自定义函数或程序(User defined routine)。
下文所述安装步骤都在下图所示的系统上进行操作的,即Microsoft Windows 8.1 x64.
图1 所使用的操作系统
另外,根据这个教程,我们也在Windows XP 32位的电脑上也安装并调试成功了。
这里我先默认大家的ANSYS 14.5已经安装完成了,具体方法自己问度娘去吧。
2 安装与设置
为了能对下面用到的软件进行正确的操作,请根据自己的操作系统选择正确的软件(32位或者64位)。
本教程所用到的软件如下:
- ANSYS CFX 14.5;
- Microsoft Windows SDK 7.1 for Windows 7 and .NET Framework 4;
- Microsoft Visual Studio 2008 (或更高版本);
- Intel Fortran Compiler Composer XE 2013.
说明一下,由于本人在之前安装某些软件之前,Windows SDK 和Net Framework 4已经安装,所以在这里就不重复安装了。大家可以到【控制面板】——【安装与卸载】那里看一下自己的电脑是否有这两个软件,有的话就可以不用重复安装了。没有就自己到网上搜索下载,这里就不赘述了。
另外,安装Microsoft Visual Studio是为了支持Intel Fortran的运行,因为Intel Fortran 无法单独运行。
2.1 安装Microsoft Visual Studio 2008
将下载好的Microsoft Visual Studio 2008用虚拟光驱加载或者解压出来后,双击Setup.exe即可开始安装。关于这个软件的安装,这里只强调一点,由于我们用到的组件有限,故没有必要进行完整安装,可按如下介绍进行自定义安装即可。
图2 选择自定义安装
这里我们只勾选Visual C++组件就可以了。
图3 需要勾选的组件
其他的没有列出来的就按常规处理就可以了。
2.2 安装Intel Fortran Compiler Composer XE 2013
将下载文件解压后,你会得到一个安装文件和一个license文件。双击Intel Fortran Compiler Composer XE 2013.exe开始安装。这里也只介绍需要注意的关键步骤。
激活步骤记得选择最后一项——Choose alternative activation
图4 Choose alternative activation
选择使用license文件激活——Use a license file
图5 Use a license file
找到刚才解压得到的license文件打开即可,文件名是intel_2013.lic
图6 Intel_3013.lic
然后下一步就可以了,后面提示要不要帮助改进用户体验,选No就可以了。
图7 选择不参加改进用户体验
这个软件选完整安装就可以了。后面要注意选择整合目标程序的时候,一定要把VS2008打勾。
图8 勾选VS2008
然后继续下一步就可以了,跟上面一样这里没提到的都是傻瓜式的常规操作。
2.3 设置环境变量
这是比较关键的一步。要保证CFX和Fortran能够协同工作,必须把相关环境变量设置好。
【这台电脑】 右键打开【属性】,弹出如下窗口,选择【高级系统设置】 。
图9 高级系统设置
弹出窗口依次选择【高级】——【环境变量】。
图10 环境变量
这里我们需要修改的是上面的用户变量。
图11 用户变量
这里涉及到的变量名称有三个,分别是:lib,include和path。大家可以先看一下你原来的用户变量有没有这三个,有的话直接【编辑】 ,没有的话【新建】一个。这里以新建一个变量为例进行介绍。
在用户变量下面选择【新建】 ,会弹出如下窗口。然后我们对新建变量进行编辑。
变量名: path
变量值: D:\Program Files\ANSYS Inc\v145\CFX\bin;
D:\Program Files (x86)\Intel\Composer XE 2013\bin;
D:\Program Files (x86)\Intel\Composer XE 2013\bin\intel64;
D:\Program Files (x86)\Intel\Composer XE 2013\redist;
D:\Program Files (x86)\Intel\Composer XE 2013\redist\intel64;
D:\Program Files (x86)\Intel\Composer XE 2013\redist\intel64\compiler;
D:\Program Files (x86)\Intel\Composer XE 2013\redist\intel64\mkl;
D:\Program Files (x86)\Intel\Composer XE 2013\redist\intel64\mpirt
(提示:为了大家看的方便,这里一行一个,实际输入请将以上路径变成一行,每个路径后面有一个英文状态的分号,最后一个路径不加分号 )
图12 编辑用户变量path
另外两个变量也同样操作。
变量名:lib
变量值:D:\Program Files (x86)\Intel\Composer XE 2013\compiler\lib;
D:\Program Files (x86)\Intel\Composer XE 2013\compiler\lib\intel64
图13 编辑lib变量
变量名:include
变量值:D:\Program Files (x86)\Intel\Composer XE 2013\compiler\include;
D:\Program Files (x86)\Intel\Composer XE 2013\compiler\include\intel64
图14 编辑include变量
如果你的电脑是32位的,那么上面路径名称里面就不是intel64了, 而应该是ia32,具体你进入自己的安装文件夹就能看到了。这里不建议直接复制我的用户变量值,因为每个人的安装路径可能不一样,最靠谱的办法是对着我的路径,到你自己的呃安装目录去复制下来你实际的安装路径到你的环境变量。
我们以path变量的第一条变量值为例介绍,如下图,进入到对应的软件安装目录,在路径那里选中路径地址复制过来就可以了。
图 15 复制路径
2.4 设置CFX14.5 到用户定义程序(User define routines )
依次进入【开始】——【程序】——【ANSYS 14.5】——【Fluid Dynamics】,然后打开【CFX 14.5】,在弹出点击【Tools】,选择【command line】。
图16 选择命令行
先通过更改目录进入到intel fortran安装目录的bin文件夹,我装在D盘,所以命令行命令依次为:
D:
cd D:\Program Files (x86)\Intel\Composer XE 2013\bin
图17 进入到intel fortran的bin文件夹
然后输入如下命令,回车。
ifortvars.bat Intel64
如果你的电脑是32位的,那么这里的命令就应该是:
ifortvars.bat ia32
如果设置成功,命令窗口将会出现如下内容。
图18 CFX设置成功
下面,我们来生成CFX操作需要的一些文件。先把目录切换到你的fortran源文件所在目录。 我的fortran源文件放在C盘根目录,cmd进入该目录后,输入如下命令:
cfx5mkext -64bit <filename .F>
我的文件名是e_121_01.f,所以对应的命令为:
cfx5mkext -64bit e_121_01.f
同样的,如果是32位的系统,那你的命令就该是:
cfx5mkext <filename.F>
上述命令执行完以后,如果成功的话,命令行将显示如下信息。
图19 编译成功
同时,我们也会发现原来Fortran源文件所在目录多了一个名字为winnt-amd64的文件夹,文件夹下面有三个文件。
图20 编译生成的文件
至此,整个软件安装设置层面的工作就完成了,后面在CFX中直接调用编译通过的用户程序(User Fortran)就可以了。
? Copyright Birdol.Com 2006-2014.
继续阅读《ANSYS 14.5 CFX User Fortran 安装设置教程》的全文内容...
分类: 技术分享 | Tags: ANSYS,CFX,windows, | 添加评论(8)
最新评论:
- 2015-01-03 10:55:06 AM,Michael : @xiaoyiqi:不好意思我现在也没搞这个了...
- 2015-01-03 10:52:55 AM,Michael : @xiaoyiqi:照这么看好像到intel Fortran和到ansys 的bin文件夹执行ifortvars.bat貌似都可以的样子,我参考国外网站的教程说的是到intel Fortran 的bin文件夹执行那个命令的,当时自己好像是到ansys文件夹执行的....你可以都试一下吧,我电脑把那个卸载了现在....
- 2015-01-01 21:54:52 PM,xiaoyiqi : 博主,你文章中的图17、图18中和你图17上面的写的命令不对应啊,写的命令是intel Fortran 的安装路径,图18中显示你输入的命令是ansys Inc,是ansys的安装路径。望博主解答。谢谢!
- 2014-12-31 17:05:34 PM,xiaoyiqi : 博主,你好,在cfx中,我想用用户自定义程序定义某种边界条件,我现在只装了ansys cfx,还需要装哪些软件(fortune编程软件,fortune编译软件,具体软件名是什么),你有没有与使用子程序相关的例子或教程,本人菜鸟,本人邮箱396664354@qq.com感谢博主!子程序如下:
#include "cfx5ext.h"
dllexport(PT_WALL_INT)
SUBROUTINE PT_WALL_INT(NLOC,NRET,NARG,RET,ARG,CRESLT,
& CZ,DZ,IZ,LZ,RZ)
CC
CD User routine: Tabakoff-Rohan erosion & restitution model
CC Created by N. Woggon Dec 2010
CC
CC --------------------
CC Input
CC --------------------
CC
CC NLOC - number of entities
CC NRET - length of return stack
CC NARG - length of argument stack
CC ARG - argument values
CC
CC --------------------
CC Modified
CC --------------------
CC
CC --------------------
CC Output
CC --------------------
CC RET - return values
CC
CC --------------------
CC Details
CC --------------------
CC
CC====================================================================================
C
C ------------------------------
C Preprocessor includes
C ------------------------------
C
#include "cfd_sysdep.h"
#include "cfd_constants.h"
C
C ------------------------------
C Argument list
C ------------------------------
C
INTEGER NARG, NRET, NLOC
C
REAL ARG(NLOC,NARG), RET(NLOC,NRET)
C
CHARACTER*(4) CRESLT
C
INTEGER IZ(*)
CHARACTER CZ(*)*(1)
DOUBLE PRECISION DZ(*)
LOGICAL LZ(*)
REAL RZ(*)
C
C ------------------------------
59
C External routines
C ------------------------------
C
C
C ------------------------------
C Local Parameters
C ------------------------------
C
C
C ------------------------------
C Local Variables
C ------------------------------
C
C ------------------------------
C Stack pointers
C ------------------------------
C
C=====================================================================================
C
C ---------------------------
C Executable Statements
C ---------------------------
C
C=====================================================================================
C
C Return variables:
C -----------------
C Perpendicular Restituion Coeff : RET(1,1)
C Parralel Restituion Coeff : RET(1,2)
C Particle erosion : RET(1,3)
C
C Argument variables
C -------------------
C
C Particle impact angle : ARG(1,1)
C Particle velocity : ARG(1,2)
C
C We know that NLOC is 1 for the particle user source routines!!!!
C=====================================================================================
C
C-----------------------------------------------------------------------
C Calculate the return variables
C-----------------------------------------------------------------------
C
CALL WOGGON (RET(1,1),RET(1,2),RET(1,3),
& ARG(1,1),ARG(1,2))
C
END
SUBROUTINE WOGGON (CPER,CPAR,EROSION,ANGLE,VEL_PT)
C
C=====================================================================================
C Calculate ROHAN erosion rate
C=====================================================================================
C
C ---------------------------
C Preprocessor includes/home/user/SharedLibraries
C ---------------------------
C
#include "cfd_sysdep.h"
#include "cfd_constants.h"
C
60
C ------------------------------
C Argument list
C ------------------------------
C
REAL EROSION, ANGLE, VEL_PT(3), CPAR, CPER
C
C ------------------------------
C Local variables
C ------------------------------
C
REAL ANGLE_DEG, N, VEL, VEL1, F, EB, EV
C
C
C
C
OPEN( UNIT = 20, FILE = "C:\Users\entidata.dat",ACCESS='APPEND')
WRITE(20,'(4F16.4)') ANGLE, VEL_PT(1), VEL_PT(2), VEL_PT(3)
CLOSE(UNIT = 20)
C
C
C ------------------------------
C Executable statements
C ------------------------------
C
N = 0.4573
VEL = SQRT(VEL_PT(1)**2 + VEL_PT(2)**2 + VEL_PT(3)**2)
C
C
C
VEL1 = 3.288*VEL
F=2.0054*ANGLE-1.8095*ANGLE**2+0.4183*ANGLE**3+0.1207*ANGLE**4
EROSION = F*VEL1**N/1000
C
C
C
EV=0.963+0.3957*ANGLE-2.2994*ANGLE**2+1.4276*ANGLE**3
EB=0.2204+3.7169*ANGLE-6.6826*ANGLE**2+3.5283*ANGLE**3
C
IF(ANGLE .GE. 0 .AND. EB .LE. 1.2217305) THEN
CPER=EV*SIN(ANGLE*EB)/SIN(ANGLE)
CPAR=EV*COS(ANGLE*EB)/COS(ANGLE)
ELSE
CPER=1
CPAR=1
END IF
C
OPEN( UNIT = 10, FILE = "C:\Users\impdata.dat",ACCESS='APPEND')
WRITE(10,'(7F16.6)')ANGLE, VEL, EV, EB, CPAR, CPER, EROSION
CLOSE(UNIT = 10)
C
END - 2014-06-27 19:18:10 PM,曹体投柱 : 原来是这样
- 2014-06-27 19:17:06 PM,蔡纣奈其 : 可是今天早上的小轮又给 降权了
- 2014-06-10 09:37:36 AM,Michael : @足梦:按教程做下来就不会觉得复杂了....我都做了好几遍了.....
- 2014-06-10 09:16:12 AM,足梦 : 很复杂的样子,可以试试玩一下。
相关文章:
- ANSYS学习书籍免费下载 (2013-12-16)
欢迎转载,请保留出处,谢谢!