區域分割¶
以多個程序平行分析大型網格時,需要先將單一區域的網格分割為子區域,並預先產生各程序所負責的區域以及區域間通訊所需的資訊。此前處理稱為區域分割。
在 FrontISTR 的平行計算中,hecmw_part1 將單一區域網格分割為子區域,並建立分散式網格資料。產生的分散式網格資料由平行 fistr1 讀取,並與區域間通訊所需的資訊一同供平行求解器使用。
本頁說明區域分割時選擇的分割類型、分割方法、重疊深度以及接觸點的處理方式。hecmw_part1 的執行程序、控制檔案的具體格式及錯誤訊息請參閱相關項目。
功能概觀¶
區域分割是將單一區域網格分割為多個子區域的處理。FrontISTR 結合分割類型、分割方法、區域數及重疊深度,建立分散式網格資料。
| 選擇軸 | 主要選項 | 作用 |
|---|---|---|
| 分割類型 | 節點式分割、元素式分割 | 決定以節點或元素作為判定所屬區域的單位。 |
| 分割方法 | RCB、METIS(pMETIS / kMETIS) | 決定區域邊界的建立方式。 |
| 區域數 | 任意正整數(RCB 為 \(2^n\)) | 決定分散式網格資料的子區域數。通常與 MPI 程序數一致。 |
| 重疊深度 | 1 以上的整數 | 決定相鄰區域重複保留的範圍。於節點式分割中指定。 |
| 通訊表 | 匯入/匯出資訊、共享資訊 | 定義相鄰子區域間所需的資料交換。於區域分割時自動產生。 |
通訊表包含在分散式網格資料中,因此一般分析不需要使用者直接編輯。平行 fistr1 讀取此分散式網格資料,並使用 MUMPS 等平行直接法或反覆法求解線性方程式。
區域分割的選擇方式¶
一般結構分析與熱傳導分析,首先可考慮節點式分割。節點式分割較容易處理平行有限元素分析所需的節點值通訊,也可指定重疊深度。元素式分割則適合耦合分析等希望以元素為中心處理分割後資訊的用途。
分割方法依形狀與區域數選擇。若形狀單純且區域數可設為 \(2^n\),RCB 是簡潔且穩定的選項。若形狀複雜或希望分割為任意區域數,可考慮以圖分割為基礎的 METIS。
| 問題特徵 | 建議選擇 |
|---|---|
| 結構分析、熱傳導分析的標準平行分析 | 節點式分割 |
| 耦合分析等使用以元素為中心之分散資訊的用途 | 元素式分割 |
| 接近長方體的單純形狀,區域數為 \(2^n\) | RCB |
| 複雜形狀或任意區域數 | METIS |
| 使用 SAINV 前處理器的接觸問題、MPC 約束問題 | 採用節點式分割,並將重疊深度設為 2 以上 |
區域數通常與 MPI 程序數一致。平行執行程序與程序數的指定請參閱平行處理分析。SAINV 前處理器與重疊深度的關係亦請參閱求解器與前處理器。
分割類型¶
分割類型決定網格中的哪一種單位被賦予唯一所屬子區域。節點式分割決定節點的歸屬,元素式分割則決定元素的歸屬。兩種情況下,與相鄰子區域計算所需的資訊都會以重疊資料的形式保留。
節點式分割¶
節點式分割會為所有節點決定唯一所屬子區域。在相鄰子區域中,元素會以重疊方式保留。輸入時以 !PARTITION, TYPE=NODE-BASED 指定。

各子區域會保留內部節點、包含內部節點的元素,以及構成這些元素的節點。

節點式分割的通訊表包含以下資訊。
- 匯入節點:子區域內使用的節點中,屬於其他子區域的節點。
- 匯出節點:成為其他子區域匯入節點的內部節點。
- 共享元素:與其他子區域共享的元素。



元素式分割¶
元素式分割會為所有元素決定唯一所屬子區域。在相鄰子區域中,節點會以重疊方式保留。輸入時以 !PARTITION, TYPE=ELEMENT-BASED 指定。

各子區域會保留內部元素、構成內部元素的節點,以及包含這些節點的元素。

元素式分割的通訊表包含以下資訊。
- 匯入元素:子區域內使用的元素中,屬於其他子區域的元素。
- 匯出元素:成為其他子區域匯入元素的內部元素。
- 共享節點:與其他子區域共享的節點。



