張道法 張繼勛
(河海大學 水利水電學院, 南京 210098)
?
ABAQUS批量截圖技術(shù)及其在深埋長隧洞中的應用
張道法張繼勛
(河海大學 水利水電學院, 南京210098)
摘要:深埋長隧洞由于其內(nèi)在的復雜性和特殊性,計算工況和典型斷面眾多,有限元計算后處理截圖工作任務繁重,批量截圖技術(shù)省時省力.本文基于實用角度在ABAQUS平臺上實現(xiàn)了截圖的批量處理,編制了相關(guān)的Fortran程序,將其應用于西南某工程,結(jié)果表明,批量截圖技術(shù)通用、可靠、準確、快速,顯著提高了工作效率.
關(guān)鍵詞:深埋長隧洞;ABAQUS;批量截圖;Fortran程序;腳本文件
大型通用有限元軟件ABAQUS以其強大的非線性處理能力而著稱,在巖土工程等領(lǐng)域取得了廣泛的應用[1].ABAQUS強勁的計算內(nèi)核風靡全球,自動選取增量步和收斂準則,能夠迅速高效地解決實際問題.后臺運行簡單、方便,為在其他程序中調(diào)用ABAQUS提供了便利.隨著大型復雜工程項目的大量建設(shè),有限元計算輔助設(shè)計廣泛使用.在實際撰寫項目報告時,大量有限元計算得到的位移、應力等云圖需要截取,ABAQUS雖然提供了強大的后處理功能,但基本上屬于逐張截取,在批量截圖方面相對薄弱.尤其對于深埋長隧洞等地下工程而言,洞線長,環(huán)境復雜,必然計算斷面及工況眾多,計算完畢后的截圖任務就更為繁重,本文從批量處理的角度出發(fā),編寫了批量截圖的Fortran程序,利用Python腳本文件將ABAQUS的截圖功能嵌入所編程序之中,減輕了截圖工作的勞動強度,實際工程應用表現(xiàn)出良好的適用性.
1Python腳本文件及Fortran語言在ABAQUS中的應用
1.1Python腳本的應用
ABAQUS中命令操作一般有兩種方式,一是通過CAE中圖形用戶界面即GUI操控軟件,二是采用Python語言編寫的腳本文件繞過CAE命令直接操控ABAQUS內(nèi)核.CAE中的每一步操作均對應相應的腳本命令,類似于ANSYS中的APDL語言,Python腳本也有著參數(shù)化建模的功能,我們可以完全用腳本命令的形式完成建模、生成inp文件、提交求解器運算甚至后處理的一系列功能,而不需要繁瑣的GUI操作.腳本文件的方式具有不可替代的優(yōu)點,尤其對于參數(shù)化建模方面,僅需改變幾個參數(shù),就能實現(xiàn)不同的模型,對于模型優(yōu)化而言,方便、高效,具有現(xiàn)實意義.腳本文件用Python語言編寫,Python是一種面向?qū)ο蟮慕忉屝透呒壵Z言,它簡潔、優(yōu)美、高效,在很多軟件中得以應用.ABAQUS自帶了Python解釋器,并且拓展了它的對象模型,ABAQUS中有3種主要對象模型分別為mdb對象、odb對象和session對象.實際應用中,開發(fā)人員無需深刻掌握Python語言及ABAQUS對象模型,ABAQUS提供了腳本錄制功能,自動生成腳本文件,大大降低了開發(fā)的難度.近年來,許多學者對此展開了研究.鐘同圣[2]等通過Python語言開發(fā)ABAQUS前處理模塊,解決了大量重復單元建模時的煩瑣問題.李慧[3]等對ABAQUS后處理進行了二次開發(fā),擴展了其后處理功能.張強[4]等系統(tǒng)地介紹了基于Python的ABAQUS的二次開發(fā)原理與方法.
1.2Fortran語言的應用
Fortran語言作為世界上第一門高級語言,自誕生以來,先后經(jīng)歷了Fortran66、Fortran77、Fortran90等幾個版本,每一次改變都是賦予該語言新的生命力,使之更具有時代特點,至今在科學計算屆仍然享有盛譽.Fortran語言與ABAQUS軟件的結(jié)合通常有兩種方法,一是自編子程序的方式供ABAQUS軟件調(diào)用,也就是ABAQUS的二次開發(fā),從而擴充軟件的功能,使ABAQUS在更廣泛的領(lǐng)域應用,解決更專業(yè)的問題.ABAQUS提供了大量子程序接口,各種材料子程序、單元子程序等便是這種方式的實際應用,很多學者對此做了大量研究,也取得了不少有益的成果.徐遠杰[5]等將Duncan-Chang本構(gòu)嵌入到ABAQUS軟件中,楊曼娟[6]則在ABAQUS中開發(fā)了修正Mohr-Coulomb模型.另一種則相反,它是把ABAQUS作為一個子模塊,在自編程序中調(diào)用ABAQUS軟件,把它當成一個超級計算器一樣嵌入程序之中,自主權(quán)完全由自編程序控制,對于需要多次調(diào)用有限元計算過程的問題特別有效.目前對此種方式的研究比較少,反饋分析中常常將有限元軟件嵌入到優(yōu)化算法中,以期實現(xiàn)參數(shù)優(yōu)化.本文采用了第二種方式,將ABAQUS作為一個模塊融入到自編的批量截圖程序中,但僅涉及到了打開odb文件和相關(guān)的截圖功能,也就是所謂的后處理功能.
2批量截圖技術(shù)流程
2.1實現(xiàn)過程
批量截圖實際上是針對同一模型的不同工況而開發(fā)的,實際應用中,僅需對所要截的圖形的種類、大小進行設(shè)定,對一個工況進行截圖,錄制其截圖過程,生成py腳本文件,其他工況僅要簡單修改腳本文件,重新載入ABAQUS即可實現(xiàn).為防止將上一次截的圖片覆蓋,也為方便后期使用Word VBA將圖片批量導入Word中,需要對圖片進行重命名.所謂批量操作就是自動修改腳本文件,自動載入腳本文件到ABAQUS中,實現(xiàn)截圖功能,同時對所截圖片進行重命名,并判定何時運算結(jié)束,盡可能減少截圖人員對于數(shù)據(jù)的輸入,提高通用性和自動化水平.具體實現(xiàn)過程見圖1.
圖1 批量截圖流程
2.2ABAQUS腳本文件的生成及運行
ABAQUS中生成腳本文件的方式多樣,最直接的方法就是直接編制Python腳本文件,但通常人工編制的方式較為復雜,需要對Python語言與ABAQUS對象模型有深入的理解,編寫起來費時費力.更為常用的方式是使用ABAQUS自帶的錄制功能,在CAE中的每一個操作命令都可以被記錄下來,自動形成腳本文件,具體的錄制方式也可以分為以下幾種:
1)采用ABAQUS的宏錄制功能.在File菜單下的Macro Manager選項中,創(chuàng)建一個新的宏,開始錄制,將所有操作進行完畢之后,結(jié)束錄制,即可在工作目錄中找到錄制的py腳本文件,可以用文本編輯工具打開并對其進行修改.
2)修改rpy文件形成腳本文件.CAE中的每一步操作過程都會被自動地記錄到rpy文件中去,只需要略加修改其中對我們有用的內(nèi)容,然后修改擴展名即可以方便地生成腳本文件.
3)修改jnl文件形成腳本文件.jnl文件中包含模型數(shù)據(jù)庫的CAE命令,如果損失該文件,對模型進行的修改將不能夠得到恢復,因此jnl文件中的命令也可以經(jīng)過修改以形成我們需要的腳本文件.
ABAQUS中腳本文件的接口較多,運行腳本文件既可以在打開軟件時點擊Run Script命令,或是在命令行窗口中使用execfile命令,也可以在command窗口中使用abaqus cae script=*.py命令運行.本文采用修改rpy文件的方式生成腳本文件,并在Fortran程序中調(diào)用command命令的方式實現(xiàn).
2.3Fortran程序編制
程序主要實現(xiàn)兩大功能即自動更新腳本文件和自動調(diào)用ABAQUS軟件(Fortran程序與ABAQUS接口模塊).
2.3.1更新py文件模塊
自動更新腳本文件是程序的主要功能之一.腳本文件記錄了一個工況的截圖過程,截取下一個工況圖片時需要替換相關(guān)的結(jié)果文件名稱和所截圖片名稱.手動更新速度慢且截圖過程不連續(xù),程序自動更新使得過程連續(xù)化,真正實現(xiàn)了批量處理.采用逐行讀取,定位需要更新行,將更新內(nèi)容寫入以替換的方式實現(xiàn)腳本文件更新.程序不需要手動輸入更新內(nèi)容,也無須事先知道odb結(jié)果文件的個數(shù)和名稱,采用調(diào)用批處理文件的形式實現(xiàn),dir命令自動列出結(jié)果文件名稱,以供主程序讀?。?/p>
2.3.2與ABAQUS軟件接口模塊
所謂接口模塊就是Fortran程序與ABAQUS軟件之間的數(shù)據(jù)交流.截圖程序用到的數(shù)據(jù)交流文件有兩種.一種是將Fortran程序運行后更新得到的腳本文件載入ABAQUS,二是將ABAQUS運行后產(chǎn)生的圖片文件讀入Fortran程序以供重新命名.其中一個重要的問題就是如何在Fortran程序中調(diào)用ABAQUS軟件.Visual Fortran5.0編譯器中采用調(diào)用系統(tǒng)函數(shù)的方式實現(xiàn).在使用系統(tǒng)函數(shù)前需要先使用use dflib命令載入此函數(shù)所在模塊,然后使用systemqq函數(shù)即可成功在自編程序中調(diào)用ABAQUS軟件.
3工程案例分析
3.1工程概況
西南某水電站是一座以發(fā)電為開發(fā)目的的超大型引水式地下電站,是西電東送的骨干電站之一.電站最大水頭318.8 m,額定水頭288 m,共安裝八臺混流式水輪發(fā)電機組,單機容量600 MW,總裝機容量4 800 MW.該工程的主要技術(shù)難點在于橫穿山脈的幾條長隧洞,隧洞沿線地質(zhì)條件復雜,碳酸鹽巖地層分布廣泛,地下水活躍.深埋長隧洞將不可避免地遇到高地應力和高外水壓力等工程問題.引水隧洞全線埋深較大,一般埋深為1 500~2 000 m,最大埋深約達2 525 m.引水隧洞處于高地應力、高地下水和高地溫狀態(tài).洞軸線長約16.6 km,沿線地質(zhì)條件變化復雜,選取多個典型計算斷面進行計算,每個斷面建模時,沿軸線方向取3 m厚,襯砌設(shè)置排水孔以降低外水壓力,并在模型中加入了錨桿和鋼筋,計算模型圖詳見圖2及圖3.
圖2 典型斷面計算模型
圖3 計算斷面細部構(gòu)造
該引水隧洞工程前期計算時沿線共選取了16個計算斷面,斷面樁號從K1+613到K16+175不等,考慮了6種計算工況分別是1)運行期+汛期雨季;2)引水隧洞初期充水(暫不考慮外水壓力);3)運行期+汛期暴雨;4)檢修放空+汛期雨季;5)檢修放空+多年平均;6)3號洞施工期充水前+汛期暴雨.每個斷面共有4條引水隧洞,2條輔助洞和1條排水洞,總計7條長隧洞.初步計劃按照隧洞編號來截圖,隧洞編號從左到右依次為1到7,每條隧洞計劃截取圍巖豎向位移、圍巖小主應力、圍巖大主應力、圍巖塑性區(qū)、襯砌小主應力、襯砌大主應力、鋼筋小主應力、鋼筋大主應力及錨桿應力計9張圖,分別編號1到9.前期計算得到的odb文件都已按照工況號_斷面號的形式命名.可以計算共需要截16×6×7×9=6048張圖,可以想象這是一個龐大的工作量,手工截圖不僅速度慢,而且易于出錯.本文采用所研制的批量截圖程序進行處理,提高了截圖的效率和準確性.
3.2批量截圖技術(shù)工程應用
3.2.1截圖過程
選擇16個斷面6個工況中的其中的一個斷面的一個工況的計算結(jié)果進行腳本文件的錄制,以1-1.odb為例(即工況1斷面1的計算結(jié)果),打開CAE載入1-1.odb,按照截圖要求設(shè)定截圖的樣式、類型和大小,依次截取7條隧洞的各項云圖,以記錄截取的過程,圖片命名規(guī)則為工況號_斷面號_圖片編號.關(guān)閉軟件后,將生成的abaqus.rpy文件改名為print.py,打開該文件,對其中操作過程中無用的信息進行刪除和更改,精簡腳本文件可以提高軟件運行速度.將需要用到的odb文件、py文件及編制程序生成的exe文件放在一個文件夾下,雙擊exe文件,即可在該目錄下迅速產(chǎn)生各工況的圖形文件.
3.2.2結(jié)果分析
程序截圖效率高,且圖片樣式大小一致,整齊劃一.本文選取了斷面1的工況1和工況3兩種不同工況下的計算結(jié)果截圖進行對比,結(jié)果如圖4所示.首先,從外觀上可以看出,不同工況下斷面1的襯砌受力圖、鋼筋受力圖及圍巖受力圖和塑性開展圖等,大都對稱美觀,形狀、樣式及圖例等規(guī)律一致,程序運行傻瓜式操作,不需要進行額外的控制,簡單、方便、準確度高.
圖4 程序截圖結(jié)果
工況1是運行期+汛期雨季,工況3是運行期+汛期暴雨.兩種工況都是運行期工況,兩者的差別在于考慮的外水頭不同,也就是汛期暴雨工況下襯砌承受的外水壓力大于汛期雨季工況下襯砌的外水壓力.從圖4中可以看出,工況1和工況3的計算結(jié)果分布規(guī)律一致.工況1情況下,圍巖的豎向沉降量最大值為9.7cm左右,發(fā)生在拱底部位;最大壓力為73.2 MPa,在左拱腳及右拱肩附近有應力集中現(xiàn)象;襯砌最大拉應力為1.1 MPa,發(fā)生在拱腳部位;鋼筋最大拉應力為95.8 MPa左右.工況3情況下,圍巖的豎向沉降量最大值為9.8 cm左右,發(fā)生在拱底部位;最大壓力為73.3 MPa,在左拱腳及右拱肩附近有應力集中現(xiàn)象;襯砌最大拉應力為1.3 MPa,發(fā)生在拱腳部位;鋼筋最大壓應力為114 MPa左右.工況3的計算結(jié)果與工況1在規(guī)律上是一致的,但在數(shù)值有差別.主要表現(xiàn)在圍巖的位移及應力和塑性區(qū)開展深度等在工況3時比工況1略有增加,但幅度不大.而襯砌應力及鋼筋應力值等在工況3時比工況1時增加較為明顯,這也充分說明了外水壓力的作用,外水壓力增加對于圍巖穩(wěn)定的影響是很小的,但外水壓力增大對于襯砌結(jié)構(gòu)影響則較為明顯.所以,外水壓力是襯砌結(jié)構(gòu)承受的重要荷載.這與實際規(guī)律是一致的,由此也進一步驗證了截圖程序的可靠性.
4結(jié)論
語言在大型有限元軟件ABAQUS后處理中的應用,并基于此編寫了批處理Fortran程序,將ABAQUS作為一個計算模塊嵌入所編寫的程序之中,成功實現(xiàn)了截圖工作的批量化處理,提高了工作效率.
2)將該批量截圖技術(shù)應用于西南某引水隧洞工程的后處理過程中,批量處理自動化程序快速實現(xiàn)了以往人工截圖數(shù)天的工作量,截圖工作不僅效率高,而且圖片大小一致,美觀大方.實際工程應用表明,批量截圖技術(shù)具有快速高效、通用可靠等優(yōu)點.
3)現(xiàn)有程序僅對截圖的批量處理有效、把建模、提交有限元計算及后處理統(tǒng)一起來,并自動生成項目報告,提高工作效率,是下一步的研究工作.
參考文獻:
[1]司海寶,蔡正銀.基于ABAQUS建立土體本構(gòu)模型庫的研究[J].巖土力學,2011(2):599-603.
[2]鐘同圣,衛(wèi)豐,王鷙,等.Python語言和ABAQUS前處理二次開發(fā)[J].鄭州大學學報:理學版,2006(1):60-64.
[3]李慧,孫銀茹.基于PYTHON的ABAQUS后處理開發(fā)[J].中小企業(yè)管理與科技(上旬刊),2010(6):268-269.
[4]張強,馬永,李四超.基于Python的ABAQUS二次開發(fā)方法與應用[J].艦船電子工程,2011(2):131-134.
[5]徐遠杰,王觀琪,李健,等.在ABAQUS中開發(fā)實現(xiàn)Duncan-Chang本構(gòu)模型[J].巖土力學,2004(7):1032-1036.
[6]楊曼娟.ABAQUS用戶材料子程序開發(fā)及應用[D].武漢:華中科技大學,2005.
[7]陳衛(wèi)忠,伍國軍,賈善坡.ABAQUS在隧道及地下工程中的應用[M].北京:中國水利水電出版社,2003.
[責任編輯王康平]
Technology of Saving ABAQUS Pictures in Batch and
Its Application to Long Deep Tunnel
Zhang DaofaZhang Jixun
(College of Water Conservancy & Hydropower Engineering, Hohai Univ., Nanjing 210098, China)
AbstractThe long deep tunnel has lots of calculation cases and typical sections because of its internal complexity and particularity. The work of saving pictures after calculating with the finite element method is too heavy. While the technology of saving pictures in batch saves time and energy. Based on the practical way, the technology was realized in the platform of ABAQUS. The relative Fortran program was made and applied to a project in Southwest China. The results show that this technology is general, reliable, accurate and fast, which improves the efficiency significantly.
Keywordslong deep tunnel;ABAQUS;saving pictures in batch;Fortran program; script file
基金項目:國家自然科學基金面上項目(編號51478166);教育部留學回國人員科研啟動基金資助項目;中央高?;究蒲袠I(yè)務費專項資金資助(編號2015B06014)
收稿日期:2015-09-03
中圖分類號:TV35
文獻標識碼:A
文章編號:1672-948X(2015)06-0056-04
DOI:10.13393/j.cnki.issn.1672-948X.2015.06.012
通信作者:張道法(1990-),男,碩士,研究方向為水工結(jié)構(gòu).E-mail:1157738225@qq.com