劉金實
(江蘇科技大學 船舶與海洋工程學院,江蘇 鎮江212003)
邊界元法是水下結構振動聲輻射預報的重要方法,與完全匹配層、無限單元法[1-3]相比,它具有直接求解開放聲場、不需要在結構外部添加額外網格的優勢,然而由于其系統矩陣為密集矩陣,隨著問題規模的增加,其計算耗時和內存占用都迅速增長,因此如何降低邊界元法的計算復雜度成了過去20年中學者研究的焦點,成果主要可分為兩大類:以提高矩陣-向量乘積運算速度為目標的算法和矩陣壓縮算法。前者以快速多極子邊界元法[4]為代表,后者更接近于純代數方法,以層級矩陣技術和自適應交叉近似算法為代表。由于快速多極子算法的程序實現受單元階次的影響較大,多極子樹的構建依賴于模型的幾何特征,在工程應用中難以推廣。
層級矩陣的核心思想是對密集矩陣進行層層分割,將子塊的位置、大小等信息按樹狀的數據結構加以保存,對于其中秩較低的子塊進行奇異值分解(SVD),保留其余分塊的密集格式。在之后的數年中,該方法被應用于聲場、電磁場問題的計算中。在層級矩陣的基礎上,Bebendorf[5]于2004年提出了自適應交叉近似(ACA)算法,該算法主要從2個方面完善并改進了層級矩陣法,首先是利用交叉近似方法對矩陣中的低秩子塊進行逼近,替代了SVD算法,從而降低了對矩陣進行壓縮的計算復雜度,其次是通過考察積分核的退化特性使算法具備了自適應的能力。Grasedyck[6]在交叉逼近的過程中引入了參考行和參考列以改進ACA 算法的逼近策略,避免了原有算法在少數情況下崩潰的風險,也使得ACA 算法的收斂速度有了輕微提高,同時首次將ACA 算法應用于邊界元的快速計算,形成了ACA-BEM 方法。鄭昌軍等[7]將ACA-BEM 應用于聲靈敏度的計算中,實現了聲場問題最優化的快速計算。
假設一個秩為k的矩陣M∈Cm×n,M的R(k)矩陣低秩近似可用因式分解的形式表示為:

其中U∈Cm×k;V∈Cn×k。式(1)也可更方便地表示為:

經過式(1)的分解,存儲M 所需的內存空間由O(m × n)變為O(k × (m + n)),設有任意向量t∈Cn×1,則利用式(2)計算M × t,所需的浮點數乘法操作次數也由O(m × n)變為O(k × (m + n))。如圖1所示,當M的秩遠小于其維數時,利用式(1)可以顯著降低其存儲空間,并提高M × t的運算效率。

圖1 矩陣分解示意圖Fig.1 Diagrammatic sketch of matrix decomposition
然而在實際應用中,精確求出M的秩需要較大的計算量,會使得近似失去意義,為此須引入ε-秩及最佳近似概念:

其中M的最佳近似矩陣N∈Cm×n;rank(N)=k;‖…‖代表矩陣的范數。
現有非零矩陣M∈Cm×n,且其所有元素的值均為已知。全選主元交叉近似算法首先利用以下步驟找出矩陣M的秩為1的近似矩陣M1:
1)確定M 中模值最大的元素所在行、列,記為i1和j1,并設δ=Miljl;
2)取出矩陣M 中第i1行和第j1列的向量,存儲矩陣U*的第一列u1=M,j1,矩陣V*的第一行v1=Mi1,/δ。
則矩陣M1=U*V*。設整數p:1 ≤p ≤k,設第p步逼近完成后的余項為Rp,則將Rp作為第p+1步逼近的目標,從而形成如式(4)所示的關系。

在每一步逼近結束時,都可利用式(5)考察誤差閾值是否已得到滿足。

準備階段:輸入矩陣M∈Cm×n,記‖M‖2= τ,設定收斂誤差閾值ε,定義近似矩陣的Frobenius 范數為F0,隨機生成整數il,滿足1≤il≤m,設已使用的行坐標集合D={i1};
1)設定迭代計數p = 1,計算矩陣M的第i1行向量Mi1,*,確定Mi1,*中模值最大的列坐標j1,即j1=argmax(Mi1,*),以及該元素的值δ=Mi1,j1;
2)計算出M的第j1列,記為M*,j1,根據式(6)得到逼近向量u1和v1:

3)利用式(7)更新逼近矩陣的Frobenius 范數:

4)利用式(8)判別逼近是否已經滿足誤差閾值的要求,若滿足則跳轉至步驟8),否則繼續執行步驟5)。

