配置ABAQUS子程序二次开发环境的指南

由于工程问题的复杂度,Abaqus通用有限元软件在求解某些专业问题上有所欠缺。针对此问题,Abaqus提供了二次开发的功能。 Abaqus的二次开发可以拓展Abaqus的应用范围,提高对问题求解的复杂度和精确度。

Abaqus提供了两种二次开发的接口:一种是子程序接口(User Subroutine),一种是脚本接口(Abaqus Scripting Interface)。脚本语言是在Python语言的基础上进行的定制开发,它扩充了Python的对象模型和数据类型,使Abaqus脚本接口的功能更加强大。子程序接口开发是在Fortran语言的基础上进行的定制开发,可以根据需要开发新的材料模型,单元模型以及与其他应用软件的数值交换。本文主要讲述利用Fortran语言对Abaqus进行子程序开发的软件配置。

Abaqus子程序的二次开发需要配置IVF和VS。做好相关设置后可通过本文提供的案例进行验证以证明软件的配置是否正确。



一、Abaqus/IVF/VS的兼容性介绍

 [1]  Abaqus/IVF/VS的兼容关系

Abaqus 版本Intel FortranVisual Studio
6.8v9.1, v10.0, v10.1及以上2005
6.9v9.1, v10.0, v10.1及以上2005, 2008
6.10v10.1, v11.0, v11.1及以上2008, 2010
6.11v10.1, v11.0, v11.1及以上2008, 2010
6.12v10.1, v11.0, v11.1及以上2008, 2010
6.13v10.1, v11.0, v11.1及以上2008,2010,2012

 [2]  IVF/VS的兼容关系

Intel Fortran版本兼容的Visual Studio
v10.02003, 2005
v10.1(10.1.019之后)2003, 2005, 2008
v11.0, v11.12003, 2005, 2008
v12.0, v12.1 (XE2011)2005, 2008, 2010
v13.0 (XE2013)2008, 2010, 2012

本文采用的配搭:

  Abaqus 2016+VS2010+IVF2011

可使用的配搭:

  Abaqus 2016+VS2012+IVF2013



二、Abaqus/IVF/VS的安装顺序及安装方法

 [1]   软件下载地址

Abaqus2016

https://yun.baidu.com/s/1mj17Esg

密码:nmwb

Visual Studio2010

http://pan.baidu.com/s/1c1Z6nWO

密码:dguj

IntelFortran12.0(XE2011)

http://pan.baidu.com/s/1gfkVzxh

密码:l3hw

 [2]   安装顺序


a)   安装VS(必须在Intel Fortran 软件安装之前)

一般而言安装VS没有任何难度,需要注意的一点是对于64位系统需要安装64位支持,而在有些版本中该模块在默认安装中是没有选中的。为了避免漏装,在安装时需要选择完全安装(complete)。此外,为了避免由于非英文版本VS产生的各种不可预料的整合问题,建议使用英文版VS。


 b)   step 2安装IVF

为了实现IVF和VS的整合,step2需要在step1之后进行。一般情况下,IVF会在安装时自动检测支持的VS版本并进行整合。对于64位系统同样需要安装64位系统支持,推荐完全安装(ForAdvanced User)。整合成功的话可以在已安装组件列表中找到“Intel(R)Fortran Compiler Integration”。


  c)  step3安装 Abaqus

      step3 相对前两步相对独立,甚至可以先于1、2进行

注意:MicrosoftVisual Studio软件必须安装在IntelFortran软件之前。否则IntelVisual Fortran无法集成到MicrosoftVisual Studio软件之中。

[3]  软件安装方法

软件安装中主要涉及软件的破解,破解方法在软件程序的文件夹中。



三、Abaqus2016 /IVF2011/VS2010的关联设置

 [1]   IVF2011软件的设置

打开:开始(所有程序)->IntelParallel Studio XE 2010->运行Intel 64 Visual Studio 2010 。在界面处输入:

%comspec%/k ""C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat""x86_amd64,Enter运行。如下图所示。

ABAQUS子程序二次开发的软件配置的图1  [2]  Abaqus2016的设置

     记事本打开批处理文件:launcher.bat 和abq2016.bat(或者右键编辑)

默认位置为:

C:\SIMULIA\Abaqus\Commands\abq2016.bat

C:\SIMULIA\CAE\2016\win_b64\resources\install\cae\launcher.bat

将abq2016.bat 和launcher.bat中的内容由

@echo off

"C:\SIMULIA\CAE\2016\win_b64\code\bin\ABQLauncher.exe"%*

修改为

call "C:\Program Files (x86)\Microsoft Visual Studio11.0\VC\vcvarsall.bat" x86_amd64

call "C:\Program Files (x86)\Intel\Composer XE2013\bin\ifortvars.bat" intel64 vs2012

@echo off

"D:\SIMULIA\CAE\2016\win_b64\code\bin\ABQLauncher.exe"%*

上述主要是添加vcvarsall.bat和ifortvars.bat的位置,更改地址由这两个软件的位置确定,如果VS和IVF安装在D盘,则修改为

call "D:\Program Files (x86)\Microsoft Visual Studio11.0\VC\vcvarsall.bat" x86_amd64

call "D:\Program Files (x86)\Intel\Composer XE2013\bin\ifortvars.bat" intel64 vs2012

@echo off

"D:\SIMULIA\CAE\2016\win_b64\code\bin\ABQLauncher.exe"%*