無論哪一種分割類型,通訊表都由 hecmw_part1 自動產生並寫入分散式網格資料。因此,一般分析不需要使用者直接建立匯入/匯出資訊。
分割方法¶
分割方法表示如何決定子區域的邊界。FrontISTR 可使用基於座標值的 RCB,以及基於圖分割的 METIS。
| 分割方法 | 特徵 | 主要限制與注意事項 |
|---|---|---|
| RCB | 根據座標值大小遞迴二分。可快速分割單純形狀。 | 區域數限制為 \(2^n\)。必須指定分割軸。 |
| pMETIS | 基於圖分割,考量區域間連接關係進行分割。 | 可在啟用 METIS 的建置中使用。 |
| kMETIS | 基於多區域圖分割,複雜形狀也較容易建立區域邊界。 | 可在啟用 METIS 的建置中使用。 |
RCB 是 Recursive Coordinate Bisection 的縮寫,反覆沿座標軸將網格二分。適用於區域數可設為 \(2^n\) 的情況,且容易用於長方體狀的單純形狀。
METIS 將網格的連接關係視為圖,透過圖分割建立子區域。當形狀複雜或不希望將區域數限制為 \(2^n\) 時,可考慮使用 METIS。使用 METIS 時,建置時必須啟用 METIS 程式庫。相依程式庫的處理請參閱必要與選用相依程式庫。
重疊深度¶
重疊深度是相鄰子區域重複保留範圍的層數。節點式分割可透過 !PARTITION 的 DEPTH 參數指定 1 以上的整數。省略時的重疊深度為 1。
一般平行分析使用 DEPTH=1 即已足夠。另一方面,在接觸問題或 MPC 約束問題中使用 SAINV 等 SAI 類前處理器時,將重疊深度增加至 2 以上,有時可改善前處理品質。
此外,在 MPI 平行中使用四面體一次元素 341 的選擇性邊/節點平滑公式(FORM341=SELECTIVE_ESNS)時,也必須將重疊深度設為 2 以上。邊式/節點式平滑會對目標元素相鄰元素的量取平均,因此在子區域內組裝剛性時需要「相鄰元素的相鄰元素」資訊;使用預設的 DEPTH=1 時,區域邊界附近的平滑會不足。元素公式的詳細資訊請參閱元素程式庫。
增加重疊深度會增加相鄰子區域所保留的節點與元素,因此記憶體使用量與通訊量也會增加。設定時應權衡收斂性的改善與計算成本的增加。前處理器的選擇請參閱求解器與前處理器。
接觸點的處理¶
分割含有接觸配對的網格時,可透過 !PARTITION 的 CONTACT 參數指定接觸點的區域配置方針。接觸點的配置會影響含接觸搜尋與接觸約束之平行分析的穩定性與通訊量。
| 值 | 定位 |
|---|---|
DEFAULT |
使用標準配置方針。 |
SIMPLE |
不對接觸點賦予特殊權重,採用接近一般分割的配置。 |
AGGREGATE |
以集中與接觸配對相關節點群的方向進行分割。 |
DISTRIBUTE |
以使接觸主側節點不易偏集中於特定子區域的方向進行分割。 |
對不含接觸的網格,不必特別考慮 CONTACT 參數。若含接觸的平行分析在收斂性或負載平衡方面有問題,應重新檢視接觸點的配置方針。輸入格式的詳細資訊請參閱 !PARTITION。
與此獨立,可透過 CONTACT_OWNER 參數選擇平行接觸的所有權方式。CONTACT 指定「如何分割」,而 CONTACT_OWNER 指定「分割後由哪一側負責」。
| 值 | 定位 |
|---|---|
MASTER |
主側所有方式(預設)。依元素所屬子區域分割主面,並將從屬節點複製到各個擁有主面的子區域。 |
SLAVE |
從側所有方式。從屬節點僅由其所屬子區域保留,並在該子區域中配置整個主面。 |
在有限滑移(!CONTACT 的 INTERACTION=FSLID)中,若從屬節點跨越主面上的區域分割邊界,MASTER 方式會在邊界處中斷鄰接搜尋,導致接觸狀態與摩擦歷程遺失,使解依賴於區域分割數。SLAVE 方式可避免此問題。僅在 TYPE=NODE-BASED 時可指定;擁有從屬節點之子區域的記憶體使用量會增加。
輸出區域分割影像¶
指定 !PARTITION 的 UCD 參數後,可輸出用於確認分割結果的 UCD 檔案。UCD 檔案可用於 MicroAVS 等視覺化工具,以確認區域編號與分割邊界。
變更區域數、分割方法或重疊深度後,確認分割區域是否有偏斜或不自然的細分相當重要。UCD 輸出是執行平行分析前,用於確認分割妥當性的輔助功能。
相關項目¶
- 平行處理分析 —
hecmw_part1的執行程序、輸入檔案及分散式網格資料輸出的確認。 - 求解器與前處理器 — 平行求解器、前處理器,以及 SAINV 與重疊深度的關係。
- 錯誤訊息清單 —
hecmw_part1與fistr1的代表性錯誤訊息。 - 平行有限元素法 — 區域分割法與平行有限元素法的理論背景。
- !PARTITION — 區域分割公用程式控制資料的輸入格式。