关于ABAQUS和User Subroutine的若干问题-转载
2017-06-15 by:CAE仿真在线 来源:互联网
最近老板要求所有学生在运行的PC,workstation确保安装了正版软件,这下好了,一股脑揪出一拨非授权软件,把老板吓坏了。于是老板风风火火地要求彻查,最后大家的Research不得不中断,各自忙着删啊,买正版啊,向学校提交正版请求啊,忙成一团。ABAQUS的正版是有的,但是与之匹配的Intel Fortran和Visual Studio大家就不管了,所以这次整改主要集中在后两个软件的更新上,为此老板还花钱买了5个Intel Fortran的License(2000多新币啊),不过这是题外话,通过这次整改,对ABAQUS和与之相关的subroutine问题有了更为深刻的认识。
1. 大家知道ABAUQS如果需要用User Subroutine必须有Intel Fortran,而Intel Fortran又必须在Visual Studio的环境下运行。三者之间存在的两两兼容问题,必须引起注意。
ABAQUS 与Intel Fortran及Visual Studio的兼容关系
Abaqus 版本 | 兼容的Intel Fortran | 兼容的Visual Studio |
6.8 | v9.1, v10.0, v10.1及以上 | 2005 |
6.9 | v9.1, v10.0, v10.1及以上 | 2005, 2008 |
6.10 | v10.1, v11.0, v11.1及以上 | 2008, 2010 |
6.11 | v10.1, v11.0, v11.1及以上 | 2008, 2010 |
6.12 | v10.1, v11.0, v11.1及以上 | 2008, 2010 |
Fortran和Visual Studio的兼容关系
Intel Fortran版本 | 兼容的Visual Studio |
v10.0 | 2003, 2005 |
v10.1(10.1.019之后) | 2003, 2005, 2008 |
v11.0, v11.1 | 2003, 2005, 2008 |
v12.0, v12.1 (XE2011) | 2005, 2008, 2010 |
v13.0 (XE2013) | 2008, 2010, 2012 |
目前我用的比较多的配搭:
Abaqus 6.9+VS2005+Intel Fortran 9.1/10.0/10.1
Abaqus 6.10/6.11/6.12+VS2008+Intel Fortran 10.1
2. 因为一个Intel Fortran license不便宜,如果一台机子上用一个license的话,投资很大,特别是对于并行计算的计算机组,事实上用subroutine计算是并不需要每次都编译,每台机器上也不需要都安装Intel Fortran,做法是在一台公共的机子上安装授权的Intel Fortran,然后需要跑subroutine的用户登录该机编译后将共享库文件拷贝到任意目录,并修改abaqus_v6.env文件。本地不装Intel Fortran进行带子程序的ABAQUS计算需按如下方法进行:
如果你要用的子程序代码文件为usersub.for, 计算模型文件为abc.inp
1). 在未装Intel Fortran的机器上面运行 abaqus make library=usersub
2). 若是Standard模块,则会生成standardU.dll;若是Explicit模块,则会生成ExplicitU.dll和ExplicitU-D.dll
3). 将上述库文件存储到任意目录,比如:D:abc1abc2abc3abc4
4). 打开abaqus环境变量设置文件abaqus_v6.env, 末尾增加如下语句
usub_lib_dir=”D:\abc1\abc2\abc3\abc4″
(注意将“”改成“\”; 若abaqus安装目录下无法修改abaqus_v6.env文件,则将修改后的环境变量文件存储到inp文件所在目录)
5). 运行计算 abaqus job=abc int 即可
3. ABAQUS和兼容的Intel Fortran以及Visual Stuido安装完毕后,可以运行Abaqus info=system来检验各组件是否已经被识别,有时候系统环境变量设置不对,每次都要将设置Visual Studio和intel fortran环境变量的批处理文件人为导入。一般来说是这两个文件: vsvars32.bat和ifortvars.bat,如果是64位系统的则是: vsvarsamd64.bat和ifortvars.bat,这两个文件分别存储在Visual Studio和Intel Fortran的安装文件夹下。
为了避免人工导入,可以创建一个批处理文件来替代人工的dos操作,举个笔者的例子:
@echo off
call “C:Program Files
(x86)IntelCompilerFortran10.1.021em64tbinifortvars.bat”
call “C:Program Files (x86)Microsoft Visual Studio
9.0VCbinamd64vcvarsamd64.bat”
abaqus info=system
这样每次检验可以省事不少,然后就可以直接开算啦!
一点心得,仅供参考。
(From:http://www.hiyip.com/?p=321)
相关标签搜索:关于ABAQUS和User Subroutine的若干问题-转载 abaqus分析培训 abaqus技术教程 abaqus岩土分析 钢筋混凝土仿真 abaqus分析理论 abaqus软件下载 abaqus umat用户子程序编程 Abaqus代做 Abaqus基础知识 Fluent、CFX流体分析 HFSS电磁分析 Ansys培训