AIエージェントはFEMの特異点に気づけるのか? 最大応力を信じてはいけない問題:Codex + CalculiX
はじめに:FEMの特異点問題とは
CAE解析では最大応力を見ることが多いです。しかし、完全固定端、荷重点、鋭角コーナーなどでは、メッシュを細かくするほど応力が上がることがあります。これはFEMの構造解析でよく遭遇する特異点問題です。モデル内のある特定の点や線において、応力やひずみなどの物理量が無限大(理論上、数学的に発散)になってしまう現象のことです。
このような箇所の最大応力をそのまま設計判断に使うと、結果を読み誤る可能性があります。
重要なのは、その最大応力がどこに出ているのか、メッシュを細かくしたときに収束するのか、実物形状にはフィレットがあるのか、といったことを確認することです。
今回は、Codex + CalculiXであえてフィレットなし形状のままLブロックの強度解析を行い、AIエージェントがこのようなFEMの特異点やメッシュ依存性に気づけるのか、どのような応力評価方法を提案し、どこまで実行できるのかを試してみました。注目は、特異点だとどうやって気づくのか、気づいたとしたらどのようにポスト処理して結果を報告するのか、という点です。
解析内容
FreeCADで以下のような形状を作成しました。右端を固定して、左上の面に荷重をかけます。このケースではL字の折れ曲がり部に応力集中すると予想されます。ピン角があるので特異点になる可能性が高いです。(意図的にそのような形状を作成しています)

使用するもの
- Codex App + GPT5.5 (AIエージェント)
- CalculiX (CAEソルバー)
- Gmsh (メッシュ作成用)
- meshio (メッシュ変換用)
- build123d (ジオメトリ作成用)
- FreeCAD (手作業によるジオメトリ作成用)
プロジェクトディレクトリにてAGENTS.mdとCAEワークフローも設定しています。
解析計画を立ててもらう
以下のプロンプトで解析計画を立ててもらいます。
今回はプランモードにしません。プランモードを使うとCAEワークフローの設定がうまく反映されないことがあるため、通常モードで「計画を作成する」ように指示しています。
projects\Lblock\cases\blk\geometry\blk-Body.stepを用いて強度解析を実施。材料はSS400とする。X=50の面を固定、Z=60の面に-X方向に100N負荷。材料はSS400。応力が30MPa以下か確認するのが目的。まずは解析計画を作成。
作成された解析計画
計画段階ですでに特異点の可能性を指摘しています。たとえば、解析計画には以下のような内容が含まれていました。
拘束端、荷重端、鋭角コーナーでは局所的な特異応力またはメッシュ依存ピークが生じ得るため、全体最大値と、端部を除いた代表領域の応力を分けて確認する。
フィレットがない鋭角部は、物理的にもFEM的にも応力集中または特異性を持つ可能性がある。
メッシュを細かくしたとき、評価対象の代表応力が大きく発散しないこと。
このあたりは、かなりCAEらしい計画になっていると思います。
単に「最大応力が30 MPa以下か確認する」だけではなく、最大応力の出る位置やメッシュ依存性も確認対象に入っています。少なくとも解析計画の段階では、FEMの特異点問題を考慮に入れていることがわかります。
※解析計画の全文は末尾参照。
解析(1回目)
計画は問題なさそうなのでそのまま実行して得られたレポート(抜粋)は以下の通り。
最終メッシュは代表サイズ2.0 mmのC3D10メッシュです。結果は数字だけを見ると合格ですが、かなりギリギリで余裕がありません。
- 最大von Mises応力:29.598 MPa
- 30 MPaとの差:0.402 MPa
- 判定:30 MPa以下
- レビュー状態:Accepted with limitations
結論に以下の記載があります。
L字内角のフィレット、荷重導入条件、固定条件を実物に合わせて再確認し、必要なら局所メッシュをさらに細かくした追加検証を行うべきである。
指摘の通りで、この時点では「特異点っぽいからダメ」とすぐに決めるのではなく、メッシュを変えたときにどうなるかを見る必要があります。
GPT5.5は言語モデルのはずですが、フィレットの有無まで指摘に入れているのが少々驚きです。STEP形状や解析条件、メッシュ処理の過程から、鋭角部があることをうまく拾っているのかもしれません。

1回目の解析では、メッシュサイズを変えた確認も行っています。

(中略)

解析(2回目)
1回目のレポートを受けていくつかの判断があると思いますが、ここでは結論にあったメッシュ細分化を実施してもらいます。
レポートの結論にあるように局所メッシュをさらに細かくした追加検証を実施。別ケースとして実施。
今回はメッシュの局所細分化を実施してくれました。

予想通りメッシュ細分化に伴い応力は上昇。1回目では29.598 MPaでしたが、局所細分化後は42.864 MPaまで上がりました。確認目標の30 MPa以下は満足しません。
最大応力位置は、1回目と同じくL字内角近傍でした。局所細分化によって、同じ領域の応力をより高く拾うようになったと考えられます。

レポートには「特異点」という単語は入っていないものの、実質的に特異点と判断している内容が含まれています。

