- 締切済み
有限要素法の手順とその原理に関する初歩的な質問
有限要素法という数値計算の方法は、まず方程式(A=B)があって、それをA-B=0とし、任意の重み関数ωを乗じて方程式の成立する範囲で積分(∫ω(A-B)dA=0)し、さらにそれを部分積分し、面積分(領域全体の)と線積分(境界上の)とします(弱形式)。そして、領域全体を細かく分割した有限要素内部での未知変数(重み関数も)を内挿関数とそれらの節点値(三角形だったら基本3個とか)を使って内挿して表現し、求めた式に代入してωiでくくって代数方程式を作り、それを全体マトリックスとして組み上げて行列計算を行う、というものだと思います(ガラーキン法: 汎関数と変分法を使うリッツ法と等価になる?)。式を使わず言葉で長々と書きましたが。そういう風に理解しています。(間違っているかもしれませんが)。この一連の流れの中でどうしても1つ腑に落ちないところがあります。それは部分積分のところです。この部分積分は必須なのでしょうか。部分積分をすることによって境界積分が生じるので境界条件を課するのにちょうどいいからということなのでしょうか。部分積分をしないと先に進めないというところがやや理解しずらいのですが。よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- ddtddtddt
- ベストアンサー率56% (179/319)
#2です。 >・・・奔放に理論をこねくり回すと3回微分を評価しないといけない現象もあるように思いますが。 実用的問題として重調和方程式を扱わないといけいなんて事は、時々あります(添付図冒頭)。重調和方程式は4回の偏微分方程式なので、添付図中段左にあるような差分格子が必要と思えます。このような差分格子を任意形状の解析領域に規則正しく発生させるのは、なかなか難儀な時もあると思えます。 一方有限要素法では、要素の形状が少々歪んでいてもアイソパラメトリック座標に移れば、正方形で計算できたりします。任意形状の領域分割が容易になり、内挿関数の基底関数と節点関数値f1~f8の関連付けの計算でだいぶ楽できます。ただし計算準備段階での計算量は有限要素法の方が圧倒的に多いです。また図にあげた8節点要素は、最下段にあげた弱形式をみればわかるように(右辺2項目)、少なくとも3次の内挿関数である必要があるので、高次要素は作りにくいという欠点が現れて不適合要素です。 しかし弱形式の右辺1項目は結局フラックスの計算になっています(ガウスの発散定理による部分積分)。有限要素法でも要素境界でのフラックスの収支は連続性という形で考慮され、それが行に関する要素の重ね合わせ操作に化けます。もっともフラックスも要素節点に集約された形となり、有限体積法ほど厳密ではありませんが。 有限体積法は、要素内部の状態をフラックスの収支で表すのが目的なので、有限要素法より簡単な内挿関数で済みますが(いわば一要素の中心に一節点)、高次要素が原理的に難しいという欠点はあると思います(有限要素法では、つくれない事はない)。 以上のようにもうこうなると、個々人の趣味も含めて(^^;)、問題に応じてケースバイケースだと思います。最後に参考URLをあげます。実用的な観点から書かれていると思います。 https://knowledge.autodesk.com/ja/support/cfd/learn-explore/caas/CloudHelp/cloudhelp/2018/JPN/SimCFD-Learning/files/GUID-12A9AED8-2047-4D3A-BC80-82BE9CF47517-htm.html
- ddtddtddt
- ベストアンサー率56% (179/319)
#1です。 部分積分については、ぶっちゃけ高校レベルで良いと思いますよ。けっきょく大学以上でも、部分積分が成り立つような普通の条件を満たす解集合の範囲しか扱わないのが通常です。それ以上の事は、数学科にでも任せておけと・・・(^^;)。 ただし2次元以上の場合、グリーンの定理やストークスの定理なんかは、ガウスの発散定理の部分積分タイプだとなれとく必要はあると思います。 >FEMでは方程式が変更され別の高次の微分が付加されたような場合、根本から作り直しということになるものでしょうか。 それはそうなりますね。形状関数(内挿関数)の決定は、要素設計の一部です。でも高次の形状関数を持った要素は作りにくいので、非適合要素を許容するという反則技も良く登場します。メッシュ分割が細かけりゃ、非適合でも大丈夫さと・・・。 それから小回りについてですが、例えば差分法では1階微分には最低2点,2階微分には最低3点,3階微分には最低4点と必要節点数がどんどん増えていきます。そうすると3階微分を1階微分と同程度の精度で実行しようとすると、1階微分の2点の間に4点を押し込む事になります。要するに差分格子の作り直しです。FEMでもそうですが、全体作業の中で最も手のかかるのは、いわゆるメッシュ切りの作業じゃないですか?。それなら形状関数を取り換える方がまだましだ、という意見はあります。 有限体積法も、要素境界での保存則を定式化するために、なんらかの近似関数は用意すると思うんですよ(FVMはあんまりやった事ありませんが)。 次に精度の面で考えると、差分法はいわゆる強形式なので、局所精度はFEMを上回るかも知れませんが、全体的な解の平均精度や安定性はFEMより下かも知れません。 FVMは、すでに局所平均の考えなので、解の評価が難しそう。もっとも差分法とFEMの中間ぐらいの平均化にも思えるので、その点は利点なのかも知れない。ただし定式化がやや面倒。 けっきょく汎用性と明解さという総合判断で、FEMが好まれる事が多いようです。自分は境界要素法(BEM)をやった事があるので、そう思います。
- ddtddtddt
- ベストアンサー率56% (179/319)
(1) 部分積分するのは、一つには微分の階数を下げたいからです。数値計算では微分の階数が高いほど、解はあばれる君になるので。 (2) もう一つの理由は、支配方程式に変分原理が成り立つ有限要素法においては、変分原理が部分積分を要求するからです(変分原理の弱形式)。 (3) そして部分積分された変分原理から得られた支配方程式を再び部分積分して弱形式に持ち込むと、今度は仮想働の原理が得られます。 (4) 仮想働の原理は境界条件を含んでいて、しかも変分原理と等価なので、有限要素法としては仮想働の原理を用いれば良い事になります。 変分原理のない系に対してはどうするか?。 変分原理はなくたって支配方程式はわかってるんだから、(3)を実行して形式的な仮想働形式(4)を使えばいいじゃない!、となります。 仮想働形式を使うと、境界条件の物理的意味に沿った定式化まではっきりするという、有難さがあるのです(^^)。 それが重み付き残差法基づいた(変分原理に基づかない)、ガラーキン法による有限要素法です。たぶん最も使い勝手が良いです。
お礼
回答ありがとうございます。部分積分については高校数学程度の理解なのですが、部分積分は必ず実行可能(というか表現の成立)なのでしょうか。部分積分はもとの積分と数学的には等価であり、表現形式が変わっただけという風に考えると部分積分による表現は必ずできるということにもなるのかなと思いますが。 派生質問ですが、FEMでは方程式が変更され別の高次の微分が付加されたような場合、根本から作り直しということになるものでしょうか。内挿関数の高次化とかしないと高次の微分を表現できないことになるからですが。差分法、有限体積法(これもやや難)とかの方がその辺の拡張性は有限要素法よりはマシかな(小回りが利く)と思うのですが。どうでしょうか。
お礼
回答ありがとうございます。有限要素法に出てくる式には変なものが出て来ないということが前提ということでしょうか。プログラミングとか解くための便宜など考えないで奔放に理論をこねくり回すと3回微分を評価しないといけない現象もあるように思いますが。時間微分が出てくるとか。差分法が小回りが利くように思われるのですが、ステンシルの増大で計算領域に障害物があるとそれも問題とは思います。 有限体積法(FVM)について言及されたのでお尋ねしたいのですが、有限体積法はもとの支配方程式を時間、空間に関するフラックスの1回微分として表現し(2回の微分は1回の微分の内側に入れる)そのフラックスに関する空間1回微分の和(x,y,z方向の和)は発散だから発散定理を使って面積分してそれが、法線方向のフラックスの境界での線積分となるので境界からの出入りの総和を計算して格子内部の総量の変化を調べて格子内部の平均値(総量を面積で割れば平均)を求めるという計算方法だと思います。つまり、有限体積法は格子内部領域の平均値を求める計算法であると思っていいでしょうか。有限要素法は要素平均ではなくて、未知数の配置は節点上ですね。有限要素法で節点での値を計算してから要素領域の平均を取るのは簡単でしょうか。内挿関数などを使って平均すると思いますが、結局節点の値の和を節点数で割る(単純平均)ということにはならないと思いますが。 別の視点ですが、パッケージ化する(汎用ツールに近いものにする)としたらFEMが一番じゃないかと思います。計算プログラムを作って個別の境界条件、初期条件ですぐに計算できるようにするということですが。FVMもかなと思います。実際にFEMは汎用ツールが多いと思うのですが。