輸出與重新啟動¶
分析結果原本存在於記憶體中,因此為了後處理、視覺化、復原與重新啟動,必須輸出為適當的檔案。由於不同用途所需的檔案格式、輸出項目與輸出頻率不同,FrontISTR 會依用途區分使用多種輸出系統。
FrontISTR 的輸出由三個系統構成:儲存分析值的結果檔案(!WRITE,RESULT)、用於視覺化的視覺化檔案(!WRITE,VISUAL),以及儲存分析狀態的重新啟動檔案(!RESTART)。結果檔案與視覺化檔案所包含的物理量,分別透過 !OUTPUT_RES 與 !OUTPUT_VIS 選擇。
功能概觀¶
輸出設定可分成以下三個軸來考慮,較容易整理。
| 軸 | 主要輸入 | 作用 |
|---|---|---|
| 輸出目的地 | !WRITE,RESULT、!WRITE,VISUAL、!RESTART |
決定將結果依用途儲存為哪一類檔案。 |
| 輸出變數 | !OUTPUT_RES、!OUTPUT_VIS |
決定結果檔案或視覺化檔案中包含的物理量。 |
| 輸出頻率 | FREQUENCY |
決定每隔多少步驟寫入檔案。 |
!WRITE,RESULT 啟用結果檔案,並以 !OUTPUT_RES 指定輸出變數。!WRITE,VISUAL 啟用視覺化檔案,並以 !OUTPUT_VIS 指定傳給視覺化的變數。兩者皆可透過 FREQUENCY 控制輸出間隔。!WRITE 是單一卡片,RESULT / VISUAL / FEMAP 可作為選擇輸出目的地的參數共存。
!OUTPUT_RES 與 !OUTPUT_VIS 的資料行列出輸出變數名稱及 ON / OFF。指定 GROUP 後,可將輸出對象限制於群組單位。具體輸入格式與可指定的資料行請參閱關鍵字參考。
!RESTART 與結果檔案及視覺化檔案不同,它儲存的是分析狀態本身。重新啟動檔案用於在分析中斷後,從相同狀態重新開始。
輸出的選擇方式¶
輸出首先依想確認的目的選擇。若要將數值用於後處理或其他分析,選擇結果檔案;若要使用視覺化工具確認形狀或分布,選擇視覺化檔案。若需要從分析中途重新開始,則另於一般結果輸出之外啟用重新啟動檔案。
| 目的 | 選擇的輸出 | 主要指定 |
|---|---|---|
| 儲存分析值,用於後處理、比較或其他分析 | 結果檔案 | !WRITE,RESULT 與 !OUTPUT_RES |
| 使用 ParaView 等確認分布與變形形狀 | 視覺化檔案 | !WRITE,VISUAL、!OUTPUT_VIS、!VISUAL |
| 從中途重新開始長時間分析 | 重新啟動檔案 | !RESTART |
| 降低輸出容量 | 僅輸出必要變數 | !OUTPUT_RES / !OUTPUT_VIS 的 ON / OFF 與 FREQUENCY |
大型分析若維持預設輸出並儲存所有步驟,結果檔案與視覺化檔案的容量會變大。僅將必要的物理量設為 ON,不需確認的量設為 OFF。若不需要細緻追蹤時間歷程,可增大 FREQUENCY 以拉大輸出間隔。
輸出變數可依「想確認的物理量」、「儲存目的地」、「頻率」的順序決定。例如,要在 ParaView 確認應力分布時,啟用視覺化檔案,並以 !OUTPUT_VIS 選擇 NSTRESS 或 NMISES。要將接觸力以數值進行後處理時,啟用結果檔案,並以 !OUTPUT_RES 選擇 CONTACT_NFORCE 等。
可輸出的物理量¶
輸出變數可分為結構分析、動力分析、熱分析、接觸分析、元素特有結果及識別用中繼資訊。下表整理主要變數名稱、類型與使用的分析類型。完整變數名稱清單與資料行格式請參閱 !OUTPUT_RES 與 !OUTPUT_VIS。
| 類別 | 變數名稱 | 類型 | 主要分析類型 | 說明 |
|---|---|---|---|---|
| 結構分析基本量 | DISP、ROT、REACTION |
向量 | 靜力分析、動力分析 | 位移、旋轉、節點反力。ROT 對具有旋轉自由度的元素有效。 |
| 應力 | NSTRESS、ESTRESS、ISTRESS |
對稱張量 | 結構分析 | 節點平均應力、元素應力、積分點應力。 |
| von Mises 應力/主應力 | NMISES、EMISES、PRINC_NSTRESS、PRINC_ESTRESS、PRINCV_NSTRESS、PRINCV_ESTRESS |
純量、向量 | 結構分析 | von Mises 應力、主應力值、主應力方向。 |
| 應變 | NSTRAIN、ESTRAIN、ISTRAIN |
對稱張量 | 結構分析 | 節點應變、元素應變、積分點應變。 |
| 塑性/熱應變 | PL_ISTRAIN、PL_ESTRAIN、TH_NSTRAIN、TH_ESTRAIN、TH_ISTRAIN |
純量、對稱張量 | 非線性結構分析、熱應力分析 | 等效塑性應變、熱應變。 |
| 主應變 | PRINC_NSTRAIN、PRINC_ESTRAIN、PRINCV_NSTRAIN、PRINCV_ESTRAIN |
純量、向量 | 結構分析 | 主應變值、主應變方向。 |
| 動力分析 | VEL、ACC |
向量 | 動力分析 | 節點速度、節點加速度。 |
| 熱分析 | TEMP |
純量 | 熱傳導分析 | 節點溫度。在熱分析的結果檔案與視覺化檔案中,以溫度場輸出。 |
| 接觸 | CONTACT_NFORCE、CONTACT_FRICTION、CONTACT_RELVEL、CONTACT_STATE、CONTACT_NTRACTION、CONTACT_FTRACTION |
向量、純量 | 接觸分析 | 接觸法向力、摩擦力、相對滑動速度、接觸狀態、單位面積接觸力。 |
| 梁元素 | BEAM_NQM |
12 成分值 | 含梁元素的結構分析 | 梁元素的截面內力。 |
| 識別/狀態 | NODE_ID、ELEM_ID、SECTION_ID、MATERIAL_ID、ELEMACT、YIELD_RATIO |
純量 | 結構分析、視覺化 | 節點、元素、截面、材料的識別資訊,元素啟用狀態與降伏比。ELEMACT 對啟用元素輸出 1,對停用(未啟用)元素輸出 0。 |
| 殼元素輔助資訊 | SHELL_LAYER、SHELL_SURFACE |
純量 | 含殼元素的結構分析 | 識別殼層別輸出與殼表面的輔助資訊。 |
預設情況下,DISP、ROT、NSTRESS、NMISES 為 ON。但實際是否輸出有意義的值,取決於分析類型、元素類型、材料模型及接觸設定。例如,VEL 與 ACC 用於動力分析,CONTACT_* 則用於接觸分析中產生接觸資訊的情況。
殼層別輸出¶
殼元素在厚度方向具有多個積分點或層,因此即使在同一元素內,應力與應變值也會隨層或表面而異。只使用一般節點平均值或元素值,很難區分該值屬於哪一層或哪一面。
將 SHELL_LAYER 設為 ON 後,會分別輸出疊層殼各層的 + 側與 - 側結果。輸出的應力與應變成分附有表示層編號與表面側的識別資訊,因此可用於評估厚度方向的應力分布與各層損傷。
SHELL_SURFACE 是用於識別殼元素上表面/下表面等表面的輔助資訊。視覺化殼層別結果時,啟用 SHELL_LAYER 與所需的應力/應變變數,並在視覺化工具端選擇對應目標層或表面的結果成分。
殼層別輸出會增加輸出成分數,因此疊層數較多的模型會增加檔案容量。建議只輸出必要的應力與應變變數。
輸出目的地¶
結果檔案與視覺化檔案的用途與儲存格式不同。同一分析可同時輸出兩者,也可只輸出其中一種。
結果檔案¶
結果檔案透過 !WRITE,RESULT 啟用。分析結果儲存為 FrontISTR / HEC-MW 的結果資料,用於數值後處理或其他分析的讀取。輸出變數以 !OUTPUT_RES 選擇。
!WRITE,RESULT 也實作為 !WRITE 卡片的 RESULT 參數,與視覺化及 FEMAP 輸出並列,作為輸出目的地選項。
結果檔案在結構分析中可儲存位移、應力、應變、反力、接觸資訊等,在熱分析中可儲存溫度場。每個步驟的輸出間隔以 FREQUENCY 指定。具體檔名、配置及執行後的確認方法請參閱執行指南。
結果檔案(副檔名 .res)是具有以下結構的文字資料。開頭依序為格式版本與註解,接著是全域變數,最後列出各節點與元素的輸出變數。
*fstrresult 2.0
*comment
<註解行>
*global
<全域變數數量>
<全域變數的自由度>
<全域變數名稱>
<全域變數值>
...
*data
<節點數> <元素數>
<節點資料數量> <元素資料數量>
<節點資料的自由度> ...
<節點資料名稱>
...
<節點資料值>
...
<元素資料的自由度> ...
<元素資料名稱>
...
<元素資料值>
...
記錄檔¶
記錄檔(副檔名 .log)是分析後必定輸出的摘要檔案。除各節點與元素的物理量外,還會輸出位移、應變、應力成分的最大/最小值。模態分析會輸出特徵值與特徵向量值。可透過 !WRITE 的 LOG 參數控制輸出內容。檔名與配置請參閱執行指南。
視覺化檔案¶
視覺化檔案透過 !WRITE,VISUAL 啟用。它會將網格與結果資料轉換為視覺化工具使用的格式後輸出。輸出變數以 !OUTPUT_VIS 選擇,格式與視覺化條件則以 !VISUAL 指定。
!WRITE,VISUAL 並非獨立關鍵字,而是實作為 !WRITE 卡片的 VISUAL 參數,與 !WRITE,RESULT / !WRITE,FEMAP 同級切換輸出目的地(fistr1/src/common/fstr_ctrl_common.f90 的 fstr_ctrl_get_WRITE)。
若要啟用視覺化,至少必須在 !VISUAL 卡片指定視覺化表面與輸出格式。以下是最小資料集。
surface_num 與 !surface 的指定不可省略。詳細格式與可用選項請參閱 !VISUAL。
主要視覺化格式如下。
| 格式 | 用途 |
|---|---|
| VTK | 用於 ParaView 等工具的視覺化。 |
| AVS(UCD) | 用於 AVS / UCD 格式的視覺化與資料交換。 |
| BMP | 將視覺化結果輸出為影像。 |
| NEU | 用於 FEMAP neutral 格式的資料交換。 |
視覺化檔案比結果檔案更容易由視覺化工具直接處理,但容量會隨選擇的格式與變數數量增加。大型模型應只透過 !OUTPUT_VIS 啟用顯示所需的變數。
重新啟動¶
重新啟動功能會儲存分析中斷時的內部狀態,以便下次執行時從相同狀態繼續計算。一般結果檔案是為後處理而輸出,重新啟動檔案則是儲存求解器繼續計算所需的狀態。
當 !RESTART, FREQUENCY=n 的 n 為正值時,以指定的步驟間隔寫出重新啟動檔案。n 為負值時,在執行開始時讀取既有重新啟動檔案,之後以絕對值 |n| 作為寫出間隔,繼續寫出重新啟動檔案。
結構分析的重新啟動會儲存目前步驟、子步驟、累計步驟、時間、時間增量、載荷歷程、位移、外力、各 Gauss 點的應力與應變、材料內部狀態變數、接觸狀態等。動力分析除了位移外,還會儲存重新開始時間積分所需的動態狀態,包括速度、加速度、應變能、目前時間、時間增量等。熱分析會儲存步驟編號、時間與溫度場,讀取時將溫度場復原為初始狀態。
靜力分析重新啟動的寫出時機與恢復行為¶
靜力分析(fstr_solve_NLGEOM)的重新啟動有兩種寫出路徑,恢復時的行為不同。
- 子步驟進行中寫出:在子步驟迴圈內,當
step_count成為FREQUENCY的倍數時寫出。記錄的時間資訊會儲存為「目前步驟的開始時間」,並附帶前一步驟的載荷清單。 - 步驟結束時寫出:每個載荷步驟的子步驟迴圈完成後立即寫出,不論是否為
FREQUENCY的倍數。記錄的時間資訊會儲存為「步驟結束時間」,並附帶該步驟的載荷清單。
讀取時,FrontISTR 會依記錄的「目前時間」與「基準時間」是否一致來判定步驟完成狀態(fstr_Restart.f90 的 fstr_read_restart)。
| 寫出時的狀態 | 恢復時的行為 |
|---|---|
| 子步驟進行中 | 從同一步驟的下一個子步驟繼續。承接寫出時的子步驟位置,執行剩餘的子步驟迴圈。 |
| 步驟結束 | 從下一步驟的第一個子步驟開始。將 cstep 增加 1,並將 substep=1 重設後繼續分析。 |
因此,即使 FREQUENCY 設定相同,恢復後的步驟編號與時間基準也會因寫出發生的時機(子步驟進行中/步驟結束)而不同。尤其是步驟結束時的寫出,與 FREQUENCY 設定無關,每一步驟結束時都一定會執行。
動力分析重新啟動的寫出時機與恢復行為¶
時間歷程動力分析的重新啟動同樣區分子步驟進行中的寫出與步驟結束時的寫出。子步驟進行中,當累計子步驟數 step_count 成為 FREQUENCY 的倍數時寫出;步驟結束時則不論 FREQUENCY,均在該步驟最後寫出。
讀取時,會從儲存的步驟編號、子步驟編號及累計子步驟數復原恢復位置。目前格式(restart_version >= 5)使用與靜力分析共通的標頭,儲存目前時間、時間增量、Newton 反覆統計及自動增量狀態。因此,即使動力分析使用多個 !STEP 及自動增量/cutback,恢復後也能承接時間基準與時間增量。舊格式的動力分析重新啟動檔案仍具有部分讀取相容性,但新分析應使用目前格式。
重新啟動時 !STEP 卡片的寫法¶
從重新啟動狀態恢復時,FrontISTR 會將 cnt 檔案中的 !STEP 卡片視為「恢復後要執行的步驟序列」,並始終從第一個(tot_step=1)依序處理。讀入的重新啟動資訊中的步驟編號只用於對齊畫面顯示的累計步驟編號,不會影響 cnt 的 !STEP 索引本身。此外,在目前格式中,cnt 各 !STEP 的 starttime 會在讀取重新啟動時統一加上基準時間,使時間軸以恢復時間為基點。
因此,重新啟動恢復用的 cnt 應依以下方針準備。
| 中斷方式 | cnt 中保留的 !STEP 範圍 |
|---|---|
| 子步驟進行中寫出(步驟尚未完成) | 將中斷的步驟保留在最前面。其後依序放置尚未執行的步驟。 |
| 步驟結束時寫出(步驟已完成) | 刪除已完成的步驟,從下一個要執行的步驟起排列在最前面。 |
無論哪一種情況,原則都是從 cnt 中刪除已完成的步驟。由於重新啟動時間會自動加到 starttime,cnt 端以 0 為起點(或使用相對步驟開始時間)撰寫即可。邊界條件、載荷等參照,只需在 cnt 中保留與留下的 !STEP 卡片相對應的部分。使用多個 !STEP 的動力分析重新啟動也遵循相同方針。
使用重新啟動的典型流程如下。
- 第一次執行時指定
!RESTART, FREQUENCY=n,寫出重新啟動檔案。 - 重新開始分析的執行中指定
!RESTART, FREQUENCY=-n。 - FrontISTR 在啟動時讀取重新啟動檔案,之後每
n步驟寫出新的狀態。
重新啟動檔案的命名、配置及執行時的指定方式請參閱執行指南。舊版格式也具有部分讀取相容性,但新分析應使用目前版本的格式。
相關項目¶
- 循序執行 — 分析執行時檔案配置與輸出確認的基本事項。
- !OUTPUT_RES、!OUTPUT_VIS — 指定輸出至結果檔案與視覺化檔案的變數。
- !WRITE — 啟用結果檔案、視覺化檔案、記錄輸出及指定輸出頻率(
RESULT/VISUAL/LOG/FEMAP參數)。 - !VISUAL — 指定視覺化表面與輸出格式(包含最小資料集範例)。
- !RESTART — 指定重新啟動檔案的讀取與寫出。
- 分析類型 — 各分析類型的主要結果項目。
- 接觸與嵌入 — 接觸輸出的意義與接觸狀態的處理。
- 步驟控制 — 與輸出步驟及時間點的關係。