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 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 |
6.13 |
v10.1, v11.0, v11.1及以上 |
2008,2010,2012 |
[2] IVF/VS的兼容關系
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 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運行。如下圖所示。
[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 軟件的相關信息。
三、簡單案例
[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->新建項目
保存名為u.for的文件,供后續子程序的加載使用。
[3] 子程序調用
建立求解計算的工作之后,對工作進行編輯,如下圖所示,添加子程序。
[4] 結果顯示
四、結論
本文闡述了Abaqus子程序二次開發的軟件設置方法,并提供了一個簡單案例以驗證Abaqus二次開發的軟件配置是否正確,為Abaqus的二次開發學習奠定了堅實的基礎。在進行軟件配置的時候,如果出現錯誤,我們要根據相應的錯誤提示找出問題所在,進而解決。
轉載并群發可獲得CAE源文件和子程序源代碼。
工程師必備
- 項目客服
- 培訓客服
- 平臺客服
TOP




















