本公開涉及計算流體力學(xué)(cfd),尤其是涉及一種基于cgns混合網(wǎng)格的并行讀取方法。
背景技術(shù):
1、計算流體力學(xué)(cfd)是一種用于模擬和分析流體流動、傳熱和其他相關(guān)物理現(xiàn)象的技術(shù)。它在航空發(fā)動機(jī)設(shè)計中尤為重要,因為可以在虛擬環(huán)境中測試和優(yōu)化發(fā)動機(jī)性能,從而減少物理試驗的需求和成本。cgns是cfd數(shù)據(jù)存儲和交換的標(biāo)準(zhǔn)格式,廣泛應(yīng)用于航空、航天、汽車等領(lǐng)域,用于存儲大規(guī)模網(wǎng)格和仿真數(shù)據(jù)。
2、隨著航空發(fā)動機(jī)數(shù)值仿真中網(wǎng)格規(guī)模的不斷擴(kuò)大,且構(gòu)型復(fù)雜使得混合網(wǎng)格應(yīng)用場景不斷增加,而由于混合網(wǎng)格中每個網(wǎng)格的拓?fù)溟L度不一致,往往采用從前向后依次讀取網(wǎng)格拓?fù)涞姆绞?,通過讀完前一個網(wǎng)格拓?fù)湫畔?,才能確定下一個網(wǎng)格拓?fù)湫畔⒌臏?zhǔn)確起始位置,這樣才能保證單個網(wǎng)格拓?fù)湫畔⒌耐暾x取,這種具有前后依賴關(guān)系的網(wǎng)格拓?fù)浯鎯Ψ绞剑诓⑿杏嬎阒性斐闪司W(wǎng)格分區(qū)上的困難,制約了并行計算的應(yīng)用,而傳統(tǒng)的單進(jìn)程讀取方法難以滿足高效仿真的需求,導(dǎo)致仿真速度緩慢,影響了設(shè)計和優(yōu)化過程。
技術(shù)實現(xiàn)思路
1、鑒于上述問題而提出了本公開。本公開提供了一種基于cgns混合網(wǎng)格的并行讀取方法。
2、根據(jù)本公開的一個方面,提供了一種基于cgns混合網(wǎng)格的并行讀取方法,包括以下步驟:
3、s1:根據(jù)cgns網(wǎng)格頂點數(shù)量,計算進(jìn)程需要讀入的上下限,每個進(jìn)程分別讀入該進(jìn)程上下限之間網(wǎng)格數(shù)據(jù);
4、s2:將前一個進(jìn)程的最后n個的點信息通信到下一個進(jìn)程;每個進(jìn)程分析點后,確定哪些點可能為網(wǎng)格單元類型數(shù)據(jù),作為可能的拓?fù)淦瘘c;
5、s3:根據(jù)可能的拓?fù)淦瘘c的集合,開始生成所有可能的網(wǎng)格拓?fù)洌?/p>
6、s4:根據(jù)已確定好網(wǎng)格拓?fù)湫畔⒌倪M(jìn)程,通過通信確定其他進(jìn)程的唯一網(wǎng)格拓?fù)?;重?fù)這一循環(huán)直到所有進(jìn)程找到唯一網(wǎng)絡(luò)拓?fù)洹?/p>
7、此外,根據(jù)本公開一個方面的基于cgns混合網(wǎng)格的并行讀取方法,還包括:s1包括以下步驟:
8、s11:打開cgns網(wǎng)格,確定節(jié)點為混合網(wǎng)絡(luò);獲取文件體點拓?fù)鋽?shù)據(jù)的大??;
9、s12每個進(jìn)程根據(jù)節(jié)點數(shù)量計算當(dāng)前進(jìn)程需要讀入的上下限,通過調(diào)用cgns的讀數(shù)據(jù)接口,將數(shù)據(jù)讀入數(shù)據(jù)結(jié)構(gòu)。
10、此外,根據(jù)本公開一個方面的基于cgns混合網(wǎng)格的并行讀取方法,還包括:s2包括以下步驟:
11、s21:當(dāng)前進(jìn)程通過通信獲取從上一個進(jìn)程缺失的點信息,前一個進(jìn)程將末尾的點通信到當(dāng)前進(jìn)程,被通信的點個數(shù)為最大拓?fù)潼c個數(shù)加一;
12、s22:建立支持的網(wǎng)格單元類型代號表;
13、s23:循環(huán)判斷被通信的點是否存在與網(wǎng)格單元類型代號表中,如果存在,則標(biāo)記為可能為拓?fù)淦鹗键c;
14、s24:對所有已經(jīng)標(biāo)為可能起始點進(jìn)一步優(yōu)化和篩選,如果起始點所代表的拓?fù)潼c的結(jié)尾小于或等于通信點的結(jié)尾,則代表該拓?fù)淇梢栽谏弦粋€進(jìn)程生成,重新標(biāo)記為非起始點;
15、s25:在篩選結(jié)束后,則將對可能的拓?fù)淦鹗键c循環(huán),生成網(wǎng)格拓?fù)洹?/p>
16、此外,根據(jù)本公開一個方面的基于cgns混合網(wǎng)格的并行讀取方法,還包括:s3包括以下步驟:
17、s31:循環(huán)所有啟示位置,每個循環(huán)中將點插入進(jìn)程點的前面,將結(jié)束點位置通信到下一個進(jìn)程,如果結(jié)束點位置還未被確定,通信減1;
18、s32:進(jìn)程從上一個進(jìn)程接受結(jié)束點位置;如果不是減1,更新此進(jìn)程的開始位置;上個進(jìn)程結(jié)束位置加1就是這個進(jìn)程的開始位置;檢查是否已經(jīng)計算過該位置,如果已經(jīng)計算過直接保存拓?fù)?,更新?dāng)前進(jìn)程結(jié)束點;
19、s33:如果位置確定,還未生成拓?fù)洌苯犹酱_定的起始位置開始計算;
20、s34:如果未確定開始位置,嘗試生成當(dāng)前循環(huán)的拓?fù)洌蝗绻诰W(wǎng)格類型點上出現(xiàn)了非法的數(shù)字,則可以認(rèn)為這個可能開始點錯誤,直接跳過;如果一直生成下去直到點結(jié)束,則暫時保存;
21、s35:每個循環(huán)結(jié)束前,確認(rèn)進(jìn)程中是否只有一個可能的網(wǎng)格拓?fù)?,如果只有一個,直接保存唯一的網(wǎng)格拓?fù)浜螅略撨M(jìn)程的已知開始點和已知結(jié)束點;如果為多個,則重復(fù)步驟s31-s35。
22、此外,根據(jù)本公開一個方面的基于cgns混合網(wǎng)格的并行讀取方法,還包括:s3還包括以下步驟:
23、s36:當(dāng)所有循環(huán)結(jié)束后,進(jìn)程中仍然存在多個可能得網(wǎng)格拓?fù)?,則需要進(jìn)程間的通信進(jìn)一步挑選正確的網(wǎng)絡(luò)拓?fù)漤樞颉?/p>
24、此外,根據(jù)本公開一個方面的基于cgns混合網(wǎng)格的并行讀取方法,還包括:所述非法的數(shù)字是指不在網(wǎng)格單元類型代號表中的數(shù)字。
25、此外,根據(jù)本公開一個方面的基于cgns混合網(wǎng)格的并行讀取方法,還包括,s4包括以下步驟;
26、s41:當(dāng)有進(jìn)程中存在多個可能的網(wǎng)格拓?fù)鋾r,即有的進(jìn)程沒能更新已知開始點和已知結(jié)束點時,需要通信來確定正確的拓?fù)洌?/p>
27、s42:前一個進(jìn)程將該進(jìn)程已知結(jié)束點通信到當(dāng)前進(jìn)程;
28、s43:將前一個進(jìn)程的已知結(jié)束點+1更新為當(dāng)前進(jìn)程的已知開始點;
29、s44;重復(fù)循環(huán)過程直到整個網(wǎng)格劃分進(jìn)程域中所有的進(jìn)程都更新了已知開始點和已知結(jié)束點,即找到唯一正確的拓?fù)?;?dāng)所有位置信息都確定完畢后,結(jié)束循環(huán)。
30、此外,根據(jù)本公開一個方面的基于cgns混合網(wǎng)格的并行讀取方法,還包括:s42中已知結(jié)束點是指網(wǎng)格結(jié)束點數(shù)組中前一個進(jìn)程位置的數(shù)據(jù)。
31、此外,根據(jù)本公開一個方面的基于cgns混合網(wǎng)格的并行讀取方法,還包括:所述s43中前一個進(jìn)程的已知結(jié)束點不是減1的情況時,將前一個進(jìn)程已知結(jié)束點加1作為當(dāng)前進(jìn)程的開始點。
32、與現(xiàn)有技術(shù)相比,本公開具有以下有益效果:
33、1、本公開通過多進(jìn)程并行讀取和處理cgns混合網(wǎng)格數(shù)據(jù),顯著提高了數(shù)據(jù)讀取和處理的效率。在多進(jìn)程方法中,每個進(jìn)程負(fù)責(zé)讀取和處理部分網(wǎng)格數(shù)據(jù),避免了單進(jìn)程讀取方法中因數(shù)據(jù)量過大導(dǎo)致的時間瓶頸以及處理混合網(wǎng)格時原來無法使用并行計算進(jìn)程讀取數(shù)據(jù)上下限的問題。
34、2、本公開不僅提高了數(shù)據(jù)讀取效率,還通過并行間大量的通信處理降低了單一進(jìn)程冗余計算的負(fù)擔(dān),對于需要快速迭代設(shè)計和優(yōu)化的工程應(yīng)用具有重要意義。
1.一種基于cgns混合網(wǎng)格的并行讀取方法,其特征在于,包括以下步驟:
2.如權(quán)利要求1所述的基于cgns混合網(wǎng)格的并行讀取方法,其特征在于,s1包括以下步驟:
3.如權(quán)利要求1所述的基于cgns混合網(wǎng)格的并行讀取方法,其特征在于:s2包括以下步驟:
4.如權(quán)利要求1所述的基于cgns混合網(wǎng)格的并行讀取方法,其特征在于:s3包括以下步驟:
5.如權(quán)利要求4所述的基于cgns混合網(wǎng)格的并行讀取方法,其特征在于:s3還包括以下步驟:
6.如權(quán)利要求4所述的基于cgns混合網(wǎng)格的并行讀取方法,其特征在于:所述非法的數(shù)字是指不在網(wǎng)格單元類型代號表中的數(shù)字。
7.如權(quán)利要求1所述的基于cgns混合網(wǎng)格的并行讀取方法,其特征在于:s4包括以下步驟;
8.如權(quán)利要求7所述的基于cgns混合網(wǎng)格的并行讀取方法,其特征在于:s42中已知結(jié)束點是指網(wǎng)格結(jié)束點數(shù)組中前一個進(jìn)程位置的數(shù)據(jù)。
9.如權(quán)利要求7所述的基于cgns混合網(wǎng)格的并行讀取方法,其特征在于:所述s43中前一個進(jìn)程的已知結(jié)束點不是減1的情況時,將前一個進(jìn)程已知結(jié)束點加1作為當(dāng)前進(jìn)程的開始點。