关于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培训 

编辑
在线报名:
  • 客服在线请直接联系我们的客服,您也可以通过下面的方式进行在线报名,我们会及时给您回复电话,谢谢!
验证码

全国服务热线

1358-032-9919

广州公司:
广州市环市中路306号金鹰大厦3800
电话:13580329919
          135-8032-9919
培训QQ咨询:点击咨询 点击咨询
项目QQ咨询:点击咨询
email:kf@1cae.com