劉 飛,汪劍輝,周松柏,夏 明,任新見,2
(1.軍事科學院國防工程研究院,洛陽 471023;2.河南省特種防護材料重點試驗室,洛陽 471023)
數值計算的基本思想是將復雜的研究對象分解為若干個子對象,將基本物理定律應用到子對象獲得物理現象細節,進而匯總得到總體參數;數值計算軟件融計算機技術、軟件工具、算法為一體,是將計算力學的理論成果、算法轉換為解決工程實際問題的主要工具[1,2]。
爆炸與沖擊毀傷效應的數值計算是武器效應與毀傷評估研究一種不可或缺的手段。數值計算在毀傷效應研究中發揮的作用無疑會影響到毀傷評估結果的準確性、可靠度,直接影響到毀傷評估工作的實際開展。
國外武器效應分析與毀傷評估商業軟件求解功能強、操作方便、界面友好,目前已在國內形成市場壟斷,擁有絕對優勢[3,4]。引進國外軟件,雖可滿足一時之需,但從長遠來看,我們需要具有自主知識產權、性能優越、操作方便的毀傷效應分析軟件系統。本文重點分析數值計算在武器效應與毀傷評估研究中的重要意義與作用,簡介國外武器效應數值計算軟件的基本特點與國內效應計算軟件的發展現狀,提出武器效應與毀傷評估數值計算軟件亟待解決的技術難題和破解困局的對策與建議。
毀傷評估以武器毀傷效應的準確計算為前提,而數值計算是效應計算不可或缺的手段,其結果是對武器毀傷效應試驗結果與理論分析結論必要和有益的補充與完善。數值計算作為毀傷效應與毀傷評估研究的核心技術,其主要目的與作用集中體現為:
(1)為武器毀傷效應與毀傷評估研究的試驗設計、方案優化提供技術指南。
試驗研究花費大量人力、物力、財力,且周期長;如果毀傷效應與毀傷評估的規律全部通過試驗來摸索,成本難于接受??尚械耐緩绞窍绕谶M行所研究問題試驗對應工況的數值計算,鎖定試驗結果可能的范圍,從而大幅降低試驗規模、減少試驗次數,節約經費、縮短周期,收到“事半功倍”的效果[5]。
(2)在毀傷效應試驗的基礎上合理拓展試驗結果,并深入挖掘試驗的“局部”信息。
由于試驗條件、試驗工況、測試傳感器布置的限制,試驗結論有效性涵蓋的范圍有限,即使在其有效范圍內,試驗數據點也是不連續的。單純通過試驗無法獲得所研究工況的“全場”信息。在通過試驗標定計算方法、材料參數的基礎上,采用數值計算,可以得到試驗工況以外的結果,從而在一定程度上彌補單純試驗數據的不足[6]。
進行武器效應規律與毀傷評估研究,“大數據”是必要條件;只有建立在充分多的數據信息基礎上,總結得到的規律才有較好的普適性和魯棒性。
借助計算機技術,數值計算結果可以采用圖片、表格、曲線等多種形式顯示。試驗的結果多是不連續的,而數值計算可以得到不同時間點、不同空間位置的結果,即能得到時間、空間上均連續的幾乎全部信息,這對毀傷效應的機理分析必不可少[7]。
(3)待研究問題缺乏有效的理論分析與試驗研究手段時,采用數值計算可以作為一種有效的補充。
數值計算作為與理論解析、試驗研究并列的三種毀傷效應研究手段之一,在其他兩種手段缺乏實際可操作性時,數值計算呈現出明顯的獨特優勢。受材料非線性及邊界條件等諸多因素的限制,能夠理論解析的毀傷效應及其評估問題非常有限;以試驗為基礎總結出的工程算法是一種有效的彌補手段,但每一種工程算法都有嚴格的隨試驗參數取值而變化的適用范圍,換言之,工程算法只適用于典型工況,不具有普適性。
沖擊波傳播和侵徹是兩種最主要的武器毀傷效應。以沖擊波效應研究為例,沖擊波的傳播規律沒有理論解析式,通用的做法是通過大量試驗以量綱分析為基礎擬合出經驗公式,但經驗公式都有其適用范圍,某一特定空間中的沖擊波衰減規律不適用于其它形狀不規則空間[8,9]。
因防護工程材料多為土、巖石或混凝土等,現有侵徹公式多面向這三種材料,表達形式、適用范圍、精度因工況而異,雖多達40多種,仍不能解決諸如斜侵徹、多層間隔靶侵徹、分層介質侵徹等復雜工況的侵徹問題[10]。實際工程防護結構的動力響應計算也存在類似問題,這種情況下,數值計算的作用愈發重要。
數值計算的上述目的與作用奠定了它在效應分析與毀傷評估研究工作中不可或缺的地位。
全球工業設計仿真軟件現階段主要由美、德、法三個國家把控,主流CAE軟件基本被美國的ANSYS、德國的SIMENS、法國的DS Simula和美國的Altair、MSC壟斷[11];而爆炸與沖擊毀傷效應的數值計算軟件,更是受到國外國防軍工部門的普遍重視,這方面美國一直處于世界的領先地位。主流的效應計算軟件目前主要有LS-DYNA、AutoDyn、Abaqus三種[12],這三種軟件各有所長,如LS-DYNA的拉格朗日算法較強,接觸類型豐富,可以方便地進行侵徹計算;AutoDyn的歐拉算法較強,更適合爆炸問題的求解;Abaqus的水下爆炸計算相對較強[13-15]。
我國的數值計算起步始于上世紀六十年代末。原總參工程兵科研三所跟蹤、引進、消化了國外ADINA等大型有限元軟件,提煉軟件編程理論和編程技術,同時參與北京大學NOLM程序開發,積累編程經驗。在此基礎上,1979年周早生根據工程施工中存在的實際問題,研發了我軍第一套能夠模擬地下工程開挖的大型數值模擬軟件RSNOP,具有自主產權,在模擬初始地應力場、坑道斷面的分步開挖與支護等方面達到國際先進水平,但RSNOP程序只能模擬二維問題,且采用6912機器語言,使用不便。周早生后將RSNOP程序采用FORTRAN語言改寫并移植到大型計算機上,程序更名為RSEAP,在地下工程洞室開挖、支護及穩定性分析上得到較廣泛應用[16]。
上世紀九十年代以前,原總參工程兵科研三所在核武器效應及其防護技術數值計算方面做了大量工作。楊秀敏等研編了二維流體彈塑性動力程序RRPM,在觸地爆炸、淺埋爆炸的計算中發揮了重要作用[17];在核爆炸沖擊波效應方面,進行了核武器空中爆炸、近地爆炸和觸地爆炸的空氣沖擊波傳播規律研究,如采用一維Lagrange方法研究了爆炸近區的真實氣體效應,采用二維Euler方法對馬赫波的生成及發展、激波的反射與繞射進行了研究[18]。
隨著計算機技術的發展,計算速度及數據存儲容量已基本滿足求解二維、三維Euler方程及N-S方程的需求。原總參工程兵科研三所劉瑞朝、周松柏編寫的BLAST3D程序,可較好計算空氣沖擊波的傳播;該程序計算基于考慮炸藥爆轟的Euler控制方程進行,反應模型采用“點火-生長”反應模型,控制方程采用JWL狀態方程封閉,計算方法為基于混合網格的有限體積法,空間離散采用AUSM+-up格式,時間離散采用二階龍格庫塔法[19]。北京理工大學寧建國、王成編制的EXPLOSION-3D程序,可較好模擬凝聚相、氣相爆轟的過程并計算爆炸效應參數的時空分布[20];中國空氣動力研究與發展中心倪鴻禮編寫的Cardc_cai程序,在設定效應參數初始值的條件下可以計算效應場的分布[21]。
從總體看,我國雖然也做了不少工作,取得了一些成果,編制了部分程序,但編程工作停留在程序方面,尚不能稱之為成熟的軟件,用戶界面相對簡單,魯棒性較差,操作不夠方便,編程人員自己使用尚可,第三方使用則往往面臨各方面的問題;其次,程序的功能相對單一,如純粹用來計算沖擊波或侵徹,部分功能欠缺。目前我國數值計算仍處于受制于人的尷尬地位,發展相對滯后,具體表現為:
(1)基礎數據受限。
國外商業軟件盡管功能很多,使用方便,但求解精度需要配套的材料模型庫數據作支撐,而這方面一般不予提供(禁售);軟件自帶的材料模型,僅有粗略說明,這樣就難于根據我們自己的試驗資料,建立擁有自主知識產權的材料參數庫?;A數據缺失最終導致了軟件應用受限,數值計算結果失真[21]。
(2)求解規模受限。
除了平面應力和平面應變問題,數值計算的工況不能簡化為二維問題,必須三維建模;同時為了保證計算精度,模型網格制作時單元尺寸均較小。這樣導致模型的網格規模動輒上百萬乃至千萬,而商業軟件的求解規模一般被限制在百萬量級。
(3)計算能力受限。
武器效應的計算隸屬軍工領域,國外給我們提供的商業軟件在性能上被人為限制,部分關鍵功能被有意屏蔽或剔除,與原版相比,軟件功能縮水明顯。
(4)二次開發受限。
商業軟件提供的是封裝后的執行模塊,類似于“黑匣子”;雖然部分軟件提供二次開發功能,但由于用戶無法全面掌握軟件的理論架構與編程思路,實際使用過程中再次開發困難重重,所升級的功能也極其有限。
上述困難的直接后果是我們雖然有商業軟件使用,可以一定程度上解決急需,但僅停留在“堪用”這個狀態,其嚴重后果為:
一方面,隨著主流商業軟件的大規模使用,我國大部分數值計算的從業人員逐漸喪失了追本溯源、自己編程,從“根”上去解決毀傷效應數值計算的能力,而是停留在“應用商業軟件、輔以理論分析”層面,知其然不知其所以然,這樣,久而久之,我國具備自主開發能力的數值計算人員數量銳減,部分具有專業特色的自主研發程序將失去非常有限的市場,生存與發展空間進一步濃縮。
另一方面,在我軍重點關注的毀傷效應與毀傷評估領域,應用商業軟件進行數值計算,求解精度難于保證,計算規模不足,二次開發甚為困難,數值計算的可靠性、有效性大幅降低,以至于產生“商業軟件雖好用,計算結果不敢用”等惡劣后果,直接導致我軍現階段毀傷評估工作基本完全依賴于試驗,無法大規模有效開展。
綜上所述,破解數值計算“受制于人”的瓶頸迫在眉睫。
數值計算研究是一個十分復雜的問題,其研究面寬,涉及學科多,對理論基礎、數值分析技術及計算機軟硬件平臺都有很高的要求。
國外武器效應數值計算軟件基本特點主要有:
1)歷史悠久、研發周期長,操作方便,計算精度、結果的可靠性較高。
2)前、后處理軟件豐富。數值計算的基本流程為“前期建模-求解-結果后處理”,核心部分是求解。對成熟的商業軟件,建模與后處理部分在各軟件間是基本通用的,亦即可采用多種外圍軟件完成(如建??膳cCAD軟件無縫集成)。
3)計算并行化。武器效應的計算一般是流固耦合的三維問題,對硬件配置要求高,同時為了確保計算精度,網格規模龐大。一百萬以下網格,可采用單機計算;超過一百萬時,單機計算極其困難甚至無法進行,須采用分布式計算系統。主流軟件均已推出適合多CPU共同計算的并行版本,計算效率得到極大提升。
數值計算包括硬件平臺和軟件兩部分,我國對于硬件平臺重視較多,目前已經研制出計算性能處于世界前列的超級計算機,但高性能的數值計算軟件尚缺少。武器效應與毀傷評估數值計算軟件需要攻克的技術難點主要集中在材料本構模型(確保計算的精度)、高效并行計算技術(保證計算的速度)兩方面,而這兩方面問題的解決,都以擁有自主可控的軟件平臺為前提。
自主軟件開發可以借鑒國外商業軟件的部分經驗。雖不能完全了解其內部技術核心,但可以準確判斷出整體技術路線、編程手段與功能設置,這就為軟件的自主開發提供了對照,從而盡可能科學地進行頂層規劃與設計,少走彎路。
武器毀傷效應與毀傷評估數值計算軟件的實質是一個能夠求解偏微分方程組特別是雙曲型偏微分方程組的軟件包。從功能的角度,它可分為以下部分:
1)基本數值算法:包括矩陣運算和特征值求解(典型實現如LAPACK、ARPACK、BLAS等)、數值積分等。
2)數據交互接口:包括并行計算接口(使用MPI等)、大規模數值計算數據存儲(使用HDF5格式等)、數據可視化(調用VTK接口等)。
3)基本專業算法:包括自適應網格劃分等。
4)特定專業算法:包括各種材料參數模型以及針對特定模型或特定問題的求解算法等。
其中第4類專業算法是關注的重點,通常需要根據待解決的問題,查閱文獻并形成求解算法,然后自主編程實現。因此,需要盡可能減小實現其他3類算法所需的工作量。
從實現途徑上看,可分為以下四種:
1)改寫文獻中的軟件(如OIL)。該方法優點是可以與文獻的計算進行對比,某種程度上可以“依葫蘆畫瓢”;缺點是目前可用的程序代碼均較舊,如OIL是1964—1969年間的三種版本代碼,使用Fortran IV語言,代碼注釋和說明文字較少;代碼印刷模糊或缺少字母;數據輸入采用讀數據卡的方式。總的來說,需要靠經驗和猜測對代碼進行一些修改才能進行正確編譯。
2)完全自行編寫代碼:優點是自己寫的程序易于理解;缺點是可利用資源少,工作量太大,難以在可以接受的期限內完成。
3)基于商業軟件進行二次開發:熟悉商業軟件的前提下,只需進一步掌握二次開發接口即可,工作量相對較小;可實現的功能受商業軟件二次開發接口開放程度的限制,也受限于軟件的license。
4)基于開源數值計算包進行開發:優點是可供選擇的開源數值計算包較多,所提供的功能較豐富,可節省相當的時間和精力,所需時間不會太長;缺點是需掌握Unix/Linux下的數值計算軟件開發工具,熟悉并進一步開發開源數值計算包。
表1針對上述四種可能的數值計算軟件實現方法,對比了它們的復用程度、優缺點及實現難度。

