Communitygithub.com

test1card/femis-skill

A Claude Agent Skill that turns an AI coding agent into a disciplined FEM/CAE analyst: governs engineering claims with execution-mode gates, GCI mesh-independence and V&V across Ansys, Abaqus, Nastran, OpenFOAM, COMSOL. Governance layer, not a solver driver.

相容平台Claude Code~Codex CLI~Cursor
npx skills add test1card/femis-skill

Ask in your favorite AI

Open a new chat with this agent skill pre-loaded.

說明文件

FEM / CAE — structural · thermal · CFD · multiphysics

This skill governs engineering claims — it does not drive solvers or sign off designs. It pairs with a solver driver / MCP (PyMAPDL, PyMechanical, an Abaqus / OpenFOAM driver, OASiS, a CAE MCP) that executes; this skill decides whether a result may be claimed, at what altitude, and when a human must decide.

Overview

Govern finite-element and CAE analysis end-to-end. Paired with an executor (PyMAPDL, PyMechanical, PyFluent, an Abaqus/OpenFOAM driver, a CAE MCP — see "governance layer, not the executor" below) the executor locates the installed solver, builds the deck/script, and launches headless/batch; this skill guides and audits the idealization, reads the log for convergence, inspects/parses results, and enforces professional practice (idealization → meshing → connections → solve controls → convergence → mesh independence → V&V) on every run. The methodology is solver-agnostic; worked depth here is Ansys / Simcenter / Thermal Desktop, with breadth across Abaqus, LS-DYNA, MSC/Simcenter Nastran, COMSOL, OpenFOAM, Fluent, CFX, STAR-CCM+, CalculiX, Code_Aster (see references/software-landscape.md).

Core principles (enforce as gates):

  1. No result is trusted until its discretization (mesh/time-step) error is addressedbounded and stated in ENGINEERING (e.g. last-refinement QoI change, or a single-mesh ZZ/SPR estimate), fully demonstrated with a GCI study in the asymptotic range for SIGNOFF; a single-mesh number reported without any error statement is never a result. Plus the convergence checks below.
  2. Converge the Quantity of Interest (QoI), not the peak — peaks at sharp corners/point loads/crack tips are singularities that never converge.
  3. Most error is born in pre-processing (idealization, BCs, connections) — front-load those decisions.
  4. Verification before validation; calibration ≠ validation — and an agent must not claim sign-off without run evidence.

This SKILL.md is the router. Depth lives in references/ — load a reference only when its topic is in play.

When to use

  • Structural (static/modal/buckling/nonlinear/explicit), thermal (steady/transient/radiation), CFD (RANS/LES, CHT), electromagnetics (low-/high-frequency), vibro-acoustics/NVH, multibody, and coupled multiphysics (thermo-mechanical, FSI, EM-thermal).
  • Failure & durability: fracture / damage-tolerance, fatigue (incl. vibration/spectral), composites, plasticity / shakedown / ratcheting, buckling & stability, crash / impact / drop.
  • Contact, thermal contact resistance, bolted/welded/rigid connections; meshing & mesh-independence (GCI); element/solver/unit selection.
  • Headless/batch solving and result parsing; optimization, calibration, inverse parameter ID / model updating.
  • V&V / UQ; substructuring / ROM; cryogenic / vacuum / spacecraft thermal.
  • Deciding what an agent can automate headless vs what a human must do (next section).

Not for: pure CAD modeling or problems better served by a closed-form hand calc.

★ Agent capability & headless-vs-human contract

Precisely who does what. Buckets: AGENT-HEADLESS (fully scriptable/batch, no GUI) · AGENT-VIA-API (Python/journal API, needs a session + license) · HUMAN-GUI (must be interactive at least once) · HUMAN-JUDGMENT (engineering decision the agent must not make alone) · LICENSE-GATED. Full per-platform detail: references/agent-automation-boundary.md.