关联成功之后,运行cmd,在界面输入abaqus information=system,界面信息中出现了匹配的Intel Fortran compiler。同时打开Abaqus软件,界面中多出了Intel  Fortran 和Visual Studio 软件的相关信息。

ABAQUS子程序二次开发的软件配置的图2


ABAQUS子程序二次开发的软件配置的图3



三、简单案例

 [1]  Abaqus模型

模型为一根悬臂梁模型。物理尺寸为:

长1m,截面0.03m×0.03m,壁厚0.003m

载荷为一端固支,另一端施加位移载荷,载荷数值为:

U1=0.03m,U2=0.04m,U3=0.05m

UR1=0.1,UR2=0.15,UR3=0.2

在Abaqus中的Inp文件中不施加梁的载荷,载荷的施加通过Abaqus中的DISP子程序进行施加。Inp文件如下:

*Heading

**Job name: Job-1 Model name: Job-1

**Generated by: Abaqus/CAE 2016

*Preprint,echo=NO, model=NO, history=NO, contact=NO

**

**PARTS

**

*Part,name=PART-1

*Node

     1,           0.,           0.,           0.

     2, 0.100000001,           0.,           0.

     3, 0.200000003,           0.,           0.

     4, 0.300000012,           0.,           0.

     5, 0.400000006,           0.,           0.

     6,          0.5,           0.,           0.

     7, 0.600000024,           0.,           0.

     8, 0.699999988,           0.,           0.

     9, 0.800000012,           0.,           0.

    10, 0.899999976,           0.,           0.

    11,           1.,           0.,           0.

    12, 0.0500000007,           0.,           0.

    13, 0.150000006,           0.,           0.

    14,        0.25,           0.,           0.

    15, 0.350000024,           0.,           0.

    16, 0.449999988,           0.,           0.

    17, 0.550000012,           0.,           0.

    18, 0.649999976,           0.,           0.

    19,        0.75,           0.,           0.

    20, 0.850000024,           0.,           0.

    21, 0.949999988,           0.,           0.

*Element,type=B32

1,  1,12,  2

2,  2,13,  3

3,  3,14,  4

4,  4,15,  5

5,  5,16,  6

6,  6,17,  7

7,  7,18,  8

8,  8,19,  9

9,  9,20, 10

10,10, 21, 11

*Nset,nset=SET-1, generate

 1, 21,   1

*Elset,elset=SET-1, generate

 1, 10,   1

*Nset,nset=SET-2, generate

 1, 21,   1

*Elset,elset=SET-2, generate

 1, 10,   1

**Section: Section-1-SET-1  Profile:Profile-1

*BeamSection, elset=SET-1, material=MATERIAL-1, temperature=GRADIENTS, section=BOX

0.03,0.03, 0.003, 0.003, 0.003, 0.003

0.,0.,-1.

*EndPart

**

**

**ASSEMBLY

**

*Assembly,name=Assembly

**

*Instance,name=PART-1-1, part=PART-1

*EndInstance

**

*Nset,nset=SET-1, instance=PART-1-1

1,

*Nset,nset=SET-2, instance=PART-1-1

11,

*Nset,nset=Set-3, instance=PART-1-1

11,

*Nset,nset=Set-4, instance=PART-1-1

11,

*EndAssembly

**

**MATERIALS

**

*Material,name=MATERIAL-1

*Elastic

1.92e+11, 0.3

**

**BOUNDARY CONDITIONS

**

**Name: Disp-BC-1 Type: Symmetry/Antisymmetry/Encastre

*Boundary

SET-1,ENCASTRE

**----------------------------------------------------------------

**

**STEP: Step-1

**

*Step,name=Step-1, nlgeom=NO

*Static

1.,1., 1e-05, 1.

**

**BOUNDARY CONDITIONS

**

**Name: BC-2 Type: Displacement/Rotation

*Boundary,user

Set-4,1, 1

Set-4,2, 2

Set-4,3, 3

Set-4,4, 4

Set-4,5, 5

Set-4,6, 6

**

**OUTPUT REQUESTS

**

*Restart,write, frequency=0

**

**FIELD OUTPUT: F-Output-1

**

*Output,field

*NodeOutput

CF,RF, U, UR, UT

*ElementOutput, directions=YES

LE,PE, PEEQ, PEMAG, S

*ContactOutput

CDISP,CSTRESS

**

**HISTORY OUTPUT: H-Output-1

**

*Output,history, variable=PRESELECT

*EndStep

 [2]  子程序编写

     子程序编写->开始菜单打开vs2010->新建项目

ABAQUS子程序二次开发的软件配置的图4

ABAQUS子程序二次开发的软件配置的图5

ABAQUS子程序二次开发的软件配置的图6

ABAQUS子程序二次开发的软件配置的图7

   保存名为u.for的文件,供后续子程序的加载使用。

 [3]  子程序调用

   建立求解计算的工作之后,对工作进行编辑,如下图所示,添加子程序。

ABAQUS子程序二次开发的软件配置的图8

 [4]  结果显示

ABAQUS子程序二次开发的软件配置的图9

ABAQUS子程序二次开发的软件配置的图10




四、结论

本文阐述了Abaqus子程序二次开发的软件设置方法,并提供了一个简单案例以验证Abaqus二次开发的软件配置是否正确,为Abaqus的二次开发学习奠定了坚实的基础。在进行软件配置的时候,如果出现错误,我们要根据相应的错误提示找出问题所在,进而解决。


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空