本發(fā)明涉及網格數(shù)據(jù)處理領域,特別涉及一種非結構網格缺失邊界面補充方法、裝置、設備及介質。
背景技術:
1、非結構網格具備自動化程度高、生成周期短、分布控制靈活等優(yōu)點,常用于離散復雜工程外形的空間區(qū)域,其在復雜外形的計算流體力學(cfd,computation?fluiddynamic)中有較廣泛的應用。目前絕大多數(shù)cfd數(shù)值模擬中都采用的非結構線性單元。目前商業(yè)軟件生成的網格信息存儲文件格式多樣,以cgn為例,cgns(cfd?general?notationsystem,?cgns)格式是非結構網格軟件輸出的一類常用格式,cgns格式的網格格式中包含單元體和點的關系,以及點的坐標值,邊界面信息等數(shù)據(jù)。但是實際使用過程中,一些商業(yè)軟件在生成網格文件時會出現(xiàn)一兩個邊界面缺失的情況,此時將不知道缺失面的邊界類型,也無法補充缺失的邊界面。因此,如何補充缺失邊界面是目前亟待解決的問題。
技術實現(xiàn)思路
1、有鑒于此,本發(fā)明的目的在于提供一種非結構網格缺失邊界面補充方法、裝置、設備及介質,能夠對缺失邊界面進行補充,避免了重新繪制網格的時間損耗。其具體方案如下:
2、第一方面,本技術公開了一種非結構網格缺失邊界面補充方法,包括:
3、讀取網格文件中的基本信息,通過構建的存儲面單元信息的結構體定義第一map函數(shù)以及第二map函數(shù),通過解析所述網格文件中邊界面的構成信息獲取邊界面的目標信息;所述基本信息包括體單元類型和構成信息、點編號和坐標以及邊界面的類型和構成信息;所述目標信息包括面單元編號、面的構成點數(shù)、邊界面類型編號以及面上點的編號;
4、將基于所述目標信息確定的目標鍵值輸入所述第一map函數(shù),對所述網格文件中體單元的構成信息進行解析,基于獲取的定向排列后的體單元的各面上點的編號判斷所述第一map函數(shù)中是否存在所述體單元的各面;
5、若存在,則更新各面單元的信息,將基于相應的更新后面單元的信息確定的鍵值對寫入所述第二map函數(shù),基于所述第一map函數(shù)和所述第二map函數(shù)確定缺失邊界面的個數(shù)以及缺失邊界面的相鄰面;
6、根據(jù)所述相鄰面的邊界類型判斷所述缺失邊界面的邊界類型,將所述缺失邊界面的邊界類型以及單元編號對應的鍵值對寫入所述第二map函數(shù),基于所述第二map函數(shù)中存儲的全部面單元信息對所述缺失邊界面進行缺失面補充。
7、可選的,所述通過構建的存儲面單元信息的結構體定義第一map函數(shù)以及第二map函數(shù),包括:
8、構建用于存儲面上點的編號的第一結構體;其中,所述第一結構體中存儲的面上點的編號為基于預設大小順序對各點的編號進行排序后的編號;
9、構建用于存儲所述面單元編號、面的左側單元編號、面的右側單元編號面上點的編號以及面的構成點數(shù)的第二結構體;
10、通過將所述第一結構體和所述第二結構體分別確定為鍵和值的方式,定義第一map函數(shù)以及第二map函數(shù)。
11、可選的,所述將基于所述目標信息確定的目標鍵值輸入所述第一map函數(shù),包括:
12、基于從大到小的順序對所述面上點的編號進行排列,以得到編號信息數(shù)組,將所述編號信息數(shù)組確定為目標鍵;
13、將所述面單元編號、所述面的構成點數(shù)以及所述邊界面類型編號確定為目標值;
14、將基于所述目標鍵和所述目標值確定的目標鍵值輸入所述第一map函數(shù)。
15、可選的,所述基于獲取的定向排列后的體單元的各面上點的編號判斷所述第一map函數(shù)中是否存在所述體單元的各面之后,還包括:
16、若所述map函數(shù)中不存在所述體單元的面,則基于不存在的面的所述目標信息構建第一鍵值對,并將所述第一鍵值對寫入所述第一map函數(shù)。
17、可選的,所述更新各面單元的信息,包括:
18、更新各所述面單元的面上點的順序以及面左右單元的信息。
19、可選的,所述基于所述第一map函數(shù)和所述第二map函數(shù)確定缺失邊界面的個數(shù)以及缺失邊界面的相鄰面,包括:
20、根據(jù)所述第一map函數(shù)的長度確定所述缺失邊界面的個數(shù);
21、判斷所述第二map函數(shù)中存儲的面與所述缺失邊界面是否共線,根據(jù)相應的判斷結果確定所述缺失邊界面的相鄰面。
22、可選的,所述根據(jù)所述相鄰面的邊界類型判斷所述缺失邊界面的邊界類型,包括:
23、確定所述缺失邊界面的相鄰面是否缺失;
24、若不缺失,則判斷各所述相鄰面的邊界類型是否相同,根據(jù)相應的判斷結果確定第一sindex值;
25、若第一sindex值為預設的第一類值,則將所述相鄰面中最多的邊界類型確定為所述缺失邊界面的邊界類型;
26、若第一sindex值為預設的第二類值,則將各相鄰面的法向量與所述缺失邊界面的法向量相乘,將相應的相乘結果中最大值的相乘結果對應的相鄰面的邊界類型確定為所述缺失邊界面的邊界類型;
27、若所述缺失邊界面的一個相鄰面缺失,則判斷各所述相鄰面的邊界類型是否相同,根據(jù)相應的判斷結果確定第二sindex值;
28、若第二sindex值為預設的第三類值,則將所述相鄰面中最多的邊界類型確定為所述缺失邊界面的邊界類型;
29、若第二sindex值為預設的第四類值,則將各相鄰面的法向量與所述缺失邊界面的法向量相乘,將相應的相乘結果中最大值的相乘結果對應的相鄰面的邊界類型確定為所述缺失邊界面的邊界類型。
30、可選的,所述基于所述第二map函數(shù)中存儲的全部面單元信息對所述缺失邊界面進行缺失面補充,包括:
31、利用所述第二map函數(shù)中存儲的全部面單元信息構建面信息數(shù)組;所述面信息數(shù)組包括非結構體單元和面單元的關系數(shù)組、面單元和面單元頂點的關系數(shù)組以及面單元上點的個數(shù)數(shù)組;
32、基于所述面信息數(shù)組對所述缺失邊界面進行缺失面補充。
33、第二方面,本技術公開了一種非結構網格缺失邊界面補充裝置,包括:
34、目標信息獲取模塊,用于讀取網格文件中的基本信息,通過構建的存儲面單元信息的結構體定義第一map函數(shù)以及第二map函數(shù),通過解析所述網格文件中邊界面的構成信息獲取邊界面的目標信息;所述基本信息包括體單元類型和構成信息、點編號和坐標以及邊界面的類型和構成信息;所述目標信息包括面單元編號、面的構成點數(shù)、邊界面類型編號以及面上點的編號;
35、判斷模塊,用于將基于所述目標信息確定的目標鍵值輸入所述第一map函數(shù),對所述網格文件中體單元的構成信息進行解析,基于獲取的定向排列后的體單元的各面上點的編號判斷所述第一map函數(shù)中是否存在所述體單元的各面;
36、相鄰面確定模塊,用于若存在,則更新各面單元的信息,將基于相應的更新后面單元的信息確定的鍵值對寫入所述第二map函數(shù),基于所述第一map函數(shù)和所述第二map函數(shù)確定缺失邊界面的個數(shù)以及缺失邊界面的相鄰面;
37、缺失面補充模塊,用于根據(jù)所述相鄰面的邊界類型判斷所述缺失邊界面的邊界類型,將所述缺失邊界面的邊界類型以及單元編號對應的鍵值對寫入所述第二map函數(shù),基于所述第二map函數(shù)中存儲的全部面單元信息對所述缺失邊界面進行缺失面補充。
38、第三方面,本技術公開了一種電子設備,包括:
39、存儲器,用于保存計算機程序;
40、處理器,用于執(zhí)行所述計算機程序,以實現(xiàn)如前述的非結構網格缺失邊界面補充方法。
41、第四方面,本技術公開了一種計算機可讀存儲介質,用于保存計算機程序;其中,所述計算機程序被處理器執(zhí)行時實現(xiàn)如前述的非結構網格缺失邊界面補充方法。
42、本技術在補充非結構網格缺失邊界面時,首先讀取網格文件中的基本信息,通過構建的存儲面單元信息的結構體定義第一map函數(shù)以及第二map函數(shù),通過解析所述網格文件中邊界面的構成信息獲取邊界面的目標信息;所述基本信息包括體單元類型和構成信息、點編號和坐標以及邊界面的類型和構成信息;所述目標信息包括面單元編號、面的構成點數(shù)、邊界面類型編號以及面上點的編號;將基于所述目標信息確定的目標鍵值輸入所述第一map函數(shù),對所述網格文件中體單元的構成信息進行解析,基于獲取的定向排列后的體單元的各面上點的編號判斷所述第一map函數(shù)中是否存在所述體單元的各面;若存在,則更新各面單元的信息,將基于相應的更新后面單元的信息確定的鍵值對寫入所述第二map函數(shù),基于所述第一map函數(shù)和所述第二map函數(shù)確定缺失邊界面的個數(shù)以及缺失邊界面的相鄰面;根據(jù)所述相鄰面的邊界類型判斷所述缺失邊界面的邊界類型,將所述缺失邊界面的邊界類型以及單元編號對應的鍵值對寫入所述第二map函數(shù),基于所述第二map函數(shù)中存儲的全部面單元信息對所述缺失邊界面進行缺失面補充??梢?,本技術通過map函數(shù)處理網格信息文件。通過解析網格文件信息確定缺失面的位置,然后通過其面單元的相鄰邊界面信息確定缺失面的邊界類型,再將得到的缺失面完整信息寫入解析完后的網格數(shù)據(jù)數(shù)組,完成對缺失邊界面的補充。進而避免了重新繪制網格的時間損耗。