弱形式 — CAE用語解説
理論と物理
弱形式の基本概念
弱形式って、教科書で「微分方程式の解の存在条件を緩める」と書いてあるんですけど、具体的に何が「弱く」なるんですか?
良い質問だ。微分の回数が減るんだ。例えば、梁のたわみを表す4階微分方程式(Euler-Bernoulli梁)の強形式では、解は4回連続微分可能(C4連続)でなければならない。しかし、弱形式では、重み関数をかけて部分積分することで、解の要求を2回微分可能(C1連続)まで緩和できる。これが「弱い」の意味で、不連続な材料特性や集中荷重を扱いやすくなる。
部分積分で微分の回数が減るのはわかりますが、その操作の物理的な意味は何ですか?ただの数学的テクニックに見えます。
エネルギーの原理に立脚しているんだ。例えば、弾性体の支配方程式を導く最小ポテンシャルエネルギーの原理は、元々積分形(エネルギーの式)だ。これを変分計算すると自然に弱形式が得られる。つまり、弱形式は「系の釣り合いを、力のつり合い式(強形式)ではなく、仮想仕事の原理やエネルギー原理といった積分形で表現したもの」と言える。FEMの基礎はここにある。
仮想仕事の原理との関係は?具体的な式で説明してもらえますか?
そうだな。一次元の棒の引張り問題を考えよう。支配方程式(強形式)は
数値解法と実装
FEMへの適用
弱形式から、実際のFEMの離散化(マトリックス方程式)にどうつながるんですか?
未知の変位uを、既知の形状関数N_iと未知の節点変位u_iで近似する:
形状関数の次数(1次、2次)が弱形式の結果にどう影響するんですか?
積分の精度と解の滑らかさに直結する。弱形式では解uの微分(例えばひずみ)が形状関数の微分で近似される。1次要素ではひずみが要素内で一定になり、応力集中部の精度が悪い。2次要素を使えば、ひずみが線形変化するので、曲げ問題や応力勾配が大きい領域で精度が向上する。例えば、JIS B 2704に規定される板ばねの解析では、曲げが支配的だから、多くのベンチマークで2次シェル要素の使用が推奨されている。
数値積分(ガウス積分)はなぜ必要で、積分点の数はどう決めるんですか?
弱形式の左辺と右辺は、要素ごとに多項式の積分として表される。これを正確に(少ない点数で)計算するためにガウス積分を使う。必要な積分点は被積分関数の多項式次数で決まる。例えば、1次要素の剛性マトリックス計算では、被積分関数は形状関数の微分(定数)の積なので、1点で正確。2次要素では、被積分関数が2次式になるので、2次元の場合は2x2点(完全積分)が必要だ。しかし、過剰な積分点は計算コストを上げるので、商用コードでは「低減積分」オプションも用意されている。
実践ガイド
モデリングと検証
実際の解析で「弱形式を満たす解が得られた」ことをどう確認すればいいですか?結果の妥当性チェックは?
直接「弱形式を満たしている」は確認できない。代わりに、以下の工学的チェックを行う。1) エネルギー収束: メッシュを細かくした時に全ひずみエネルギーが一定値に収束するか。2) 境界条件の再確認: 弱形式の境界項(反力)と、ソフトウェアが出力する反力が一致するか。3) パッチテスト: 一定ひずみ状態を再現できる粗いメッシュで、理論解と数値解が一致するか。Abaqusのドキュメントにも、これらの検証手順が推奨として記載されている。
集中荷重や点支持をモデリングする時、弱形式の観点で注意点はありますか?
非常に重要な点だ。強形式では、集中荷重点で微分方程式が成立しない(発散する)。弱形式では、荷重点は境界項または右辺の積分の中のデルタ関数として扱われる。実務では、荷重点に直接メッシュの節点を置く必要がある。もし要素面上に集中荷重をかけると、その節点群に荷重が均等配分され、局所的な応力が過小評価される恐れがある。例えば、ISO 10303-104 (STEP AP104) のようなCAD-CAE連携規格でも、荷重の定義位置は重要な交換情報として扱われている。
異種材料が接する界面(例えば樹脂と金属の接着面)は、弱形式ではどう扱われるんですか?
材料特性(ヤング率Eなど)が不連続に変化する界面だ。強形式では、界面で微分係数が不連続になるため扱いが難しい。弱形式では、領域全体の積分を各材料領域に分割して考える。界面では、変位の連続条件(u^1 = u^2)と、内力のつり合い条件(σ^1・n = σ^2・n)が自然に満たされるように、界面を共有する節点を設ければ良い。商用ソフトでは「タイドコンタクト」や「共有ノード」として実装されている。界面の破壊を扱う場合は、コヒーシブゾーンモデルなど、より高度な弱形式が必要になる。
ソフトウェア比較
各ソルバーのアプローチ
Ansys MechanicalやAbaqus/Standardのような汎用構造解析ソフトは、内部で弱形式をどう扱っているんですか?ユーザーは意識しますか?
ユーザーが弱形式を直接触ることはほとんどない。ソフトウェアが要素ライブラリとソルバーを提供し、背後で自動的に弱形式の離散化と計算を行っている。しかし、AnsysのAPDLやAbaqusのユーザーサブルーチン(UEL)を使えば、ユーザー定義の弱形式に基づくカスタム要素を実装できる。例えば、Abaqus UELでは、ユーザーが剛性マトリックス[K]と右辺ベクトル[R]を直接コーディングする。これは、まさに弱形式から導出された離散化方程式を実装することに相当する。
COMSOL Multiphysicsが「弱形式PDEインターフェース」を売りにしていると聞きます。あれは何が特別なんですか?
COMSOLの最大の特徴は、ユーザーがGUIまたは数式で弱形式を直接記述できる点だ。例えば、独自の非線形材料則や、電磁気-構造連成など、組み込みの物理インターフェースにない方程式を解きたい時に威力を発揮する。画面上で「試験関数」(重み関数)を`test(u)`と表記し、弱形式を
オープンソースのFEMソフト(CalculiX, Code_Aster)では、弱形式の扱いはどうなっていますか?
コマンドラインや入力ファイルでパラメータを設定する方式が主流で、弱形式を直接記述する機能はCOMSOLほど強くない。しかし、Code_Asterでは、`DEFI_MATERIAU`で材料を、`AFFE_CHAR_MECA`で荷重・境界条件を定義するが、これらはすべて最終的には弱形式の離散化に帰着する。そのソースコードを読めば、各要素や物理問題に対する弱形式の実装(例えば`dltu90.f`のようなサブルーチン)を確認できる。研究用途でアルゴリズムを深く理解したい場合には貴重なリソースだ。
トラブルシューティング
よくあるエラーと対策
解析結果で、荷重点や支持点の直下で応力が異常に大きくなり、メッシュを細かくしても発散し続けることがあります。これは弱形式と関係ありますか?
まさに弱形式の限界に関わる古典的問題だ。これは「特異点」と呼ばれる。理論上、完全に剛な点支持や鋭い角に集中荷重が作用すると、強形式の解はそこでの応力が無限大に発散する。弱形式はこれを「積分した平均値」として捉えるので、メッシュを細かくすればするほど、より大きな(発散する)値を局部で拾おうとして、数値解が発散する。対策は、現実に即して荷重面積や支持面積を有限の大きさでモデリングすることだ。例えば、直径5mmのピン支持を想定するなら、その面積をモデルに反映させる。
非線形解析(材料非線形、接触)で収束しない時、「残差」が大きいと言われます。この「残差」は弱形式とどう関係しているんですか?
非線形ソルバー(Newton-Raphson法など)が評価している「残差ベクトル」は、弱形式の不平衡力そのものだ。線形問題では
「ロッキング」という現象を聞きます。これも弱形式の離散化が原因なんですか?
その通り。特に、体積ひずみを伴う問題(ほぼ非圧縮性材料の弾塑性変形、Stokes流れ)で顕著だ。弱形式で離散化する時、変位(速度)場と圧力場を同じ次数の形状関数で近似すると、拘束条件が過多になり、剛性マトリックスが特異的になる(ロッキング)。対策は、混合形式(mixed formulation)を用い、圧力の近似次数を変位より低くすることだ。例えば、AbaqusのC3D8H(ハイブリッド要素)や、Ansysのu-p形式要素は、この問題を回避するために、変位(u)と圧力(p)を独立した場変数として弱形式に組み込んでいる。
弱形式を理解することで、ソフトウェアのエラーメッセージをより深く解釈できるようになりますか?
間違いなくできる。例えば、「負のヤコビアン」エラーは、要素形状が極端に歪み、弱形式の積分が数値的に不安定になった状態だ。「ゼロピボット」エラーは、剛性マトリックス[K]が特異、つまり弱形式で定義されるシステムに剛体運動モードが残っているか、材料定数が未定義であることを示す。「発散」エラーは、非線形残差が制御不能に増大し、弱形式の平衡が全く得られない状況だ。これらのメッセージを、背後にある弱形式の離散化と数値積分の問題として捉え直せば、メッシュ修正や境界条件の見直しの方針が立てやすくなる。
関連トピック
なった
詳しく
報告