1回目と2回目の比較
1回目と2回目を比較すると、以下のようになります。
| ケース | 全体サイズ mm | 局所サイズ mm | 最大von Mises応力 MPa | 最大変位 mm |
|---|---|---|---|---|
| 一様2.0 mm | 2.0 | - | 29.598 | 0.03193 |
| 全体3.0 mm / 局所1.0 mm | 3.0 | 1.0 | 42.864 | 0.03190 |
最大変位はほとんど変わっていないので、解析モデル全体の挙動が大きく変わったわけではありません。しかし、最大応力は大きく上がっています。最大応力をそのまま信じると危ない理由です。
AIエージェントは特異点に気づけたのか?
今回の結果だけで言えば、Codexはかなり気づけていたと思います。解析計画の時点で、拘束端、荷重端、鋭角コーナーの局所ピークに言及していました。また、全体最大値と代表領域の応力を分ける方針や、メッシュ依存性を確認する方針も入っていました。
解析レポートでも、L字内角のフィレットを再確認すべきこと、必要なら局所メッシュをさらに細かくした追加検証を行うべきことが書かれていました。「最大応力が30 MPa以下なので問題ありません」とだけ言って終わったわけではありません。
ただし、AIエージェントが記載した注意点を読んで追加検証に進めるかどうかは、まだ人間側の判断に依存しています。
まとめ
今回は、Codex + CalculiXでLブロックの強度解析を行い、AIエージェントがFEMの特異点やメッシュ依存性に気づけるのかを確認しました。
1回目の解析では、最大von Mises応力は29.598 MPaで、確認目標の30 MPa以下を満足しました。しかし、メッシュサイズを細かくすると最大応力は上がり続けており、2.0 mmメッシュの時点で30 MPaにかなり近づいていました。
そこで最大応力位置近傍を1.0 mmに局所細分化して再解析したところ、最大von Mises応力は42.864 MPaとなり、30 MPa以下を満足しない結果になりました。
Codexは、解析計画の段階から特異点やメッシュ依存性に言及していました。レポートでも追加検証の必要性を示していました。その意味では、AIエージェントはFEMの特異点にある程度気づけていたと言えそうです。
AIエージェントはかなり良いところまで見てくれます。ただし、AIエージェントが警鐘を鳴らしても、それを無視してしまっては意味がありません。結果を設計判断に使ってよいかどうかは、やはり人間の工学的判断が重要です。
この結果を受けて、次の記事では「フィレットなし形状のまま評価しなければならない場合、応力をどう扱うか」を試してみます。
付録
作成された解析計画(全文)
Analysis Plan: L-block strength check
1. Objective
geometry/blk-Body.stepのLブロック形状を用いて線形静解析を行い、SS400> 材として荷重時の応力が 30 MPa 以下に収まるか確認する。主判定値は、SS400材の von Mises 応力とする。ただし、拘束端、荷重端、鋭角> コーナーでは局所的な特異応力またはメッシュ依存ピークが生じ得るため、全体最> 大値と、端部を除いた代表領域の応力を分けて確認する。
2. Physical Problem Definition
- 対象: Lブロック状の単一ソリッド部品。
- 解析種別: 3次元ソリッドの微小変形・線形静解析。
- 固定条件:
X = 50 mmの面を完全固定する。- 荷重条件:
Z = 60 mmの面に、合力 100 N を-X方向へ作用させる。- 評価目的: 荷重による最大 von Mises 応力が 30 MPa 以下かを確認する。
3. Unit System
STEPの単位定義は millimetre である。解析では以下の N-mm-MPa 系を使う。
- 長さ: mm
- 力: N
- 応力・弾性係数: MPa = N/mm^2
- 質量・密度: 今回の静解析では不要
4. Real-World Setup and Modeling Interpretation
本計画では、
X = 50 mmの端面が剛な治具または十分剛な固定部に締結され、> 変位3成分が拘束されるモデルと解釈する。Z = 60 mmの上面には外力 100 N > が面全体に一様な表面荷重として作用するものとする。荷重面積はメッシュ作成後に節点または要素面から計算し、面圧または分配節点荷> 重の合力が 100 N になるようにする。荷重面の一部が固定面の稜線と接する場> 合、その稜線付近は局所ピークの評価から分けて扱う。
5. Geometry Assumptions
- 使用形状:
projects/Lblock/cases/blk/geometry/blk-Body.step- STEP単位: mm
- 読み取り範囲: 概ね
X = 0..50,Y = -30..0,Z = 0..60- 形状は単一閉ソリッドとして扱う。
- STEP内の微小な丸め誤差、例:
1.3e-14mm 程度の座標値はゼロとして扱> う。- フィレットがない鋭角部は、物理的にもFEM的にも応力集中または特異性を持つ> 可能性がある。
6. Material Model
材料はSS400とし、線形弾性・等方性材料としてモデル化する。
- Young率: 205000 MPa
- Poisson比: 0.30
- 塑性は考慮しない。
今回の目的値 30 MPa はSS400の一般的な降伏応力より十分低い水準であるため、> 30 MPa以下確認には線形弾性解析で十分と判断する。後続の結果で30 MPaを明確> に超える場合は、塑性解析ではなく、まず境界条件・荷重伝達・局所特異性・メッ> シュ収束を確認する。
7. Element Type Candidates and Final Selection
候補:
- 3Dソリッド要素: 対象が厚みを持つブロック形状であり、板厚に対する中立面モ> デル化が明確でないため適切。
- シェル要素: 厚肉ブロック形状で、板厚方向の代表面定義がないため採用しな> い。
- ビーム要素: 断面・軸線による1D近似ではLブロックの局所応力確認に不十分な> ため採用しない。
- 平面応力・平面ひずみ: 幅方向の3D形状と荷重面・固定面を直接扱うため採用し> ない。
最終選定:
- 一次選定: CalculiXの2次四面体ソリッド要素
C3D10- 理由: STEP形状からGmshで四面体メッシュを作成しやすく、1次四面体より曲げ> ・応力勾配の表現に有利であるため。
- 代替: メッシュ品質やソルバー安定性に問題がある場合は、まず
C3D4で接> 続・境界条件の診断モデルを作成し、その後C3D10に戻して本判定を行う。8. Boundary Conditions
- 固定面:
X = 50 mmの面上の節点をセット化し、Ux = Uy = Uz = 0とす> る。- 節点選定許容差: 幾何読み取りとメッシュ生成誤差を考慮し、座標判定には小さ> い許容差を使う。
- 固定面の反力合計を確認し、荷重合力 100 N と釣り合うことを検証する。
9. Loading Method
- 荷重面:
Z = 60 mmの面。- 方向:
-X- 合力: 100 N
- 実装方針: 荷重面を物理面または節点セットとして抽出し、合力が100 Nになる> ように等価節点荷重または一様面圧を与える。
- 推奨: 可能であれば要素面への一様圧力相当として与える。実装上の確実性を優> 先する場合は、荷重面節点に面積重み付き等価節点荷重を配分する。
10. Contacts or Constraints
- 接触: なし。単一部品の連続体として解析する。
- タイ拘束・MPC: なし。
- 剛体リンク: 今回は使わない。荷重を一点集中させず、面全体に分布させる。
11. Mesh Strategy
- Gmsh Python APIでSTEPを読み込み、3D四面体メッシュを生成する。
- 面セット:
- fixed face:
X = 50 mm- loaded face:
Z = 60 mm- 初期メッシュサイズ候補:
- 粗: 5 mm 程度
- 中: 3 mm 程度
- 細: 2 mm 程度
- 応力集中が予想されるL字内角、固定面端、荷重面端ではメッシュ細分化を検討> する。
- 最終判定では、少なくとも2水準のメッシュで代表応力が大きく変わらないこと> を確認する。
12. Expected Result Quantities
- 変位:
- 最大変位量
- 変形方向が荷重方向と整合するか
- 応力:
- von Mises 応力の全体最大
- 固定端・荷重端の局所ピークを除いた代表最大
- 30 MPaしきい値との比較
- 反力:
- 固定面反力合計
X方向反力が荷重 100 N と釣り合うこと13. Validation / Sanity Checks
- STEPが閉じた単一ソリッドとしてメッシュ化できること。
- 固定面と荷重面の節点セットが空でないこと。
- 荷重合力が
Fx = -100 Nになっていること。- 固定面反力が概ね
Fx = +100 Nになっていること。- 変位形状が、上面を
-X方向に押す挙動として自然であること。- 応力分布の高応力位置が、荷重経路・固定端・L字内角と整合すること。
- メッシュを細かくしたとき、評価対象の代表応力が大きく発散しないこと。
14. Known Limitations
- 鋭角コーナー、完全固定、荷重面端には特異応力が発生する可能性がある。
- 実際の固定治具、ボルト締結、接触、面外拘束の柔らかさは未モデル化。
- 荷重が実物では点接触、線接触、治具経由、摩擦ありの場合、本計画の一様分布> 荷重とは応力分布が変わる。
- SS400の材料ばらつき、残留応力、溶接、表面状態、板厚公差は考慮しない。
- 30 MPa判定は線形弾性のFEM応力に対する判定であり、疲労、座屈、局部塑性、> 破壊評価は含まない。
Veteran CAE Review and Plan Revision
レビュー観点:
- 完全固定面と荷重面が幾何学的に隣接する場合、固定端付近のピーク応力はしき> い値判定にそのまま使うと過度に保守的またはメッシュ依存になる。
Z = 60 mm面への-X方向荷重は、面法線方向ではなく接線方向荷重にな> る可能性がある。CalculiX入力では法線圧ではなく、方向付き分布荷重または等> 価節点荷重として確実に表現する必要がある。- Lブロック内角が鋭角のままであれば、理論上の応力集中が実物フィレットなし> 条件として扱われる。実物にフィレットがあるなら、形状を修正して再評価すべき> である。
計画への反映:
- 応力判定は全体最大と代表最大を分けて報告する。
- 荷重は合力100 Nを明示的に検算できる方法で実装する。
- 結果レビューで反力釣り合い、変形モード、メッシュ依存性を必須確認項目にす> る。
Discussion