System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本申請屬于矩陣運算領域,更具體地,涉及一種矩陣預處理方法、系統及設備。
技術介紹
1、在cae的現代半導體行業靜力分析仿真過程中,往往離不開對有限元網格對應稀疏矩陣的求解。這些矩陣不僅規模巨大,而且大量的矩陣元素值為零。如果采用傳統的稠密矩陣的求解算法,將大大增加無效計算的時間。因此一個高效的稀疏矩陣的求解算法需要對矩陣結構進行預處理,即求解前調整矩陣中非零元素的排布,更加高效的加速求解矩陣。
2、目前,現有技術中常對稀疏矩陣進行不完全lu(incomplete?lu,ilu)分解來預處理。然而,針對大規模矩陣進行ilu分解預處理時常消耗大量計算時間和存儲空間,需要進一步改進。此外,在ilu分解預處理后求解計算時涉及到大量的前向/后向替換操作,這會使得并行計算難以實現。
技術實現思路
1、針對現有技術的缺陷,本申請的目的在于提供一種矩陣預處理方法、系統及設備,旨在解決現有有限元網格中稀疏矩陣分解時存在大量無效計算的時間,消耗不必要的存儲空間,且難以實現并行計算的問題。
2、為實現上述目的,第一方面,本申請提供了一種矩陣預處理方法,所述矩陣為有限元網格對應的稀疏矩陣,方法包括:
3、將稀疏矩陣對應的有限元網格轉換為圖結構;
4、采用重邊匹配算法將所述圖結構進行簡化,得到粗化的圖結構;
5、通過直接劃分算法將所述粗化的圖結構劃分為多個子圖;
6、通過頂點拆分和分區細化算法將劃分后的各個子圖進行細化放大,得到多個細化
7、參考所述多個細化圖將所述稀疏矩陣進行相應的映射,得到多個分區后的矩陣;
8、通過多層嵌套分解范式算法將各個分區矩陣進行減少填充排序,得到多個分區的重排矩陣;所述多個分區的重排矩陣用于進行并行分解求解實現對所述稀疏矩陣的求解。
9、本申請中對矩陣的預處理包括:通過將對應的圖結構粗化、劃分、細化并映射得到對應的分區矩陣,之后將分區矩陣重排,以將非零元素向對角線集中,產生了不同的集中矩陣塊,且大小接近,便于后續計算。通過上述操作,從而對稀疏矩陣的結構進行優化,降低矩陣的條件數,提高矩陣求解計算過程中的穩定性,同時,重排后集中的矩陣非零元素排布提高訪存命令率,再結合分塊后的并行計算,共同提高了矩陣求解的效率。分塊圖重排的靈活性、易并行性克服了現有預處理方法計算量大、難以并行的局限,為高效率求解有限元網格中的大規模稀疏矩陣提供了支持。
10、在一種可能的實現方式中,該方法還包括對所述多個分區的重排矩陣并行分解求解。
11、在一種可能的實現方式中,將所述稀疏矩陣對應的有限元網格轉換為圖結構,包括:
12、將有限元網格中每個單元轉換為圖的頂點,單元之間的共享面或共享邊轉換為圖中的邊,得到對應的圖結構;
13、或
14、將有限元網格中每個單元的節點轉換為圖的頂點,而節點之間的連接轉換為圖中的邊,得到對應的圖結構。
15、在一種可能的實現方式中,采用重邊匹配算法將所述圖結構進行簡化,得到粗化的圖結構,包括:
16、通過隨機化算法隨機順序訪問所述圖結構中的頂點,將其與相鄰權重大于權重閾值的邊的頂點進行匹配合并,將合并得到的新頂點的權重設置為合并前兩個頂點的權重之和;
17、將合并前兩個頂點相關聯的邊作為新頂點相關聯的邊,若所述相關聯的邊中有任意一條邊同時與所述合并前兩個頂點相連,則將此條邊的權重設置為其余相關聯邊的權重之和;
18、重復上述頂點和邊的合并過程,不斷減小所述圖結構的頂點數,直到得到的新的圖結構的頂點數達到預設頂點數閾值,將最終得到的圖結構作為粗化的圖結構。
19、在一種可能的實現方式中,通過直接劃分算法將所述粗化的圖結構劃分為多個子圖,包括:
20、當劃分為2個子圖時,采用譜二分法將粗化的圖結構劃分為多個子圖;
21、當劃分為2個以上的子圖時,采用kernighan-lin算法將粗化的圖結構劃分為多個子圖。
22、在一種可能的實現方式中,通過頂點拆分和分區細化算法將劃分后的各個子圖進行細化放大,得到多個細化圖,包括:
23、將子圖中的頂點對進行拆分,并將頂點對投影分配至相同分區的細化圖之中;
24、在每次投影分配迭代之后,以隨機順序檢查各個細化圖中所有頂點,如果某頂點是邊界頂點,其在細化圖的不同分區之間移動,使得每個細化圖分區具有相同的權重。
25、在一種可能的實現方式中,參考所述細化圖將所述稀疏矩陣進行相應的映射,得到多個分區后的矩陣,包括:
26、參考所述細化圖與有限元網格的映射關系,對所述有限元網格對應的稀疏矩陣進行映射,使得所述稀疏矩陣也產生對應的劃分效果,得到多個分區的矩陣。
27、在一種可能的實現方式中,通過多層嵌套分解范式算法將各個分區矩陣進行減少填充排序,得到多個分區的重排矩陣,包括:
28、確定各個分區矩陣對應的圖結構;所述圖結構對應為映射前的細化圖;
29、尋找各個分區矩陣對應圖結構中的最小頂點覆蓋,所述最小頂點覆蓋為一組頂點,所述分區矩陣中每條邊至少有一個頂點在所述最小頂點覆蓋中;
30、將所述最小頂點覆蓋作為頂點分隔符,將所述頂點分隔符移除,使所述對應圖結構分割成不相連的兩個子圖;
31、在不相連的子圖中繼續尋找頂點分隔符并繼續分割,直到分割得到的子圖包括的頂點的個數小于預設值;
32、參考分區矩陣的圖結構按照不相連的子圖、頂點分隔符、各不相鄰子圖分割得到的不相鄰子圖和頂點分隔符的順序對所述分區矩陣的行和列進行排序,使得所述分區矩陣的圖結構中相鄰節點具有鄰近編號,以便所述分區矩陣中非零元素連續排布,減少非零元素間零元素的占比,得到對應的重排矩陣。
33、第二方面,本申請提供了一種矩陣預處理系統,所述矩陣為有限元網格對應的稀疏矩陣,系統包括:
34、網格獲取轉換模塊,用于將稀疏矩陣對應的有限元網格轉換為圖結構;
35、粗化縮小模塊,用于采用重邊匹配算法將所述圖結構進行簡化,得到粗化的圖結構;
36、劃分模塊,用于通過直接劃分算法將所述粗化的圖結構劃分為多個子圖;
37、細化放大模塊,用于通過頂點拆分和分區細化算法將劃分后的各個子圖進行細化放大,得到多個細化圖;
38、矩陣重排模塊,用于參考所述多個細化圖將所述稀疏矩陣進行相應的映射,得到多個分區后的矩陣;通過多層嵌套分解范式算法將各個分區矩陣進行減少填充排序,得到多個分區的重排矩陣;所述多個分區的重排矩陣用于進行并行分解求解實現對所述稀疏矩陣的求解。
39、第三方面,本申請提供一種電子設備,包括:至少一個存儲器,用于存儲程序;至少一個處理器,用于執行存儲器存儲的程序,當存儲器存儲的程序被執行時,處理器用于執行第一方面或第一方面的任一種可能的實現方式所描述的方法。
本文檔來自技高網...【技術保護點】
1.一種矩陣預處理方法,所述矩陣為有限元網格對應的稀疏矩陣,其特征在于,方法包括:
2.根據權利要求1所述的方法,其特征在于,還包括:對所述多個分區的重排矩陣并行分解求解。
3.根據權利要求1所述的方法,其特征在于,將所述稀疏矩陣對應的有限元網格轉換為圖結構,包括:
4.根據權利要求1所述的方法,其特征在于,采用重邊匹配算法將所述圖結構進行簡化,得到粗化的圖結構,包括:
5.根據權利要求1所述的方法,其特征在于,通過直接劃分算法將所述粗化的圖結構劃分為多個子圖,包括:
6.根據權利要求1所述的方法,其特征在于,通過頂點拆分和分區細化算法將劃分后的各個子圖進行細化放大,得到多個細化圖,包括:
7.根據權利要求1所述的方法,其特征在于,參考所述細化圖將所述稀疏矩陣進行相應的映射,得到多個分區后的矩陣,包括:
8.根據權利要求1所述的方法,其特征在于,通過多層嵌套分解范式算法將各個分區矩陣進行減少填充排序,得到多個分區的重排矩陣,包括:
9.一種矩陣預處理系統,所述矩陣為有限元網格對應的稀疏
10.一種電子設備,其特征在于,包括:
...【技術特征摘要】
1.一種矩陣預處理方法,所述矩陣為有限元網格對應的稀疏矩陣,其特征在于,方法包括:
2.根據權利要求1所述的方法,其特征在于,還包括:對所述多個分區的重排矩陣并行分解求解。
3.根據權利要求1所述的方法,其特征在于,將所述稀疏矩陣對應的有限元網格轉換為圖結構,包括:
4.根據權利要求1所述的方法,其特征在于,采用重邊匹配算法將所述圖結構進行簡化,得到粗化的圖結構,包括:
5.根據權利要求1所述的方法,其特征在于,通過直接劃分算法將所述粗化的圖結構劃分為多個子圖,包括:
6....
【專利技術屬性】
技術研發人員:張適,陳民,秦松,
申請(專利權)人:武創芯研科技武漢有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。