表 1 各種實現方法的復用程度及實現難度的比較Table 1 Comparison of reuse degree and implementation difficulty of various implementation methods
功能完善的數值計算軟件包含數十萬行甚至數百萬行代碼,工作量巨大。如果要在可以接受的期限內編制實現具有一定功能的數值計算軟件,其關鍵是要考慮如何繼承已有成果。綜合衡量數值計算軟件的開發難度和開發后可實現的功能,采用第4種方法基于開源軟件包編寫數值計算軟件是一種切實可行的手段(建模和網格劃分采用Truegrid、Hypermesh、Gridgen等商業軟件,計算結果后處理采用Tecplot、Origin、MATLAB等專業的數據分析軟件,主要精力集中于求解器研發)。
目前大多數開源數值計算包均運行于Unix/Linux平臺,構建開源數值計算軟件開發環境需要一定的Unix/Linux知識。對于所選擇的開源數值包而言,為便于進一步開發,須具有以下特點:較為豐富的文檔資料;較高的聲譽和知名度;以C/C++語言為主要編程語言;支持64位并行計算、自適應網格劃分以及較完善的前后處理等功能。
數值計算包方面,綜合考慮多種因素,我們認為可選擇deal.II和OpenFOAM,其中deal.II采用有限元方法,擅長解決固體力學問題;OpenFOAM以有限體積法為主,擅長解決流體力學問題。圖1給出了基于開源數值計算包編制數值計算軟件的主要步驟:構建開源數值計算軟件開發環境→學習、掌握開源數值計算包→基于開源數值計算包,開發增加所需要的功能。

圖 1 基于開源軟件包編寫數值計算軟件的主要步驟Fig. 1 Main steps of compiling numerical calculation software based on open source software package
數值計算是武器效應與毀傷評估研究的核心技術,數值計算軟件的自主研發是武器毀傷效應與毀傷評估專業發展長期戰略任務。
本文總結了國外武器效應數值計算軟件的基本特點與國內效應計算軟件的發展現狀,探討了目前我國在該方向研究中亟需解決的關鍵問題與解決的技術途徑,分析指出:
(1)數值計算在效應研究與毀傷評估中的作用集中體現在指導試驗設計、優化方案,拓展試驗結果及作為理論與試驗研究的補充手段等方面。
(2)我國效應研究與毀傷評估領域數值計算滯后的領域集中在基礎數據、求解規模、計算能力、二次開發等方面。
(3)基于開源數值計算軟件包進行二次開發是縮小與國外商業軟件差距的有效途徑。