OperationClassificationHow / why
CAD importAGENT-VIA-APIPyMAPDL/PyMechanical/run_journal import STEP/Parasolid
Geometry cleanup / heavy defeatureAGENT-VIA-API + HUMAN-JUDGMENTscriptable defeature/pinch; messy repair + what to defeature is judgment
MeshingAGENT-HEADLESS (Ansys) · SEED-IN-GUI (NX)PyMAPDL/PyMechanical mesh fully headless; NX .fem/.sim templates don't resolve in batch → seed once in GUI
Material create/assignAGENT-HEADLESSscriptable on all platforms; supply T-dependent data
Contacts / connectionsAGENT-HEADLESS (build) + HUMAN-JUDGMENT (type)defining is scriptable; bonded vs frictional / RBE2 vs RBE3 is an engineering choice
BCs & loadsAGENT-HEADLESSscriptable; agent must not invent the load case
Expose params for optimizationAGENT-HEADLESS (PyMAPDL *SET) · HUMAN-GUI (Workbench P#, NX Expressions, HEEDS tags)only PyMAPDL is GUI-free for parameterization
Solve (steady/transient/nonlinear)AGENT-HEADLESS + LICENSE-GATEDansys -b, nastran.exe, tmgnx, abaqus job=, fluent -g, OpenFOAM, cfx5solve -batch, starccm+ -batch
Electromagnetic solve (machines/RF/eddy)AGENT-VIA-API + LICENSE-GATEDPyAEDT (import ansys.aedt.core, non_graphical=True), COMSOL/getDP batch; ports/excitations/sweeps are engineering setup
Optimization / DOE / calibrationAGENT-HEADLESS (PyMAPDL+SciPy, optiSLang -b, HEEDS CLI) + GUI-AUTHOR-ONCEauthor the study/tags in GUI once, then run headless
Results extractionAGENT-HEADLESSPyDPF, pyNastran (.op2/.f06), .odb, SINDA .out, CGNS/VTK
Post images/plotsAGENT-HEADLESSpyvista off-screen, ParaView pvbatch
Correlation / model-update (MAC, node pairing)HUMAN-GUIinteractive test↔analysis node pairing is GUI work
Template / .sim / project authoring (NX)HUMAN-GUItemplate registry not initialized headless → pre-create a seed, then drive it
LicensingLICENSE-GATEDeach parallel solver instance consumes its own seat

An agent must NEVER auto-do: choose idealization / element / contact-type / BC alone (HUMAN-JUDGMENT) · accept a calibration knob pinned at its physical-corridor edge · report a singular peak or an unconverged result as a result · claim verification / mesh-independence / sign-off without the run evidence · perform an irreversible push/overwrite without authorization.

Pairing & executor contract

This skill is the governance layer, not the executor. Pair it with whatever drives the solver (PyMAPDL, PyMechanical, an Abaqus / OpenFOAM driver, OASiS, a CAE MCP): the executor runs; this skill governs the claim. Trust no solver output without provenance — a result is creditable only when the executor returns:

  • Run manifest (run_manifest.json, template scripts/run_manifest_template.json) — the traceability spine (NAFEMS R0033).
  • Solver name + exact version — read from the detected install's banner/-help, never assumed.
  • Input-deck hash + result-file hash (e.g. SHA-256 of the .inp/.dat/.cdb and of the .rst/.rth/.op2) — ties a number to the exact deck and result that produced it.
  • Command + flag evidence — the actual launch line, flags verified against that version (version-aligned-commands rule, Step 0).
  • Isolated workspace — a clean working dir; outputs written there, never overwriting a prior "final" without a superseded_by pointer.

A result lacking this provenance is a SMOKE/DEBUG artifact at best — phrase it as such (references/claim-templates.md).

Execution modes (pick one per task — sets the mandatory gates and what you may claim)

ModeUse whenMandatory gatesNever
SMOKEprove env/deck/solve/parse runsStep 0; solve completes; result file written and readableclaim any engineering number; tune anything
DEBUGfind a failure's causethe one decisive test for the symptom; connectivity gate if thermalpresent a diagnostic solve as a result
ENGINEERINGusable result + sanity checksunits; connectivity; reactions/heat/mass balance; convergence; QoI extraction; singularity checkclaim sign-off; report a singular peak
SIGNOFFdefensible deliverableall ENGINEERING + mesh & time-step independence (GCI, asymptotic range) + traceable report + error boundsskip any gate; hand-wave uncertainty

A SMOKE/DEBUG result is a pipeline/physics check, never an engineering conclusion — label it.

★ Pre-claim self-check — answer ALL before stating any engineering number

This is the gate that makes the skill trustworthy. Before you type a stress, temperature, frequency, margin, drag, or "it passes," answer these. If any answer is no / unknown, you do not have a result — you have a SMOKE/DEBUG output: say so and stop.

  1. Mode? Which execution mode am I in, and have its mandatory gates passed? (SMOKE/DEBUG ⇒ not an engineering conclusion.)
  2. Units? Consistent system verified (1g-mass / hand-calc check); density not unit-corrupt?
  3. Discretization error addressed? Mesh and time-step error bounded and stated (GCI for SIGNOFF; single-mesh ZZ/SPR estimate for ENGINEERING)? A lone single-mesh number is never a result.
  4. Singularity excluded? Is the QoI at a corner / point-load / crack-tip artifact? Read away or linearize before quoting.
  5. Balance checked? Reaction = applied; heat/mass/energy balance within tolerance; convergence from the residual history, not the exit code?
  6. Allowable named? Is there a margin vs a NAMED criterion / design code — not a bare number?
  7. Human-judgment gate crossed? Did I silently choose a load case, contact type, allowable, defeature, or sign-off? If yes — STOP and escalate (references/escalation-examples.md).

Then phrase the result with the matching template in references/claim-templates.md. The agent never claims sign-off without run evidence, and never self-authorizes an engineering decision. Exact solver flags / API calls are themselves a claim — confirm them per the version-aligned-commands rule in Step 0.

Step 0 — ALWAYS first: environment discovery

Never assume a version or path. Find what's installed/licensed, then confirm platform + physics + 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   # PHYSICAL cores

Linux: ansysNNN -b, nastran, abaqus, simpleFoam, fluent -g; check $LM_LICENSE_FILE, nproc.

Version-aligned commands (rule): never emit a solver command, flag, or API call you have not verified exists in the detected release — versions rename flags and drift APIs. Confirm against the installed version's -help/docs before relying on it, especially for ENGINEERING/SIGNOFF.

Canonical workflow (run in order)

  1. Objective + QoI — the scalar that drives the decision (margin, deflection, frequency, peak T, drag). Not "run the model."
  2. Analysis type — static/modal/buckling/thermal/CFD/coupled; linear vs nonlinear (material? large-deflection? contact? turbulence?).
  3. Idealize (most consequential) — 1D/2D/3D; symmetry only if geometry and loads and BCs are symmetric; defeature irrelevant features. → references/meshing-convergence.md.
  4. Materials — correct constitutive model; temperature-dependent properties; at cryo use ∫α(T)dT. → references/material-modeling.md.
  5. Mesh — element order/family, refinement at concentrations, quality gate. → references/meshing-convergence.md.
  6. Connections & contact. → references/mechanical-connections.md, references/thermal-contact-resistance.md.
  7. BCs & loads — remove only the rigid-body modes appropriate to the model's dimensionality/type (an unconstrained 3D solid has 6; 2D, axisymmetric, shell-only and cyclic-symmetric models differ); loads over realistic areas (never point loads/constraints → singularities); inertia relief for free bodies. → references/advanced-methods.md.
  8. Solve controls — solver type, cores, substeps + tolerances. → references/solver-numerics.md.
  9. Verify — equilibrium, mesh/time-step independence, convergence history. → references/vv-uq.md.
  10. Validate — vs test / hand-calc / NAFEMS benchmark (calibration ≠ validation).
  11. Post & report — right measure, averaged-vs-unaveraged check, margins, stated assumptions.

Consistent units (pick ONE system; solvers are unit-free)

SystemLengthForceStress/EMassDensity (steel)g
SI (m)mNPakg7850 kg/m³9.81 m/s²
mm-t-s (common CAE)mmNMPatonne7.85e-9 t/mm³9810 mm/s²

Density is the silent corruptor: wrong-unit density passes statics but wrecks every dynamic/explicit/transient-thermal result. MAPDL /UNITS is metadata only. Verify with a 1g mass check or a hand-calc natural frequency.

Element selection & mesh quality (depth: references/meshing-convergence.md)

  • Quadratic (mid-side nodes) for stress/curved geometry, esp. tets — avoid linear TET4 for stress (constant-strain → over-stiff, slow stress convergence; acceptable only as filler well away from the QoI). Linear for explicit/large-deformation. (Shear locking proper afflicts fully-integrated linear quads/hexes in bending — parasitic shear; fix with reduced integration, incompatible modes, or quadratic — not the same defect as TET4's constant-strain stiffness.) Modern quadratic solids resolve mild bending with ~1 element through thickness as a starting point (curvature-driven — confirm by convergence); linear elements need several, and accuracy-critical bending wants ≥2 quadratic.
  • Shell if thickness/length ≲ 1/10–1/20; solid for 3D stress/through-thickness; beam for slender. Account for shell/beam offsets (they induce real moments).
  • Locking/hourglass: linear full-integration shear-locks (~+34% stiffer in the standard bending test — magnitude problem-dependent); linear reduced-integration hourglasses (over-soft, needs control); use quadratic / enhanced-strain / B-bar / mixed u–P (near-incompressible).
  • Quality gate (before solving) — thresholds depend on physics: structural FEA prioritizes Jacobian (negative = fatal), skewness, and aspect ratio (high aspect is often fine for bending/shells); CFD is far stricter on orthogonal quality (>0.2, near-wall), skewness (reject >0.95), and growth ratio (≤1.2–1.5). Common starting guide: skewness ≤0.5 · orthogonal quality >0.2 · Jacobian 1–10 · aspect ratio <~20; never place a transition in a high-gradient region (per-physics depth: references/meshing-convergence.md).

Mesh independence — GCI (ASME V&V 20 / Roache) — required for SIGNOFF

≥3 systematically refined meshes (ratio r≥1.3); track one QoI f (f₁ finest). p = ln((f₃−f₂)/(f₂−f₁))/ln(r); f_exact ≈ f₁+(f₁−f₂)/(rᵖ−1); GCI_fine = Fs·|ε|/(rᵖ−1), ε=(f₂−f₁)/f₁, Fs=1.25 (≥3 grids)/3.0 (2). Asymptotic check GCI₂₃/(rᵖ·GCI₁₂)≈1. Accept when QoI change <~1–2% and GCI_fine ≤~1–3%. The closed form above assumes an equal refinement ratio r; for unequal ratios solve the observed order p iteratively (Celik/Roache) — scripts/gci.py does this. Runnable: scripts/gci.py. Same for time-step studies. (V&V/UQ depth: references/vv-uq.md.)

Single-mesh alternatives & order-refinement: recovery-based a-posteriori error estimation (Zienkiewicz–Zhu / SPR, effectivity index → 1) estimates error from ONE solve (asymptotically exact, not a guaranteed bound) and drives adaptivity; p-/hp-refinement raises element order (a fixed-mesh convergence study; p-refinement is exponential for smooth fields, and properly graded hp — fine low-order at the singularity, high order in the smooth region — recovers exponential rates for isolated singularities); goal-oriented (dual-weighted-residual) control targets the QoI directly. → references/meshing-convergence.md.

Connections & thermal contact (depth: references/mechanical-connections.md, references/thermal-contact-resistance.md)

  • Bonded/glue (small motion, linear) · no-separation / frictionless / frictional (nonlinear) · RBE2 rigid (adds stiffness — over-stiffens, common error) vs RBE3 distributed (no added stiffness — prefer for load spread).
  • Bolts: preload Fi≈0.7×proof, T=K·F·d (K≈0.2); VDI 2230; preload scatter ±3% (ultrasonic) to ±35% (dry torque); CTE mismatch changes preload at cryo/thermal. Welds: spot/seam CWELD/CFAST; hot-spot/structural stress for fatigue, never raw peak toe stress.
  • Thermal contact: Q=h_c·A·ΔT; vacuum deletes the gas path, and h_c drops ~1 order as temperature falls (e.g. ~200 K → ~20 K) and rises with contact pressure — never assume perfect contact in vacuum/cryo. MAPDL CONTA17x+TCC; Simcenter coupling; TD contactor.

Solver, parallelism, convergence (depth: references/solver-numerics.md)

  • Cores = physical cores; DMP > SMP for scaling (small models saturate ~4–8 cores; >4 needs HPC packs). Direct sparse for ill-conditioned/nonlinear/modal (keep in-core; out-of-core ~10× slower); iterative PCG for large well-conditioned 3D solids (don't loosen tolerance to force convergence — fix the model).
  • Nonlinear: read the residual history, never the exit code; Newton-Raphson (+ line search); arc-length/Riks for snap-through; auto-time-step + bisection; converge force+displacement (energy). Decode pivots: negative/zero = singular (under-constraint/lost contact/bad props).
  • Time integration: implicit Newmark/HHT-α (unconditional) for dynamics; explicit central-difference (Δt≤L_min/c, mass-scaling <~5%, hourglass energy <5–10%) for impact; backward-Euler for thermal.

Structural integrity & failure (depth: dedicated references)

  • Fracture / damage tolerance: LEFM (K, G=K²/E′) vs EPFM (J where K fails); interaction-integral K/T-stress, J domain-integral with the contour path-independence gate; XFEM vs VCCT vs CZM vs auto-remesh growth; read J from the integral, not the singular tip stress; crack growth Paris/Walker/NASGRO. → references/fracture-mechanics.md.
  • Fatigue / durability: stress-life (mean-stress Goodman/Gerber/SWT) · strain-life (Coffin-Manson, Neuber/Glinka notch) · rainflow + Miner · multiaxial critical-plane · vibration/spectral fatigue (Dirlik) from a random-vibration PSD · TMF · FKM. Never fatigue a singular peak. → references/fatigue-durability.md.
  • Composites: first-ply vs progressive-damage (CDM) vs last-ply; characteristic-length fracture-energy regularization for mesh objectivity; delamination (CZM/VCCT, B-K); sandwich (face wrinkling); draping → as-built angles/CTE; hot-wet/cold-dry knockdowns. → references/composites-analysis.md.
  • Plasticity & inelastic assessment: shakedown vs ratcheting (Bree); limit-load; ASME elastic-plastic route; stress linearization & categorization (P_m/P_L/P_b/Q/F → S_m code limits); forming/springback/FLD. → references/plasticity-inelastic-assessment.md.
  • Buckling / stability: LBA (upper bound) → GNIA/GMNIA with imperfection seeding + knockdown factors (NASA SP-8007); snap-through via arc-length; local/global/crippling interaction; a single symmetry model misses antisymmetric/complementary buckling modes — model the full structure or cover the symmetric + antisymmetric sets. → references/buckling-stability.md.
  • Explicit dynamics / crash / impact / drop: contact for explicit (single-surface / segment SOFT=2 / eroding), erosion + energy bookkeeping, hourglass-control type, mass-scaling strategy, Lagrangian/SPH/ALE/CEL choice, blast/drop/penetration; energy-balance + added-mass gates = the explicit analog of GCI. → references/explicit-dynamics-impact.md.

Dynamics, NVH & acoustics (depth: references/dynamics-nvh-acoustics.md, references/acoustics-fem.md)

  • Modal: extract to ≥80–90% cumulative effective mass per direction + range ~1.5–2× f_excite; free-free → the dimensionality-correct rigid-body-mode count ≈0 (6 for a 3D solid; fewer in 2D/axisymmetric/shell models); residual vectors ON for force/stress recovery; prestressed modal carries static stress (tension raises freq).
  • Random (PSD): Q=1/(2ζ); Miles GRMS≈√(π/2·f_n·Q·ASD); design to 3σ. Shock: SRS (Q=10). Base excitation: large-mass (~10⁶×) or enforced motion.
  • Acoustics/vibro-acoustic: interior FEM cavity vs exterior BEM radiation; ≥6 elements per wavelength at f_max (a minimum floor, not a guarantee — pollution/dispersion error grows with frequency and domain size; confirm by convergence); coupled wet modes; duct/muffler TMM, absorption/impedance, infinite-elements vs PML → references/acoustics-fem.md. Rotordynamics: Campbell + gyroscopic, unbalance/ISO balance grades, bearing oil-whirl/whip, log-dec/API stability, torsional (critical speeds ≠ zero-speed modal).

Thermal & coupling (depth: references/thermal-and-coupling.md)

  • Steady vs transient (Biot Bi=hL/k<0.1 → lumped). Transient Δt has accuracy, solver-formulation, and mesh-coupled limits: an Fo=αΔt/L² accuracy bound and a non-obvious lower limit — too-small Δt on a coarse mesh oscillates with Crank–Nicolson/θ-schemes → refine the mesh, don't shrink Δt (the formulation nuance, incl. MAPDL, is in references/thermal-and-coupling.md). Backward-Euler default.
  • Radiation T⁴-nonlinear: absolute T (TOFFST/TABS), solar α ≠ IR ε, enclosure row-sum→1, radiosity over-relaxation. Steep cp(T)/phase change: enthalpy + Full (not "Quasi") nonlinear formulation. Energy balance closes <1%.
  • Spacecraft/vacuum: MLI effective emittance ε*~0.01–0.05 (dominant uncertainty); ±10–20 K margin; TVAC correlation. Coupling: .rthLDREAD,TEMP (needs TREF+CTE); meshes interpolate; the transient gradient drives distortion — validate per-sensor, not region-mean.

CFD (depth: references/cfd.md)

  • Turbulence: RANS k-ω SST (general default), k-ε (free shear), transition γ-Reθ; LES/DES/DDES/SBES when RANS is inadequate (cost ↑↑). Near-wall y+: wall functions y+≈30–300 or wall-resolved y+<1 — avoid the buffer layer (~5–30) for standard wall functions; all-y+ / scalable / automatic wall treatments tolerate buffer-zone y+ but you must confirm the model's wall treatment and post-check it; ≥10–15 inflation layers; estimate first-cell height up front.
  • Mesh: poly/hex/prism; check skewness & orthogonal quality; mesh independence via GCI. Discretization: 2nd-order upwind + bounded schemes; transient Courant/CFL target. Convergence: scaled residuals ~1e-3…1e-6 but monitor integrated quantities (drag/lift/ṁ/ΔP) and imbalances <~1% — residuals alone lie.
  • Headless: Fluent fluent 3ddp -g -t N -i jou; OpenFOAM text dicts + Allrun (simpleFoam/pimpleFoam); CFX cfx5solve -batch; STAR-CCM+ starccm+ -batch macro.java; SU2 SU2_CFD. Coupling: CHT, FSI one-way vs two-way (watch added-mass instability), mapping via preCICE/system coupling.

Electromagnetics (depth: references/electromagnetics.md)

  • Pick the formulation by frequency: electro-/magnetostatics; low-frequency eddy-current/transient (skin depth δ=√(2/ωμσ) — mesh ≥2 elements into the skin depth; A-V / T-Ω); high-frequency full-wave (Nédélec edge elements — nodal elements give spurious modes; wave/lumped ports & S-parameters; radiation via ABC/PML/FE-BI). Method: FEM (closed/inhomogeneous) vs MoM/BEM (open radiation/antennas) vs FDTD (broadband).
  • Applications: electric machines (torque via Maxwell-stress/co-energy, cogging, Bertotti core loss, sliding mesh), power electronics, antennas/RF, EMI/EMC. Coupling: EM→thermal (Joule/induction/dielectric/microwave heating), EM→structural (Lorentz/Maxwell-stress, magnetostriction, motor NVH), piezo/MEMS. Headless: PyAEDT, COMSOL batch, getDP/Elmer/openEMS.

Multiphysics, substructuring, optimization (depth: references/advanced-methods.md, references/optimization-calibration.md, references/ml-surrogates-and-rom.md)

  • Substructuring/CMS (Craig-Bampton fixed-interface, free-interface) + ROM (Guyan, modal truncation, Krylov, state-space) for large/repeated assemblies, dynamic reduction, multibody flex bodies, digital twins.
  • Multibody: rigid + flexible (modal/CMS), joints, FMI/FMU co-sim, loads recovery (modal stress recovery / quasi-static superposition).
  • Coupled process simulation: battery electrochem+thermal+runaway, fuel cells, additive manufacturing (Goldak / inherent-strain), welding (thermal→metallurgical→mechanical), composite curing, injection molding, casting; sequential vs staggered vs monolithic coupling + field mapping. → references/coupled-process-simulation.md.
  • Optimization: topology (SIMP p=3, density/sensitivity filter = min member size, manufacturing/AM constraints; a topology result is a concept — interpret then re-solve the verified geometryreferences/topology-optimization.md), shape, sizing; DOE → surrogate → optimize → re-solve the optimum on full FE. Calibration / inverse ID incl. transient T(t): native in optiSLang & TMG Correlation, else wrap the solver in an optimizer with a time-series residual. Enforce the calibration-objective gate in references/optimization-calibration.md (fit the QoI not an aggregate; reject edge-pinned knobs).
  • ML surrogates & data-driven ROM (Kriging/GP, PCE, POD/PODI, DMD, neural operators/PINNs, hyper-reduction DEIM/ECSW, certified reduced-basis) for DOE/optimization/digital-twins — but a surrogate predicts only inside its training envelope: "solve vs predict" — re-solve the optimum/critical case on the full FE model before any ENGINEERING/SIGNOFF claim.references/ml-surrogates-and-rom.md.

V&V, UQ & governance (depth: references/vv-uq.md)

Verification (solving equations right: MMS order test, NAFEMS LE/T benchmarks, GCI) precedes validation (right physics vs experiment: ASME V&V 20 u_val²=u_num²+u_input²+u_D², |E|≤u_val — a resolution floor for detecting model error, not a binary pass/fail). Calibration ≠ validation (validate on held-out data). UQ: aleatory vs epistemic; Morris→Sobol sensitivity; MC/PCE propagation; Bayesian calibration/identifiability; scale rigor to consequence (V&V 40). Model credibility — score it factor-by-factor: NASA-STD-7009 CAS (8-factor, min-rollup → weakest factor governs) / Sandia PCMM (6-element; reports min/avg/max — does not force a single governing score); lifecycle governance via SPDM + NAFEMS QSS/ESQMS; domain margins per the governing standard (e.g. ECSS FoS + model-uncertainty-factor). Report provenance (NAFEMS R0033). → references/vv-uq.md.

V&V — sanity gates to run automatically

GateCriterion
EquilibriumΣreactions = Σapplied per axis, < ~0.1–1% (FSUM/PRRSOL; SPCFORCES)
Unit-gravity / mass1g reaction = Σ(ρ·V)·g within ~1% (catches unit/density errors)
Free-free modaldimensionality-correct rigid-body-mode count near 0 (< ~1e-4 Hz): 6 for an unconstrained 3D solid, fewer for 2D/axisymmetric/shell models
3-2-1 + uniform ΔTsingle-material → thermal stress ≈ 0 (over-constraint detector)
Thermal/flow connectivityall QoI bodies in one conducting component reaching the BC; symptom of failure = bodies stuck at initial T. → references/ansys-thermal-contact-pitfalls.md
Convergenceresiduals down ≥3–4 orders; nonlinear force tol met; CFD imbalances <1%
Mesh independenceGCI gate above
Singularity detectorpeak QoI rising monotonically with refinement → artifact; read 1–2 elements away / linearize (ASME)
Benchmark / hand-calcwithin a few % of Roark / Timoshenko / NAFEMS
Visual plausibilityrender the field (contour / deformed / streamlines): smooth where expected, jumps only at real interfaces, no checkerboard pressure or constraint hot-spots; write a field.png artifact
Margin & allowablesturn the QoI into a margin of safety vs a NAMED criterion / design code (yield/UTS, ASME / Eurocode / AISC, FKM, buckling KDF, fatigue allowable) — a stress number without an allowable is not a result

BC discipline: under-constraint → singular; over-constraint → spurious reactions/stiffness. For modal/buckling a single symmetry model misses complementary (antisymmetric) modes — model the full structure, or combine the symmetric and antisymmetric (and cyclic-harmonic) solutions. Place BCs ≥1 characteristic dimension from regions of interest.

Software landscape & cross-solver (depth: references/software-landscape.md)

Tool-by-tool use/license/headless capability/formats for the popular CAE stack — Ansys, Abaqus, LS-DYNA, MSC/Simcenter Nastran, OptiStruct, COMSOL, Fluent/CFX/STAR-CCM+/OpenFOAM/SU2, Adams/Motion, HFSS/Maxwell, and open-source (CalculiX, Code_Aster, FEniCSx, Elmer, Kratos, Gmsh, ParaView, preCICE) — plus a "which tool for which job" guide and interoperability (STEP, .bdf/.dat, .inp, .cdb/.rst/.rth, CGNS, VTK, MED, UNV).

Output contract

Solver logs/results are large — never dump them into context. Parse with targeted extraction; return only QoI, convergence verdict, GCI/equilibrium, and a small table. Write artifacts per mode (template scripts/run_manifest_template.json): run_manifest.json (traceability spine — NAFEMS R0033), qoi.csv, checks.md, assumptions.md, failure_triage.md (on failure). Provenance discipline: every solve writes a manifest and appends to a runs_index.csv; never leave two "final" results without a superseded_by pointer.

Failure triage (symptom → cause → decisive test → fix)

SymptomLikely causeDecisive testFix
Transient thermal bodies stay exactly at initial Tisolated body / contact has no TEMP DOFsingle-anchor transient; check pair KEYOPT(1)author thermal contacts fresh / KEYOPT(1)=2; LINK33 network on defeatured import
Steady thermal singular, no .rthisolated body / no BC reaches a componentCNCHECK,DETAIL + union-find on deck parseconnect the component / re-anchor at measured T
Changed contacts but result unchangedmesh not rebuilt (contact elems are mesh)elem count before/afterClearGeneratedData() then GenerateMesh()
Peak stress rises with refinementsingularityrefine ×2–3 → plateau?read ~1 char-dim away / fillet / sub-model / linearize
CFD "converged" but wrongresiduals low, integrals driftingmonitor drag/ṁ/imbalancerun to integral plateau + imbalance <1%
Reaction/heat/mass balance failsunder/over-constraint, lost contact, wrong loadFSUM vs appliedfix BC/contact
PyDPF empty result from valid .rstansys-dpf-core ↔ server mismatchmesh non-empty?match versions; /FCOMP,RST,0
Negative/zero pivot (nonlinear/static)rigid-body mode / lost contact / over-soft materialCNCHECK; check constraints & contact statusconstrain the DOF; stabilize/seat contact; fix props
Contact status flips every iteration (chatter)penalty too stiff / no damping / marginal gapwatch contact-status historylower FKN, add contact stabilization damping, refine pinball
Negative-volume / error termination (explicit)element over-distorted at high straininspect deformation at the failure stepadd erosion criterion, refine, reduce mass-scaling, hourglass control
Modes missing / extra near-zero (modal)mechanism / unconnected part / repeated rootsfree-free RBM count; connectivityconnect parts; expand the mode count past the cluster
GCI not asymptotic (p far from formal order)grids not in asymptotic regime / noisy QoIadd a finer grid; check p≈ theoreticalrefine systematically (r≥1.3); pick a smoother QoI
Radiation/enclosure won't convergeview-factor row-sum ≠ 1 / radiosity step too largecheck enclosure closure & emissivitiesclose the enclosure; over-relax; smaller load step

Ansys headless thermal-contact traps (CONTA174 KEYOPT(1)=0 thermally inert; -dis stragglers; batch non-convergence silently skips) → references/ansys-thermal-contact-pitfalls.md. Headless PyMechanical/Workbench gotchas → references/pymechanical-headless.md. Per-platform commands → references/platform-commands.md.

Common mistakes

MistakeFix
Single-mesh resultMesh-independence + GCI first; state the verdict.
Trusting a singular peakConverge QoI, read away, or linearize.
-np = logical coresUse physical cores; HPC packs for DMP >4.
"Converged" by exit code / CFD residuals onlyRead residual history; monitor integrated quantities + imbalance.
Perfect/bonded thermal contact in vacuum/cryoUse finite h_c.
Reusing structural contacts in a thermal solveCONTA174 KEYOPT(1)=0 → zero conduction; author fresh.
RBE2 everywhereOver-stiffens — RBE3 to spread load without stiffness.
Forgetting CTE in thermal stressDefine ALPX/A+TREF or thermal stress is silently zero.
Engineering (not true) stress–strain in plasticityConvert; extend past UTS via a hardening law, not raw data.
Single-mode hyperelastic fit / flat cryo extrapolationMulti-mode test data; T-dependent tables over the full range.
Calibrate then claim validationValidate on held-out data; reject edge-pinned knobs.
Reporting a stress with no allowableState a margin of safety vs a NAMED criterion / design code.
Trusting an ML surrogate outside its training envelopeRe-solve the optimum / critical case on the full FE model.
Linear buckling load taken as the real capacityApply a knockdown factor / run GNIA with seeded imperfections.
Fatiguing the singular peak stressUse a fixed extraction (hot-spot) or notch correction — never the raw peak.
Pasting .out/.f06 into chatParse with targeted extraction; return QoI only.

References

  • references/claim-templates.md — per-mode (SMOKE/DEBUG/ENGINEERING/SIGNOFF) result-phrasing templates + reusable contract phrases (no-autonomous-sign-off, solve-vs-predict, calibration≠validation, singular-peak, solver-flag-certainty).
  • references/escalation-examples.md — worked refuse/escalate cases (contact type, single-mesh peak, calibration boundary, surrogate optimum, load basis, sign-off, singularity, solver flags, equilibrium, defeature, non-convergence).
  • references/claims-validation.md — sourcing map for the router's load-bearing claims (claim → authoritative standard/textbook/paper → verdict; 53 claims; not an audit certificate).
  • references/provenance-coverage.md — generated coverage table for [AUTHOR-VERIFIED] / [DOCS-ONLY] / [VERIFIED-web] tags across references/*.md.
  • references/meshing-convergence.md — element tech, quality metrics, GCI, singularities, stress linearization.
  • references/material-modeling.md — constitutive models (elastic/plastic/hyperelastic/visco/creep/damage/composite), data sources, calibration.
  • references/solver-numerics.md — equation/eigen solvers, nonlinear, time integration, parallelism, diagnostics.
  • references/mechanical-connections.md — contact types/formulations & tuning, RBE2 vs RBE3, bolts (VDI 2230)/welds (hot-spot fatigue)/bushings/joints, with cited numbers.
  • references/driving-live-sessions.md — driving live solver sessions: inspect→step→re-inspect, debug-on-failure, getting data out of API sessions.
  • references/comsol.md — COMSOL automation: JPype/Java API (tags-first), .mph offline introspection, batch, numeric results.
  • references/thermal-contact-resistance.md — TCR/TCC physics, value tables, cryo, correlations.
  • references/thermal-and-coupling.md — transient thermal, radiation, phase change, spacecraft/vacuum, thermo-mechanical coupling.
  • references/dynamics-nvh-acoustics.md — modal/harmonic/random/shock, NVH, vibro-acoustics, rotordynamics (unbalance/bearings/stability/torsional), flutter.
  • references/acoustics-fem.md — duct/muffler transfer-matrix, cut-on, absorption/impedance, infinite-elements vs PML, aeroacoustics basics, acoustics-FEM mistakes.
  • references/cfd.md — turbulence, y+/near-wall, CFD meshing, discretization, convergence, multiphase, compressible, combustion, rotating mesh, adjoint, turbulence-UQ, CHT/FSI, headless run.
  • references/electromagnetics.md — formulation-by-frequency (electro/magnetostatics, eddy-current, full-wave/edge-elements/S-params), machines/RF/EMI, EM-thermal & EM-structural coupling, PyAEDT headless.
  • references/specialized-analyses.md — overview / quick-pointers (submodeling, hyperelastic, cyclic, creep); the deep failure disciplines have their own dedicated files (next).
  • references/fracture-mechanics.md — LEFM/EPFM, K/G/J, interaction-integral & T-stress, J path-independence gate, XFEM/VCCT/CZM, crack growth (Paris/NASGRO), mixed-mode.
  • references/fatigue-durability.md — stress-life/strain-life, mean-stress, Neuber/Glinka, rainflow+Miner, multiaxial critical-plane, spectral (Dirlik) vibration fatigue, TMF, FKM.
  • references/composites-analysis.md — FPF/progressive-damage(CDM)/LPF, fracture-energy regularization, delamination CZM/VCCT, sandwich, draping/as-built, hot-wet/cold-dry.
  • references/plasticity-inelastic-assessment.md — shakedown/ratcheting (Bree), limit-load, ASME elastic-plastic route, stress linearization & categorization, forming/FLD, creep-plasticity.
  • references/buckling-stability.md — LBA/GNIA/GMNIA, knockdown factors (NASA SP-8007), imperfection seeding, snap-through (arc-length), local/global/crippling interaction.
  • references/explicit-dynamics-impact.md — explicit contact, erosion, hourglass control, mass-scaling, Lagrangian/SPH/ALE/CEL, blast/drop/penetration, energy gates.
  • references/advanced-methods.md — substructuring/CMS/ROM, multibody, optimization/topology, submodeling, loads & BC catalog (incl. inertia relief).
  • references/optimization-calibration.md — optimizer/calibration tool map, transient-T(t) calibration, the calibration-objective gate.
  • references/topology-optimization.md — SIMP/RAMP density methods, filtering & min-length-scale, manufacturing/AM constraints, stress/buckling-constrained, level-set/lattice; the interpret-then-re-solve discipline.
  • references/ml-surrogates-and-rom.md — projection & data-driven ROM, hyper-reduction, certified reduced-basis, ML surrogates (GP/PCE/neural-operators/PINNs), digital twins; the solve-vs-predict rule.
  • references/coupled-process-simulation.md — process-coupled physics: battery/runaway, fuel cells, additive manufacturing, welding, composite curing, injection molding, casting; coupling strategies & field mapping.
  • references/vv-uq.md — verification/validation/UQ, ASME V&V 10/20/40, NAFEMS, benchmarks, governance.
  • references/software-landscape.md — popular CAE tools: use/license/headless/formats + which-tool-for-which-job + interoperability.
  • references/agent-automation-boundary.md — per-operation agent-headless vs human-GUI contract across every platform.
  • references/platform-commands.md — MAPDL/Mechanical/Nastran/NX-Open/OpenTD command cheat-sheet.
  • references/pymechanical-headless.md — PyMechanical/Workbench headless gotchas.
  • references/ansys-thermal-contact-pitfalls.md — Ansys headless thermal-contact traps (CONTA17x KEYOPT(1) inert, -dis stragglers, silently-skipped non-convergence) [AUTHOR-VERIFIED].
  • scripts/gci.py — Grid Convergence Index. scripts/yplus.py — y+ first-cell height. scripts/units_check.py — consistent-units + 1g mass check. scripts/rainflow.py — ASTM E1049 rainflow + Miner damage. scripts/mac.py — Modal Assurance Criterion + COMAC. scripts/hourglass_check.py — explicit-dynamics energy-quality gate. scripts/provenance_coverage.py — generate/check the provenance coverage table. scripts/run_skill_evals.py — validate the activation/behavior eval set (evals/prompts.json) + score live agent responses. scripts/live_eval.py — optional live A/B harness (skill-on vs skill-off via the Anthropic SDK or any agent callable) that measures behavior change; results in evals/RESULTS.md. scripts/run_manifest_template.json — manifest template.
  • examples/ — small checked examples for GCI known values, unit-density corruption, and single-mesh claim refusal.

相關技能