calculix-modal-analysis
GitHubCalculiX模态分析技能,用于提取固有频率、检查共振裕度及可视化振型。通过MCP工具执行FREQUENCY步骤,解析结果并渲染浏览器中的振型,适用于开源求解器的自由振动特征值分析。
触发场景
安装
npx skills add Cai-aa/CAE-Agent-Hub --skill calculix-modal-analysis -g -y
SKILL.md
Frontmatter
{
"name": "calculix-modal-analysis",
"description": "Workflow skill for CalculiX modal analysis (*FREQUENCY steps) — natural frequencies and mode shapes via the CalculiX MCP. read_results returns the frequency table; export_results with mode=N renders that mode shape in the browser viewer. Use when an agent must extract natural frequencies, check resonance margins, or visualize mode shapes on an open-source solver."
}
CalculiX Modal Analysis
Free-vibration eigenanalysis on a CalculiX deck: a *FREQUENCY step requests N
eigenpairs; ccx prints the eigenvalue table and per-mode eigenvectors to the
.dat, so both frequencies and mode shapes parse from text (no .frd needed).
When to Use
Use when an agent must extract natural frequencies, check resonance/vibration
margins, or visualize mode shapes on a CalculiX model. Driven by the same MCP
tools as static runs (run_solver → read_results → export_results).
Not for: static stress/deflection (use calculix-fem), transient/dynamic
response (not yet supported), or sizing optimization (calculix-sizing-optimization).
Workflow
- Confirm the deck has
*DENSITYunder its*MATERIAL— frequencies need mass; without density ccx fails the eigenvalue solve. - Confirm the step is
*FREQUENCYwith the wanted mode count on its data line, and*NODE PRINT, NSET=<all>/Uso eigenvectors reach the.dat. No load is applied (free vibration); keep the*BOUNDARYclamp set. run_solver_tool— submit the deck. Note: a*FREQUENCYrun writes a header-only.sta(no increments in an eigenvalue solve); success accepts a non-empty.datinstead, so this is normal, not a failure.read_results_tool— returnsfrequenciesas[{mode, eigenvalue, freq_rad_s, freq_hz}]andn_modes(a doubly symmetric section gives degenerate pairs — f1 = f2 — which is expected).export_results_toolwithmode=N— writesresult_mesh.jsonholding that mode's eigenvector as a stress-free displacement field; the viewer renders the mode shape with its usual auto-scaled deformation.
Rules
- Units follow the
.inp(commonly mm-t-s-MPa → frequencies in Hz). - Eigenvectors are mass-normalized; their magnitude carries no physical displacement meaning — only the shape does. The viewer auto-scales.
- Fully-integrated C3D8 hexes shear-lock in bending: ccx frequencies run ~5-10% ABOVE the Euler-Bernoulli hand calc. For tight margins, refine the mesh through the thickness (or switch element type) and report the gap.
- Hand-calc check for a clamped-free bar: f_n = (beta_n^2 / 2pi) * sqrt(E I / (rho A L^4)), beta_1 = 1.8751.
Example
MCP/CalculiX/examples/cantilever_modal.inp is the public cantilever benchmark
with a 5-mode *FREQUENCY step. ccx gives f1 = f2 ~ 502 Hz (degenerate bending
pair on the square section) vs the Euler-Bernoulli hand calc ~ 464 Hz (+8%,
C3D8 shear locking). Mode 1 exports straight into the viewer as the classic
half-sine bend.
版本历史
- f19c0ef 当前 2026-08-27 18:39


