FEM / CAE — 結構 · 熱傳 · CFD · 多物理場
此技能管理工程聲明 — 它不驅動求解器或簽署設計。 它與執行求解器的驅動程式/MCP(如 PyMAPDL、PyMechanical、Abaqus/OpenFOAM 驅動程式、OASiS、CAE MCP)配對;執行器負責執行;此技能決定一個結果是否可以被聲稱、在什麼層級,以及何時需要人類來決定。
概述
端到端地治理有限元素和 CAE 分析。與執行器配對(PyMAPDL、PyMechanical、PyFluent、Abaqus/OpenFOAM 驅動程式、CAE MCP — 參閱下方「治理層,非執行器」)執行器定位已安裝的求解器、建立輸入檔/腳本,並啟動無頭/批次模式;此技能則引導並審核理想化過程、讀取日誌以檢查收斂性、檢查/解析結果,並在每次運行中強制執行專業實務(理想化 → 網格化 → 連接 → 求解控制 → 收斂性 → 網格獨立性 → V&V)。此方法論與求解器無關;此處深入探討 Ansys / Simcenter / Thermal Desktop,並廣泛涵蓋 Abaqus、LS-DYNA、MSC/Simcenter Nastran、COMSOL、OpenFOAM、Fluent、CFX、STAR-CCM+、CalculiX、Code_Aster(參閱 references/software-landscape.md)。
核心原則(作為閘門強制執行):
- 在未解決其離散化(網格/時間步長)誤差之前,沒有任何結果是可信的 — 在 ENGINEERING 模式下必須界定並說明(例如,最後一次細化後 QoI 的變化,或單一網格的 ZZ/SPR 估計),在 SIGNOFF 模式下必須完全證明其在漸近範圍內進行了 GCI 研究;未附帶任何誤差說明的單一網格數值永遠不是一個結果。再加上下方的收斂性檢查。
- 收斂的是關注重點量 (QoI),而非峰值 — 尖角、點載荷、裂縫尖端處的峰值是永遠不收斂的奇異點。
- 大多數誤差源自前處理(理想化、邊界條件、連接)— 應優先處理這些決策。
- 確認在驗證之前;校準 ≠ 驗證 — 且代理在沒有運行證據的情況下不得聲稱簽署。
此 SKILL.md 是路由器。 詳細內容位於 references/ 目錄中 — 僅在相關主題被涉及時才載入參考資料。
何時使用
- 結構(靜力/模態/挫曲/非線性/顯式)、熱傳(穩態/暫態/輻射)、CFD(RANS/LES、CHT)、電磁學(低/高頻)、振動聲學/NVH、多體,以及耦合多物理場(熱-力、FSI、電磁-熱)。
- 破壞與耐久性: 斷裂/損傷容限、疲勞(包括振動/頻譜)、複合材料、塑性/安定/棘輪、挫曲與穩定性、碰撞/衝擊/墜落。
- 接觸、熱接觸電阻、螺栓/焊接/剛性連接;網格劃分與網格獨立性(GCI);元素/求解器/單位選擇。
- 無頭/批次求解與結果解析;最佳化、校準、逆參數識別/模型更新。
- V&V / UQ;子結構/ROM;低溫/真空/太空船熱控。
- 決定代理可以自動化哪些無頭操作 vs. 哪些必須由人類執行(下一節)。
不適用於: 純 CAD 建模或更適合使用封閉形式手算的問題。
★ 代理能力與無頭 vs. 人類合約
精確定義誰做什麼。分類:AGENT-HEADLESS(完全可腳本化/批次,無 GUI)· AGENT-VIA-API(Python/Journal API,需要 Session + 授權)· HUMAN-GUI(必須至少互動一次)· HUMAN-JUDGMENT(代理不能單獨做出的工程決策)· LICENSE-GATED。每個平台的完整詳細資訊:references/agent-automation-boundary.md。
| 操作 | 分類 | 方式 / 原因 |
|---|---|---|
| CAD 匯入 | AGENT-VIA-API | PyMAPDL/PyMechanical/run_journal 匯入 STEP/Parasolid 檔案 |
| 幾何清理 / 大量特徵抑制 | AGENT-VIA-API + HUMAN-JUDGMENT | 可用腳本進行特徵抑制/擠壓;混亂的修復 + 抑制什麼是需要判斷的 |
| 網格劃分 | AGENT-HEADLESS (Ansys) · SEED-IN-GUI (NX) | PyMAPDL/PyMechanical 可完全無頭劃分網格;NX 的 .fem/.sim 模板無法在批次中解析 → 需在 GUI 中播種一次 |
| 材料建立/指派 | AGENT-HEADLESS | 所有平台皆可腳本化;提供與溫度相關的資料 |
| 接觸 / 連接 | AGENT-HEADLESS (建立) + HUMAN-JUDGMENT (類型) | 定義可腳本化;黏接 vs. 摩擦 / RBE2 vs. RBE3 是工程選擇 |
| 邊界條件與負載 | AGENT-HEADLESS | 可腳本化;代理不得自行發明負載工況 |
| 為最佳化暴露參數 | AGENT-HEADLESS (PyMAPDL *SET) · HUMAN-GUI (Workbench P#、NX Expressions、HEEDS 標籤) | 只有 PyMAPDL 可以無需 GUI 進行參數化 |
| 求解(穩態/暫態/非線性) | AGENT-HEADLESS + LICENSE-GATED | ansys -b, nastran.exe, tmgnx, abaqus job=, fluent -g, OpenFOAM, cfx5solve -batch, starccm+ -batch |
| 電磁求解(電機/射頻/渦流) | AGENT-VIA-API + LICENSE-GATED | PyAEDT (import ansys.aedt.core, non_graphical=True)、COMSOL/getDP 批次;端口/激勵/掃頻是工程設置 |
| 最佳化 / DOE / 校準 | AGENT-HEADLESS (PyMAPDL+SciPy, optiSLang -b, HEEDS CLI) + GUI-AUTHOR-ONCE | 在 GUI 中編寫研究/標籤一次,然後無頭執行 |
| 結果提取 | AGENT-HEADLESS | PyDPF、pyNastran (.op2/.f06)、.odb、SINDA .out、CGNS/VTK |
| 後處理圖片/圖表 | AGENT-HEADLESS | pyvista 離屏渲染、ParaView pvbatch |
| 相關性 / 模型更新(MAC、節點配對) | HUMAN-GUI | 互動式的測試↔分析節點配對是 GUI 工作 |
模板 / .sim / 專案編寫 (NX) | HUMAN-GUI | 模板註冊表在無頭模式下未初始化 → 預先建立一個種子,然後驅動它 |
| 授權 | LICENSE-GATED | 每個並行求解器實例消耗一個席位 |
代理絕不能自動執行: 獨自選擇理想化 / 元素 / 接觸類型 / 邊界條件 (HUMAN-JUDGMENT) · 接受一個固定在其實際物理邊界邊緣的校準旋鈕 · 將奇異峰值或不收斂的結果報告為結果 · 在沒有運行證據的情況下聲稱驗證 / 網格獨立性 / 簽署 · 未經授權執行不可逆的推送/覆蓋。
配對與執行器合約
此技能是治理層,非執行器。 將其與任何驅動求解器的工具配對(PyMAPDL、PyMechanical、Abaqus/OpenFOAM 驅動程式、OASiS、CAE MCP):執行器運行;此技能管理聲明。 不要信任沒有來源的求解器輸出 — 一個結果只有在執行器返回以下內容時才可信:
- 運行清單 (
run_manifest.json,模板scripts/run_manifest_template.json) — 追溯性的主幹 (NAFEMS R0033)。 - 求解器名稱 + 精確版本 — 從檢測到的安裝程式的標題/
-help讀取,絕不假設。 - 輸入檔雜湊 + 結果檔案雜湊(例如,
.inp/.dat/.cdb和.rst/.rth/.op2的 SHA-256)— 將一個數值與產生它的精確輸入檔和結果連結起來。 - 命令 + 標誌證據 — 實際的啟動命令,根據該版本驗證標誌(版本對齊命令規則,第 0 步)。
- 隔離的工作區 — 一個乾淨的工作目錄;輸出寫入其中,絕不覆蓋先前的「最終」結果,除非帶有
superseded_by指標。
缺少此類來源的結果至多是一個 SMOKE/DEBUG 產物 — 應這樣表述(references/claim-templates.md)。
執行模式(每個任務選擇一個 — 設定強制性閘門以及您可以聲稱的內容)
| 模式 | 使用時機 | 強制性閘門 | 絕不能 |
|---|---|---|---|
| SMOKE | 證明環境/輸入檔/求解/解析能夠運行 | 第 0 步;求解完成;結果檔案已寫入且可讀取 | 聲稱任何工程數值;調整任何參數 |
| DEBUG | 找出失敗原因 | 針對症狀的一個決定性測試;如果是熱傳問題則需連接性閘門 | 將診斷性求解呈現為結果 |
| ENGINEERING | 可用的結果 + 合理性檢查 | 單位;連接性;反作用力/熱/質量平衡;收斂性;QoI 提取;奇異性檢查 | 聲稱簽署;報告奇異峰值 |
| SIGNOFF | 可辯護的 deliverables | 所有 ENGINEERING 的檢查 + 網格與時間步長獨立性(GCI、漸近範圍) + 可追溯的報告 + 誤差界限 | 跳過任何閘門;對不確定性含糊其辭 |
SMOKE/DEBUG 的結果是管道/物理檢查,絕不是工程結論 — 應標記清楚。
★ 聲稱前的自我檢查 — 在陳述任何工程數值之前,必須回答所有問題
這是讓此技能值得信賴的閘門。在您輸入一個應力、溫度、頻率、安全係數、阻力或「它通過了」之前, 回答這些問題。如果任何一個答案是否 / 未知,您就沒有一個結果 — 您只有一個 SMOKE/DEBUG 輸出:請這樣說並停止。
- 模式? 我處於哪個執行模式,並且其強制性閘門是否已通過?(SMOKE/DEBUG ⇒ 不是工程結論。)
- 單位? 是否已驗證一致的系統(1g-質量 / 手算檢查)?密度是否單位損壞?
- 離散化誤差是否已解決? 網格和時間步長的誤差是否已界定並說明(SIGNOFF 需要 GCI;ENGINEERING 需要單一網格的 ZZ/SPR 估計)?一個孤立的單一網格數值永遠不是結果。
- 是否已排除奇異性? QoI 是否位於一個角落 / 點載荷 / 裂縫尖端的人為產物?在引用之前應讀取遠場值或進行線性化處理。
- 是否檢查過平衡? 反作用力 = 施加的力;熱/質量/能量平衡在容差範圍內;收斂性來自殘差歷史,而非退出代碼?
- 是否已指明容許值? 是否存在相對於一個已命名的準則 / 設計規範的安全係數 — 而非一個赤裸的數字?
- 是否跨越了人類判斷的閘門? 我是否在未告知的情況下選擇了一個負載工況、接觸類型、容許值、特徵抑制或簽署?如果是 — 停止並上報(
references/escalation-examples.md)。
然後使用 references/claim-templates.md 中的匹配模板來表述結果。代理在沒有運行證據的情況下絕不能聲稱簽署,也絕不能自我授權工程決策。 精確的求解器標誌 / API 呼叫本身也是一種聲明 — 根據第 0 步的版本對齊命令規則確認它們。
第 0 步 — 始終優先執行:環境探索
絕不假設版本或路徑。找出已安裝/已授權的內容,然後確認平台 + 物理場 + QoI。
Get-ChildItem "C:\Program Files\ANSYS Inc" -Recurse -Filter "ANSYS*.exe" -ErrorAction SilentlyContinue | Select FullName # MAPDL/Mechanical/Fluent/CFX
Get-ChildItem "C:\Program Files\Siemens" -Recurse -Include "nastran.exe","run_journal.exe","tmgnx.cmd","ugraf.exe" -ErrorAction SilentlyContinue
Get-ChildItem "C:\Program Files" -Recurse -Filter "abq*.bat" -ErrorAction SilentlyContinue # Abaqus; also `which icem`, OpenFOAM `foamVersion`
$env:ANSYSLMD_LICENSE_FILE; $env:LM_LICENSE_FILE
(Get-CimInstance Win32_Processor | Measure-Object NumberOfCores -Sum).Sum # 物理核心數
Linux: ansysNNN -b, nastran, abaqus, simpleFoam, fluent -g; 檢查 $LM_LICENSE_FILE, nproc。
版本對齊命令(規則): 絕不發出一個您尚未驗證存在於檢測到的版本中的求解器命令、標誌或 API 呼叫 — 版本會重新命名標誌並使 API 發生偏移。在依賴某個命令/標誌/API 之前,請對照已安裝版本的 -help/文檔進行確認,尤其是在 ENGINEERING/SIGNOFF 模式下。
標準工作流程(按順序執行)
- 目標 + QoI — 驅動決策的純量(安全係數、變形量、頻率、峰值溫度、阻力)。不是「執行模型。」
- 分析類型 — 靜力/模態/挫曲/熱傳/CFD/耦合;線性 vs 非線性(材料?大變形?接觸?湍流?)。
- 理想化 (影響最大) — 1D/2D/3D;僅當幾何形狀和負載和邊界條件都對稱時才使用對稱;抑制無關特徵。→
references/meshing-convergence.md。 - 材料 — 正確的本構模型;與溫度相關的屬性;低溫時使用 ∫α(T)dT。→
references/material-modeling.md。 - 網格 — 元素階次/族、在應力集中處細化、品質閘門。→
references/meshing-convergence.md。 - 連接與接觸。→
references/mechanical-connections.md、references/thermal-contact-resistance.md。 - 邊界條件與負載 — 僅移除與模型的維度/類型相適應的剛體模式(一個不受約束的3D 實體有 6 個;2D、軸對稱、僅殼體和循環對稱的模型則不同);在真實的面積上施加負載(絕不能有點負載/約束 → 奇異性);自由體使用慣性釋放。→
references/advanced-methods.md。 - 求解控制 — 求解器類型、核心數、子步 + 容差。→
references/solver-numerics.md。 - 確認 — 平衡、網格/時間步長獨立性、收斂歷史。→
references/vv-uq.md。 - 驗證 — 與測試 / 手算 / NAFEMS 基準進行比對(校準 ≠ 驗證)。
- 後處理與報告 — 正確的度量、平均化 vs. 未平均化檢查、安全係數、已說明的假設。
一致的單位(選擇一個系統;求解器是無單位的)
| 系統 | 長度 | 力 | 應力/楊氏模數 | 質量 | 密度(鋼) | g |
|---|---|---|---|---|---|---|
| SI (m) | m | N | Pa | kg | 7850 kg/m³ | 9.81 m/s² |
| mm-t-s(常見 CAE) | mm | N | MPa | 噸 | 7.85e-9 t/mm³ | 9810 mm/s² |
密度是無聲的破壞者: 錯誤單位的密度在靜力學中可能通過,但會破壞所有動態/顯式/暫態熱傳結果。MAPDL 的 /UNITS 僅是中繼資料。透過一個 1g 質量檢查或一個手算的固有頻率來驗證。
元素選擇與網格品質(詳細內容:references/meshing-convergence.md)
- 二次元素(有中間節點)用於應力和彎曲幾何,特別是四面體 — 避免對應力使用線性 TET4(常應變 → 過剛,應力收斂慢;僅可作為遠離 QoI 的填充元素接受)。線性元素用於顯式/大變形。(剪力鎖死正確地影響了彎曲情況下完全積分的線性四邊形/六面體元素 — 寄生剪力;透過減縮積分、不協調模式或二次元素來修正 — 這與 TET4 的常應變剛度是不同的缺陷。)現代的二次實體元素可以處理中等的彎曲,以約 1 個元素穿過厚度作為起點(曲率驅動 — 透過收斂確認);線性元素需要好幾個,而對精度要求高的彎曲則需要 ≥2 個二次元素。
- 殼體如果厚度/長度比 ≲ 1/10–1/20;3D 應力/穿過厚度則用實體;細長結構用梁。說明
…
[為翻譯而截斷]