p-リファインメント(多項式次数向上)
理論:細かくするか、次数を上げるか
概要
メッシュ収束というと要素を細かくするイメージですが、要素の次数を上げる方法もあると聞きました。どっちがいいんですか?
解の滑らかさで答えが変わる。要素を細かくするh-リファインメントでは、誤差は要素サイズのp乗でしか減らない。一方、要素はそのままで形状関数の次数を上げるp-リファインメントは、解が滑らかなら自由度に対して指数関数的に誤差が減る。ただし角や集中荷重の点のように解が滑らかでないところがあると、次数を上げても誤差はなかなか減らない。そこで両方を組み合わせるhp法がある。1次元の例で3つを同じ自由度で比べてみよう。
収束の速さ
$\| \cdot \|_E$ はエネルギーノルム(ひずみエネルギーに対応する誤差)、$N$ は自由度、$\lambda$ は特異性の強さ(解が $x^{\alpha}$ なら $\lambda = \alpha - 1/2$)。特異性があると、h版もp版も $\lambda$ で頭打ちになる。
階層的な形状関数
p版では、ルジャンドル多項式を積分した形状関数がよく使われる。次数を上げても低次の関数はそのまま残り、新しい関数を追加するだけなので、剛性行列の計算を使い回せる。今回の計算もこの形状関数を使った。
p版を育てた人たち
p版有限要素法は、1970年代にアメリカのワシントン大学(セントルイス)のサボーらが構造解析のために開発し、1981年にバブシュカ、サボー、カッツが収束の理論を示した。滑らかな解では指数関数的に、特異点があっても要素を工夫すれば指数関数的に収束する——というhp法の理論は、1980年代にバブシュカとグイが示した。サボーらの研究は、応力集中部の精度を保証するための商用ソフトにもつながった。
計算例
例1:滑らかな解
−u″ = f、u(0) = 0、解 u = sin(πx/2) の1次元問題。エネルギーノルムの相対誤差を、同じ自由度16で比べた。
| 方法 | 相対誤差 |
|---|---|
| h:1次要素16個 | 2.8×10⁻² |
| h:2次要素8個 | 1.4×10⁻³ |
| p:2要素・次数8 | 6.7×10⁻¹¹ |
2要素のまま次数を1から8へ上げると、誤差は 2.2×10⁻¹ → 2.3×10⁻² → 1.5×10⁻³ → 7.5×10⁻⁵ → 3.0×10⁻⁶ → 9.7×10⁻⁸ → 2.7×10⁻⁹ → 6.7×10⁻¹¹ と、次数を1上げるごとに1桁以上下がった。1次要素では自由度を倍にしても誤差は半分にしかならない。
例2:特異性のある解
同じ問題で解を u = x^0.7 にした。x = 0 で微分が無限大になり、角の近くの応力と同じ性質をもつ。
| 方法 | 自由度 | 相対誤差 |
|---|---|---|
| h:1次要素64個 | 64 | 1.9×10⁻¹ |
| h:2次要素64個 | 128 | 1.4×10⁻¹ |
| p:2要素・次数8 | 16 | 1.6×10⁻¹ |
| hp:比0.15の幾何分割7層 | 36 | 3.0×10⁻² |
特異点があると、要素を64個にしても次数を8にしても、誤差が1割台から下がらないんですね。
x^0.7 では λ = 0.2 しかないので、一様に細かくしても要素幅を半分にするごとに誤差は13%しか減らない。次数を上げても滑らかな多項式で尖った解は表せない。hp法では、x = 0 に向かって要素幅を0.15倍ずつ小さくし、特異点に接する要素は1次のまま、外側ほど次数を上げた。層を1つ増やすごとに誤差がほぼ0.68倍になり、自由度36で3.0×10⁻²、一様な2次要素(自由度128)の約5分の1になった。実際の構造解析でも、応力集中部の周りだけ小さな要素を段階的に並べるのは同じ考え方だ。
使い分けの目安
- 形状が単純で解が滑らかな部分(薄肉構造の曲げ、振動モード)はp版が有利。
- 角・き裂・接触端・材料境界の近くは、要素を段階的に小さくする。
- p版で次数を上げても値が変わり続けるなら、特異点を疑う。
- 次数を上げたときの値の変化は、そのまま誤差の目安に使える(p版の収束確認)。
- 高次要素は形状(曲がった境界)も高次で表さないと、次数を上げた効果が出ない。
「次数を上げても応力が止まらない」
ある設計者が、p版の解析ソフトでL字形の板の応力を調べたところ、次数を4から8へ上げるたびに入隅の最大応力が1割ずつ増え続けた。p版は滑らかな場所では数次数で値が止まるので、止まらないこと自体が『ここは特異点だ』という合図になる。図面を見直すと、入隅には半径2 mmの丸みがあった。丸みをモデルに入れると、次数6と8の差は0.5%以下になり、疲労評価に使える値が得られた。
よくある間違い
間違いと対策
| 間違い | 起きること | 対策 |
|---|---|---|
| 特異点でp版だけに頼る | 誤差が減らない | 幾何分割と組み合わせる |
| 形状を1次で近似 | 高次の効果が消える | 境界も高次で表す |
| ゆがんだ要素で高次化 | 精度が落ちる | 要素形状を整える |
| 次数を上げすぎる | 条件数が悪化 | 階層的な関数を使う |
| 局所応力だけで判定 | 収束を見誤る | エネルギーも確認 |
関連する内容も知りたいです。
1次元形状関数ツールで次数ごとの形状関数を見られるよ。関連するページはh-リファインメント、アダプティブメッシュ、特異点とメッシュ、リチャードソン外挿、メッシュ収束ツールが参考になる。
関連トピック
なった
詳しく
報告