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