錯誤訊息一覽¶
本頁依類別整理 FrontISTR 輸出的代表性錯誤訊息,並以對照表列出可能原因與處理方向。此處不涵蓋所有內部訊息,而是聚焦於使用 hecmw_part1 與 fistr1 時常見的訊息。
顯示訊息時,請先確認是否有錯誤代碼並辨識其前綴。接著依對應類別的表格,判斷應檢查輸入檔、網格、元素、求解器、接觸、收斂或記憶體設定中的哪一部分。
訊息的閱讀方式¶
FrontISTR 的訊息包含來自 HEC-MW 函式庫的帶代碼訊息,以及由 fistr1 直接輸出的無代碼訊息。對於帶代碼訊息,可由前綴判斷來源模組與嚴重程度。
| 格式 | 範例 | 閱讀方式 |
|---|---|---|
| HECMW-XXX-EYYYY | HECMW-IO-E1014 | HEC-MW 函式庫的錯誤。XXX 表示子模組,E 表示 Error,YYYY 為訊息編號。 |
| HECMW-XXX-WYYYY | HECMW-PART-W0401 | HEC-MW 函式庫的警告。W 表示 Warning。 |
| 無代碼 | Number of substeps reached max number |
主要由 fistr1 透過 STOP、call hecmw_abort、write(*,*) 等路徑直接輸出。 |
訊息尾端顯示的數字或字串,可能是檔名、材料編號、元素編號、子步驟編號、內部旗標等執行階段資訊。同一代表性訊息的尾端值會依分析案例而不同。
輸入解析錯誤¶
輸入解析錯誤發生於讀取控制檔、網格資料、材料定義、重新啟動指定等輸入時。遇到此類錯誤時,請檢查錯誤發生前正在讀取的檔名、關鍵字名稱、材料名稱與群組名稱。
| 訊息或代碼 | 主要原因 | 處理方向 |
|---|---|---|
Cannot open FSTR control file |
無法開啟控制檔或 !INCLUDE 指定的輸入檔。 |
檢查執行目錄、檔名、相對路徑與存取權限。 |
material property not defined! |
分析所參照的材料未以 !MATERIAL 定義。 |
使 !SECTION 參照的材料名稱與控制檔或網格資料中的 !MATERIAL 名稱一致。 |
Error in material property definition! |
材料 ID、材料定義數量或其參照關係不一致。 | 檢查材料編號、材料定義數量及 !SECTION 的參照。 |
ERROR: Material type not supported |
材料關鍵字指定了不支援的 TYPE。 |
對 !ELASTIC、!HYPERELASTIC、!PLASTIC、!VISCOELASTIC 檢查相應的 TYPE。 |
We cannot deal with incompressible material currently |
指定了 Poisson 比為 0.5 的完全不可壓縮材料。 | 將 Poisson 比改為小於 0.5,必要時重新檢討元素公式。 |
Mohr-Coulomb and Drucker-Prager do not support temperature dependency |
對 Mohr-Coulomb 或 Drucker-Prager 指定了溫度相依表格。 | 使用不含溫度相依性的定義,或選擇支援溫度相依性的材料模型。 |
Multilinear hardening: Error in plastic strain definition |
多線性硬化的塑性應變未以單調方式定義。 | 將第一個塑性應變設為 0,並修正表格使塑性應變遞增。 |
HECMW-IO-E1012 Element doesn't have section |
找不到與元素對應的截面資訊。 | 檢查 !SECTION 中的元素群組指定,以及網格中的元素群組。 |
HECMW-IO-E1013 Cannot set section |
無法將截面指定給元素。 | 檢查截面類型、材料名稱與元素群組名稱的一致性。 |
HECMW-IO-E1014 No nodes defined |
沒有節點定義。 | 檢查網格資料是否包含節點區塊。 |
HECMW-IO-E1015 No elements defined |
沒有元素定義。 | 檢查網格資料是否包含元素區塊。 |
HECMW-UTIL-E0040 !RESTART: Invalid token in control file |
!RESTART 語法不正確。 |
檢查 !RESTART 行的分隔符、參數名稱與值。 |
HECMW-UTIL-E0041 !RESTART: Missing NAME |
!RESTART 中沒有 NAME。 |
指定重新啟動資料名稱。 |
HECMW-UTIL-E0042 !RESTART: Missing IO |
!RESTART 中沒有 IO。 |
加入讀取/寫出指定。 |
網格與元素錯誤¶
當元素類型與功能的組合、參照節點、局部座標系,或接觸面所用元素類型不適當時,會發生網格與元素錯誤。除了輸入語法,也請檢查元素形狀品質與節點順序。
| 訊息 | 主要原因 | 處理方向 |
|---|---|---|
##Error: This element type is not supported in contact analysis !!! |
接觸面指定了接觸分析不支援的元素類型。 | 重新檢討接觸面所用元素類型與表面定義。確認接觸面是否使用高次或特殊元素。 |
Bad reference for beam element! |
梁元素的參照節點或參照方向不正確。 | 檢查梁元素的參照節點、局部座標系與重複節點。 |
Fail to setup local coordinate |
無法建構元素的局部座標系。 | 檢查元素幾何是否退化、節點順序、重複節點與參照座標系。 |
局部座標系設定失敗不僅與輸入值有關,也取決於網格品質。尤其應檢查是否存在極小元素、面積或體積接近 0 的元素,以及節點順序反轉的元素。
求解器相關錯誤¶
求解器相關錯誤可能由線性求解器設定不正確、直接法分解失敗、矩陣奇異、未連結外部函式庫等原因造成。請確認分析停止前的日誌是否包含反覆法、直接法、接觸自由度、MPC 等相關資訊。
| 訊息 | 主要原因 | 處理方向 |
|---|---|---|
ERROR ordering option for direct solver out of range |
直接求解器的排序指定超出範圍。 | 檢查 !SOLVER 中直接求解器的排序設定。 |
ERROR in symb. fact. flag: Should be 1 or 0 |
符號分解旗標不是 0 或 1。 | 檢查內部直接求解器旗標的指定值。通常使用者不會直接修改此設定。 |
ERROR in numer. fact. flag: Should be 1 or 0 |
數值分解旗標不是 0 或 1。 | 檢查內部直接求解器旗標的指定值。 |
ERROR in nufct0. ir = |
直接法的數值分解失敗。 | 檢查拘束是否不足、剛體模態、異常材料常數、接觸條件與 MPC 條件。 |
error in nusol0. irr = |
直接法的回代失敗。 | 與數值分解失敗相同,檢查線性系統是否奇異或不一致。 |
METIS not available |
指定了以 METIS 為基礎的排序,但目前建置未包含 METIS 支援。 | 改用不使用 METIS 的設定,或重新建置並啟用 METIS。相依函式庫請參閱必要與選用相依函式庫。 |
直接法分解失敗不一定只是求解器設定造成,也可能由模型剛體運動、拘束不足、重複拘束、極端材料常數或接觸條件不一致所致。將拘束與載荷還原為簡單案例,確認最小設定下能否解出線性系統,有助於釐清原因。
接觸分析錯誤¶
接觸分析錯誤可能由接觸配對與表面群組不一致、接觸搜尋時的幾何奇異、表面元素類型不符,或接觸搜尋記憶體不足所造成。遇到接觸錯誤時,請檢查 slave 與 master 群組名稱、接觸面的元素類型、初始穿透量及接觸面的法向方向。
| 訊息 | 主要原因 | 處理方向 |
|---|---|---|
Inconsistence in contact and surface definition |
!CONTACT 或 !EMBED 參照的表面群組或接觸配對不一致。 |
檢查接觸配對名稱、表面群組名稱,以及節點群組與表面群組是否存在。 |
error in contact state |
接觸狀態資料未參照有效的接觸面。 | 檢查接觸面定義、初始接觸狀態,以及啟用該接觸配對的步驟。 |
Math error in contact searching |
接觸點投影過程中發生奇異狀態。 | 檢查接觸面幾何、節點配置、初始穿透與極端變形。 |
Error in calculate DispIncreMatrix |
無法計算接觸面上的位移增量矩陣。 | 檢查接觸面元素的幾何是否退化,以及節點順序是否正確。 |
Error: cal_node_normal: invalid isin / Error: cal_node_normal: invalid isin_n |
計算節點法向量時,節點不在預期的接觸面位置。 | 檢查表面定義、接觸面方向與 slave/master 指定。 |
type of surface element not defined |
無法識別表面元素類型。 | 檢查接觸面指定的元素類型與面編號。 |
Allocation error: bktdb%buckets |
接觸搜尋所用 bucket 陣列的記憶體配置失敗。 | 重新檢討接觸面數量、網格密度、領域數與可用記憶體。 |
若接觸相關錯誤在讀入輸入資料後立即出現,首先應懷疑接觸配對或表面群組名稱不符。若錯誤在非線性反覆過程中出現,則可能是接觸面嚴重變形、初始穿透過大,或時間增量過大。
接觸類型與接觸演算法的選擇指引請參閱接觸與嵌入。
收斂與 Cutback 錯誤¶
當非線性靜態分析中的子步驟無法推進時,會發生收斂與 cutback 錯誤。常見原因包括接觸開始或分離、降伏快速進展、大變形、拘束不一致,以及載荷增量過大。
| 訊息 | 主要原因 | 處理方向 |
|---|---|---|
Number of successive cutback reached max number |
因收斂失敗而重複 cutback,已達連續失敗次數上限。 | 減小初始時間增量。重新檢討 AUTOINC_PARAM 中的 cutback 縮小率與連續失敗上限,並確認接觸、材料與邊界條件是否合理。 |
Number of substeps reached max number |
步驟完成前已達子步驟數上限。 | 增加 SUBSTEPS。減小載荷或時間增量。在非線性急遽變化的時間點加入輸出時刻,或將步驟拆分。 |
收斂失敗時,單純增加求解器最大反覆次數未必能解決根本原因。分階段施加載荷,並以簡化的接觸條件或材料非線性確認可重現性,有助於釐清原因。
邊界條件錯誤¶
當控制檔中的指定違反功能限制時,會發生邊界條件錯誤。對旋轉邊界條件而言,若像位移拘束一樣使用總量指定,便會發生錯誤。
| 訊息 | 主要原因 | 處理方向 |
|---|---|---|
Error: rotational boundary cannot be specified with total value |
旋轉拘束使用了總量指定(TOTAL=YES)。 |
旋轉拘束請使用增量指定。修改邊界條件定義並移除 TOTAL=YES。 |
fstr control file error : !BOUNDARY : rotational boundary cannot be specified with total value |
讀取控制檔時偵測到相同的限制違反。 | 檢查 !BOUNDARY 中的旋轉拘束行與 TOTAL 指定。 |
旋轉拘束與旋轉載荷也取決於元素類型與自由度配置。使用梁、殼等具有旋轉自由度的元素時,請同時確認邊界條件的自由度編號與目標節點群組。
領域分割(hecmw_part1)錯誤¶
hecmw_part1 的錯誤會以 HECMW-PART 開頭的代碼輸出。對領域分割,請依序檢查輸入檔是否存在、!PARTITION 的必要參數、分割方法與領域數的限制,以及使用者指定 part 檔的一致性。
| 代碼範圍或代表性代碼 | 主要原因 | 處理方向 |
|---|---|---|
| HECMW-PART-E0001–E0006 | 與檔案操作、檔名、EOF 或引數相關的基本錯誤。 | 檢查指定檔案是否存在、檔名長度、輸入檔結尾與命令列引數。 |
| HECMW-PART-E0101 | 控制檔包含無效 token。 | 檢查 !PARTITION 行與分割方向指定行的語法。 |
HECMW-PART-E0111 'TYPE' must not be omitted |
未指定 TYPE。 |
指定例如 !PARTITION, TYPE=NODE-BASED 的分割類型。 |
HECMW-PART-E0121 'METHOD' must not be omitted |
未指定 METHOD。 |
指定 METHOD=RCB、METHOD=PMETIS、METHOD=KMETIS 或其他適用方法。 |
HECMW-PART-E0131 'DOMAIN' must not be omitted |
未指定領域數。 | 將 DOMAIN 設為與 MPI 行程數對應的正整數。 |
HECMW-PART-E0134 'METHOD' is 'RCB', but 'DOMAIN' is not n-th power of 2 |
使用 RCB 方法時,領域數不是 \(2^n\)。 | 使用 RCB 時請將領域數設為 \(2^n\)。若需要任意領域數,可考慮以 METIS 為基礎的方法。 |
| HECMW-PART-E0201–E0206 | 分割類型、分割方法、元素類型、分割方向、領域數或重疊深度無效。 | 檢查 TYPE、METHOD、DOMAIN、DEPTH 與分割方向指定。 |
| HECMW-PART-E0301–E0331 | 分割後資料中的領域編號、節點數、元素數或相鄰領域數超出範圍。 | 檢查輸入網格、使用者指定 part 檔與分割數之間的一致性。 |
| HECMW-PART-E0601–E0606 | 使用者指定的 part 檔包含空領域、格式無效,或節點數、元素數、領域數不一致。 | 檢查 part 檔格式及其與網格的一致性。 |
HECMW-PART-W0401 EQUATION_BLOCK not found |
未找到 EQUATION_BLOCK 的警告。 |
若使用 MPC 的分析需要此區塊,請檢查相應區塊;若不需要則可繼續執行。 |
HECMW-PART-W0502 Log file for partitioner already initialized |
日誌初始化被呼叫超過一次。 | 通常可視為警告,並確認其後是否立即出現致命錯誤。 |
領域分割的概念與分割方法選擇請參閱領域分割。具體的平行執行程序請參閱執行指南。
記憶體配置錯誤¶
當無法配置陣列或工作區域時,會輸出記憶體配置錯誤。大型網格、接觸面很多的模型、直接法,以及輸出變數很多的分析都會增加記憶體使用量。
| 訊息 | 主要原因 | 處理方向 |
|---|---|---|
stop due to allocation error <FSTR_SOLID, TEMPERATURE> |
溫度陣列配置失敗。 | 檢查節點數、溫度自由度、熱應力設定與可用記憶體。 |
stop due to allocation error <FSTR_SOLID, GL> |
結構分析用全域陣列配置失敗。 | 重新檢討模型規模、領域數、分析類型與輸出項目。 |
Allocation error: bktdb%buckets |
無法配置接觸搜尋用 bucket 陣列。 | 重新檢討接觸面數量、網格密度、接觸配對數與領域分割。 |
ALLOCATION ERROR, ... |
無法配置直接法或排序處理的工作陣列。 | 考慮由直接法改用反覆法、調整領域數,或增加配置給工作的記憶體。 |
若懷疑記憶體不足,首先確認是否可將直接法改為反覆法。若必須使用直接法,則考慮縮小模型、減少輸出變數數量、調整領域數,或增加分配給工作的記憶體。
重新啟動錯誤¶
重新啟動錯誤可能由 !RESTART 語法不正確、缺少必要參數,或讀取檔案與目前分析條件不一致所造成。使用重新啟動功能時,寫出資料的分析與讀取資料的分析,其網格、領域數、分析類型與步驟資訊必須一致。
| 代碼 | 主要原因 | 處理方向 |
|---|---|---|
HECMW-UTIL-E0040 !RESTART: Invalid token in control file |
!RESTART 行的語法不正確。 |
檢查參數名稱、分隔符與值的格式。 |
HECMW-UTIL-E0041 !RESTART: Missing NAME |
未指定 NAME。 |
指定重新啟動資料名稱。 |
HECMW-UTIL-E0042 !RESTART: Missing IO |
未指定 IO。 |
加入讀取/寫出指定。 |
若重新啟動資料讀取失敗,除了重新啟動檔名,也要檢查寫出與讀取時的網格、MPI 領域數、步驟設定與重新啟動版本。重新啟動功能概要請參閱輸出與重新啟動。
相關項目¶
- 求解器與預處理 — 求解器相關錯誤的背景。
- 領域分割 —
hecmw_part1相關錯誤的背景。 - 輸出與重新啟動 — 確認重新啟動指定與輸出檔。
- 必要與選用相依函式庫 — METIS 等相依函式庫與建置設定。