2017年02月16日

Javaを使った有限体積法による数値計算(1)

ここ数ヶ月、流体の数値計算の勉強を続けている。
2次元の河床変動プログラムを作るのが、当面の最終目標。

河床変動の計算の基礎式は、
1:流体の質量保存則(連続の式)
2;流体の運動量保存則(ナビエストークス方程式)
3;流砂の連続式
4;流砂量式
である。これら4つの方程式を解くことで
流れの場を一般的には求めることができる。

これらの式は複雑に絡み合い、特に2の運動量保存則は、
非線形の方程式(移流方程式)であり、一般に解析的に解くことが
できない。
そこで、数値計算が多用される。

数値計算においては、上記の方程式を離散化して、
解く方法がとられている。

その離散化の方法の違いにより、大きく
1: 格子法
2: 粒子法
に区別される
(他に個別要素法があるが、どう分類されるのかはまだ、勉強不足)

最近は2の粒子法も注目を集めているが、
計算範囲が大きい場合や、時間スケールを長くするには、
計算パワーが必要なことから、まだまだ一般的ではない。
粒子法については
粒子法入門 流体シミュレーションの基礎から並列計算と可視化まで C/C++ソースコード付
が詳しくて分かりやすい。

このため、一般には1の格子法が採用される。
格子法は、さらに、
A:差分法
B:有限体積法
C;有限要素法
などに分類される。

差分法は、微分方程式をテイラー展開を利用して離散化する。
また、有限要素法は、重み付きの関数を用いて離散化する。
(有限要素法も勉強不足)
一方で、有限体積法は、コントロールボリュームと呼ばれる
有限な体積の要素に積分することで、その収支を用いて離散化する。
有限体積法では、コントロールボリュームの質量収支等を考慮するので、
質量が保存されやすいという特があり、この点が他の計算方法との違いと
言われている。

連続体としての質量の保存を重視する流体力学の数値計算では、
有限体積法が人気を集めているようである。
他の工学分野(構造力学等)では、有限要素法が一般的なようである。

以上のような理由から、有限体積法を用いて、
数値計算(数値シミュレーション)を進めていくこととした。


なお、使用言語は、
Javaを使っていくことにする(途中で変更するかもしれない)
もともと数値計算でよく用いられているFortranも使っていたが、
Androidアプリ開発のため、Javaを勉強し始めたことと、
オブジェクト指向を理解するためにも、Javaをプログラミング言語として
学んでいくことは、今後に役立つと考えたためである。


有限体積法の勉強に用いた参考文献を以下に示す。











同じカテゴリー(スタッフ日記)の記事画像
GMT5.3.1で陰影図や鳥瞰図を作る
GMT5.3.1で矢印とか地図をかく
QGISで矢印を表現させる
Mac mini Late2012のHDDをSSDに換装
zenfone3 の購入
河川シミュレーションソフトiRIC
同じカテゴリー(スタッフ日記)の記事
 2017初頭のウルトラブック比較 (2017-02-26 19:08)
 Latexをwindowsにインストール (2017-02-18 21:28)
 GMT5.3.1で陰影図や鳥瞰図を作る (2016-12-12 15:55)
 GMT5.3.1で矢印とか地図をかく (2016-12-09 00:08)
 QGISで矢印を表現させる (2016-12-07 20:38)
 Mac mini Late2012のHDDをSSDに換装 (2016-12-06 23:26)

Posted by 和歌山サイエンスカフェインフィニティ at 21:07│Comments(0)スタッフ日記気になる水理学
上の画像に書かれている文字を入力して下さい
 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。