5)D=D ∪{ip},根據列向量up從{1,…,m}/D 中選取行坐標ip+1,即ip+1=argmax(up),計算Mip+1,*,利用式(9)計算余項矩陣第ip+1行作為逼近向量vp+1。

6)令jp+1=argmax(vi+1),根據式(10)計算R*,jp+1,取出交叉點的余項值δ=Rip+1,jp+1,若δ 則終止循環,跳轉至8),否則利用式(11)計算逼近向量up+1。

7)利用式(12)更新逼近矩陣的Frobenius 范數并跳轉至步驟4)。

8)利用式(13)給出矩陣U*∈Cm×p和V*∈Cp×n,算法終止。


圖2 交叉近似示意圖Fig.2 Diagrammatic sketch of cross approximation
由于邊界元矩陣中的行、列坐標都對應了網格中的各個節點,而矩陣的子塊則代表著2個節點子集之間的相互作用,因此要將ACA 算法應用于對邊界元矩陣的壓縮,首先應根據幾何相容性條件對求解域進行分割,得到若干節點集,通過將節點集之間的相互作用映射為邊界元矩陣中的分塊,利用幾何相容性條件即可對子塊的低秩特性進行預判。
文獻[8-9]中較為常用的笛卡爾坐標系分割法,其思路較為簡單,即首先找到包圍求解域的最小長方體,長方體的各個面均與笛卡爾坐標系的坐標軸垂直,然后沿著3個坐標軸對長方體進行多級等分,直到所得到的子區域足夠小或者滿足幾何相容條件。當求解域為二維空間中的一個圓時,分割結果如圖3所示。

圖3 圓形求解域分割示意圖Fig.3 Schematic diagram of splitting circular solving domain
根據積分核退化理論[5],設幾何相容參數η=,則由圖3 可看出,當包圍求解域的長方體接近于正方體時,利用笛卡爾坐標系分割法得到的子塊之間幾乎都滿足幾何相容條件。然而當求解域為一個長寬比為4的長方形時,笛卡爾坐標系分割結果如圖4(a)所示,其中a與c、b與d 之間均不滿足幾何相容條件,但如果只沿長方形的長邊進行分割,如圖4(b)所示,則任意2個不同子塊之間都滿足幾何相容條件。由此可見,對求解域的分割方式影響著ACA 算法的壓縮效果,進而可能影響到ACA 邊界元法整體的計算效率。
實際分析中考察的模型既可能是如圖3和圖4 一樣的形狀規則,更多情況下也可能是各種不規則的形狀,因此必須通過找到一種適應不同形狀的求解域分割算法來提高子塊間滿足幾何相容條件的概率。主 成 分 分 析[10](Principle Component Analysis,PCA)又被稱為主分量分析。利用主成分分析對數據進行處理,可以從影響問題的多個變量中選出影響較大的少數變量,這種思想在圖像分析甚至經濟學等領域有著廣泛的應用。為了說明PCA 在分割邊界元求解域中的應用,首先考慮一個二維空間中點集z,包含的節點數為n,節點分布如圖5所示,其中節點i∈[1,n]的坐標記為zi,z的幾何中心坐標為Cz,則z的主方向w的定義由下式給出:

圖4 橫向分割示意圖和笛卡爾坐標系分割示意圖Fig.4 Subdivision of horizontal splitting and subdivision of cartesian splitting

其中v為任意單位向量。在實際計算中可通過計算ZTZ最大特征值所對應的特征向量得到主方向向量w,即:


圖5 笛卡爾坐標系分割和主成分分析法分割Fig.5 Subdivision of cartesian splitting and subdivision of PCA splitting
將w 作為坐標軸,得到z 中各點的坐標,在坐標值的最大、最小值的中心處取與w 垂直的分割面d,將z 分割為兩部分,如圖5(b)所示。
在對網格進行逐級分割的過程中,需要重復計算ZTZ 及其特征值、特征向量,相對于傳統方法引入了額外的計算量,但由于在同一模型的各個分析工況間并不需要重復運算,因此不會對邊界元分析的整體計算復雜度造成影響。
為了驗證ACA 邊界元法的有效性,分析算法各參數設置對計算精度與效率的影響以及迭代求解器的收斂性能,本節采用圓柱殼作為驗證模型,其中球殼半徑為1 m,圓柱殼長為2 m,半徑0.3 m,模型外部介質聲速為1 500 m/s,密度為1 000 kg/m3。模型的形心坐標為(0,0,0),且圓柱殼的軸向與z軸平行。統一設定求解域分割的最小子塊含節點數不低于100,誤差參數ε=10-6。
利用映射網格劃分方法,將模型劃分為746 節點、744個四邊形單元的網格,設定所有節點沿外法線方向的振速為1,在(10,0,0)出設置一個聲壓觀測點。分別利用傳統邊界元法和ACA 邊界元法計算聲壓觀測點處的輻射聲壓級,結果的誤差曲線如圖6所示。

圖6 圓柱殼模型輻射聲壓級對比圖Fig.6 Comparison of radiate sound pressure level for cylindrical shell
由圖6 可看出,當誤差控制參數設定為ε=10-6時,ACA-BEM與傳統邊界元法的預報結果具有很好的一致性。
除了2.1 節中的圓柱殼模型,本節還考慮一個半徑為1 m、厚度為0.003 m的水下球殼模型,將2個模型分別劃分8 組不同密度的網格,如表1所示。令模型表面所有節點的振速為1 m/s,求解器內存占用和計算耗時曲線如圖7和圖8所示。

表1 網格規模表Tab.1 Table of mesh sizes

圖7 內存占用量對比圖Fig.7 Comparison of BEM matrices memory cost

圖8 求解耗時對比圖Fig.8 Comparison of solving time cost
由圖7和圖8 可看出,由于采用了迭代求解器,ACA 邊界元法的求解器只需要額外存儲預條件矩陣的稀疏LU 分解因子,而對密集矩陣的LU 分解,分解因子和原矩陣本身的規?;疽恢拢虼嗽谇蠼馄鞯膬却嬲加昧可?,ACA 邊界元法具有較大的優勢;從增長趨勢來看,ACA 邊界元法的求解運算耗時隨節點數的增長速度顯著緩于傳統邊界元法,但在網格節點數小于2 000 時并未顯現出優勢,主要原因是傳統邊界元法的求解過程中計算量最大的LU分解采用了LAPACK 標準函數,運行時的調度優化水平很高,而迭代求解器中矩陣與向量的乘法操作被替代為大量小型矩陣與向量相乘,雖然每次小矩陣與向量相乘都采用了優化程度較高的BLAS 標準子程序,能夠調動CPU 所有計算核心并行運算,但每個線程的運行時間都非常短,頻繁的線程切換浪費了大量的時間,據筆者觀察,在計算程序運行過程中,CPU的峰值占用量不足35%。因此,通過改進計算程序的并行方式,充分利用機器資源,還可以較大幅度的提高計算程序的效率。
1)采用ACA-BEM 算法替代傳統邊界元法,并利用主成分分析法分割求解域,建立圓柱殼體模型,利用均勻脈動殼體問題驗證了方法的有效性和準確性。
2)對比了ACA-BEM和傳統邊界元法在不同模型尺寸比、不同網格規模條件下的計算效率和內存占用量。ACA-BEM的計算效率受結構長寬比的影響較小,當節點數不足2000 時,ACA-BEM的計算效率與傳統邊界元相比不具備優勢,但隨著節點數的繼續增多,ACA-BEM 在計算效率和內存占用量兩方面都顯現出明顯的優勢。
[1]JEAN P B.A perfectly matched layer for the absorption of electromagnetic waves [J].Journal of Computational Physics,1994,114(2):185-200.
[2]LUC C,FYFE K R,COYETTE J P.A variable order infinite acoustic wave envelope element[J].Journal of Sound and Vibration,1994,171(4):483-508.
[3]BURNETT D S.A three-dimensional acoustic infinite element based on a prolate spheroidal multipole expansion[J].Journal of Acoustic Society of America,1996,96:2798-2816.
[4]MICHAEL-A E,DEMBART B.Multipole translation theory for the three-dimensional laplace and helmholtz equations[J].SIAM Journal on Scientific Computing,1995,16(4):865-897.
[5]MARIO B,RJASANOW S.Adaptive low-rank approximation of collocation matrices[J].Computing,2003,70(1):1-24.
[6]LARS G.Adaptive recompression of-matrices for BEM[J].Computing,2005,74(3):205-223.
[7]鄭昌軍,陳磊磊,陳海波.基于自適應交叉近似邊界元法的快速聲學靈敏度分析[J].計算力學學報,2014(4):413-418.
[8]吳君輝,曹祥玉,袁浩波,等.自適應交叉近似算法在矩量法中的應用[J].空軍工程大學學報(自然科學版),2013(5):76-79.
[9]楊劍.半空間環境中的自適應交叉近似方法研究[D].西安:西安電子科技大學,2013.
[10]Ian Jolliffe.Principal component analysis[M].Wiley Online Library,2005.