So-net無料ブログ作成
検索選択
前の10件 | -

OpenLBのファイル構造 [OpenLB]


・ 


 


GWにOpenLBのチュートリアルファイル構成を調べてました。


詳しくはコチラからダウンロードしてみてください。(エクセル2016で作成)


それぞれのチュートリアルを比較しやすい様にしました。



構成は大体こんな感じです。


include群:2次元/3次元のモデルで使い分けが必要


namespase群:変数の宣言みたいなもの?


define群:倍精度の定義(すべてが倍精度)と、格子タイプの選択をしている。


simulation parameters群:緩和係数などの計算に関するパラメータの設定。


geometry群:形状や境界条件の設定などがされている。


Prepare Lattice群:格子に関する設定がある。


Boundary群:格子と境界条件の紐づけの設定の様だ。


Output群:出力に関する設定


ここまでが、OpenFOAMでのcontrolDictやfvSolutionなどに相当しそうだ。


プログラムの書き方としては、ここまでがサブルーチンのようなもの(だと思う)。


この先がメインプログラム。


// === 1st Step: Initialization ===


格子サイズや物性とかを規定している様だ。


// === 2nd Step: Prepare Geometry ===


stlファイルを読み込んだりする。


そうでない場合は、モデルの寸法を定義する。


// === 3rd Step: Prepare Lattice ===


格子の設定をする。詳しくはまだ未解読。


// === 4th Step: Main Loop with Timer ===


計算ループに関する記述が書かれている。どうループさせるか、いつ終わるか。


STEP4~7は同じループで回っている様だ。


// === 5th Step: Definition of Initial and Boundary Conditions ===


境界条件の反映をしている。


// === 6th Step: Collide and Stream Execution ===


衝突の計算(LBMは勉強中なのでよく分からないが)をしている。


// === 7th Step: Computation and Output of the Results ===


結果途中に行う結果出力。



OpenLBの活用の仕方としては、


OpenFOAM同様、チュートリアルをコピーしながら…となると思います。


メッシュ制御とか、少しずつ見えてきておりますので、バックステップ流れのような、


単純形状で試していこうかと思います。



・・・どなたか、一緒にやりませんか?


OpenLB.png



nice!(4)  コメント(0) 

ベナール対流(その3) [buoyantPimpleFoam]

・ 

ベナール対流がどこまで定量値と合っているかを、整理しました。

詳しくはこちらのスライドで確認してください。

定性評価・定量評価ともにまずまずの結果です。 

 

4月13日にOpenFOAM勉強会(岐阜)で報告します。

・ 

・ 

ケースファイルはこちらから


nice!(5)  コメント(2) 

ベナール対流(その2) [buoyantPimpleFoam]

・ 

buyantPinpleFoamという、非定常ソルバーで動きを確認してみた。 

渦の形が変化していく様子が分かる。

温度分布も一緒に見ると、渦と共に変化している。 

 

当初、buoyantPimpleFoamで均一温度から計算したけど、

温度分布が発達しないので、定常計算で初期条件を求めてみたが、

定常計算でもまずまずの渦の発達は見えていた。

ただ、非定常計算の結果の方が妥当な気がする。

もっとカオス的に変化するかと思ったけど、ある時間以降で安定していく様子が、

この結果から分かる。

・ 

ケースファイルはこちらから


nice!(2)  コメント(0) 

ベナール対流(その1) [buoyantSimpleFoam]

・ 

平板内にある流体の熱移動の現象の一種である、ベナール対流について取り組んでみた。 

温度差が小さい、もしくは距離が小さい場合…

もう少し言えば、レイリー数が小さい場合は、熱伝導のみが起こる。 

ある点から対流が起こり始め、熱伝達係数が上昇する。

その対流が解析で再現するかどうかの確認。 

・ 

とりあえず、上面は60℃、下面を100℃にして計算。

空間サイズは幅方向は適当で100mm。高さ方向も20mm。

物性値は空気の物性値(温度依存性あり)で計算。

結論から言えば、それらしい結果は出ました。 

(温度分布)

temp.png

(速度分布)

vector.png

定常計算でもまずまず行けそうだな。

今は温度境界条件を固定にしているので、

温度移動量は決定されてしまうので評価はできなさそうだけど…。

工夫すれば理論解との検証もできそうだ。 

・ 


nice!(1)  コメント(0) 

くさび膜効果(その2 非定常計算) [cavitatingFoam]

その1の続き。

・ 

同じメッシュでcavitatingFoamでキャビテーション再現を試みた。  

キャビテーションが発生しやすいように、蒸気圧を少し変更した。

速度場。(ちょっと傾けて表示)

Vmag.png 

圧力場。う~ん…微妙だ。

pressure.png 

キャビテーションの分布。ごくわずかだ。

cavitation.png 

ごくわずかしか、発生していない。

アニメ表示…でも微妙だ。

 

残差グラフ。圧力の収束性が悪いなぁ…。

Residuals.png 

どなたか、安定した計算を行う方法を教えてください。

(なかなか時間がなくて、あれもこれもできないのです。。。)

参考までですが、ケースファイルはこちらから

・ 


nice!(4)  コメント(0) 

くさび膜効果(その1定常計算) [simpleFoam]

軸受で必ず起こり得る軸ズレ。

それに伴い生じる圧力分布とキャビテーション再現にチャレンジしてみた。

・ 

メッシュはこんな感じ。狭いところは細かく切った。

mesh.png

mesh2.png

2次元でメッシュ作成をしたいところだが、

OpenFOAMではBlockMesh以外、切り方が分からない。

(BlockMeshは面倒だからな…。)

simpleFoamで計算しようとしたが…。エラーで止まってしまう。

原因を調べていたら、基準圧力を参照できないとのこと。 

OpenFOAMのデフォルトは原点で基準圧を決めているそうだ。(知らんかった…。)

という訳で、fvSolutions内に参照圧力位置(pRefPoint)と基準圧(pRefValue)を書き込む。

 fvSolutions.png

まずはsimpleFoamで定常計算する。

(速度場。回転方向は反時計回り)

Vmag.0014.png

圧力(静圧)分布。

Pressure.0014.png

内側圧力。…数値振動みたいなまだら模様が出ている。

inerPres.png 

残差グラフを見ると…微妙だ。メッシュか、緩和係数を見直さないとダメかも。 

residual.png

その2に続く。

・ 


nice!(2)  コメント(0) 

らせん菅流れ [simpleFoam]

仕事で『らせん状の流れってどうなるんだっけ?』って思い、

確かめたくなって計算してみました。

メッシュはこんな感じで、下側の直管から入り、上側から抜けるというもの。

mesh1.png

メッシュ数は『37981』cfMeshを使ったが、結構きれいに切れた。

断面はこんな感じ。

mesh2.png

結果はこんな感じになりました。

流線図。内側が少し低速になっているのが分かる。

streamline.png

断面速度コンター図。

vmag2.png

微妙に内側が遅いかな。でもそれ程でもない。

圧力(静圧)分布図。 

pres1.png

こちらのが、内側と外側での違いが明確に出ている。

この作用は遠心力によるものか?

それとも剥離しまくった結果なのか?

・・・ 恐らく両方だろう。

やってみて、確認して、少しスッキリした。

ケースファイルファイルこちらから) 

・ 

OpenLBの方は、User Guideの和訳がやっと終わりました。

これから調べていきます。 

・ 

残差グラフなど


nice!(1)  コメント(0) 

OpenLB(格子ボルツマン法)を使ってみました [OpenLB]

・ 

最近・・・通常の有限体積法のCFDアプリは、

そろそろ限界が見えている気がします。

やっぱりメッシュがなぁ…ネックなんだよなぁ。

次の世代のCFD技術は有限体積法ではなく、格子ボルツマン法や粒子法だと思います。 

そこで格子ボルツマン法に絞って調査をしてみました。

色々ありますが、現在もフォーラムでディスカッションが盛んで、開発が進んでいる

OpenLBを調べてみることにしました。

まず環境ですが、Linux、Mac、Windowsどれでも行けそうですが、

マニュアルにしっかり説明があるLinuxにインストールしてみることにしました。

最初、マニュアルに従ってUbuntu14.04LTSの仮想環境でテストしました。

インストールは問題なくできました。

次にDEXCS2016の環境でインストールしてみましたが、

こちらも問題ありません。 OpenFOAMとの並列環境でもイケます。

さて・・・使い方ですが。 

チュートリアル-サンプルを実行してみます。

まずはフォルダに入り、"make"コマンドで.cppファイルをコンパイルします。

コンパイルの細かい設定はMakefileというファイルに書かれているようです。

 スクリーンショット_2016-12-04_13-06-03.png

 スクリーンショット_2016-12-04_13-18-01.png

今回は"example"というフォルダでしかコンパイルできませんでしたが、

このファイルのパスを設定すれば、任意の場所でもコンパイルできそうです(要調査)。 

コンパイルしてできたファイルを実行します。

今回では、"./cavity2d"です。 

スクリーンショット_2016-12-04_13-20-09.png 

そうすると、こんな感じで計算が始まります。

 スクリーンショット_2016-12-04_12-59-55.png

結果は各ケースディレクトリにある"tmp"ファイルに格納されます。

 スクリーンショット_2016-12-04_13-23-49.png

"imageData"に予め設定しある画像が自動的に格納されます。

(計算最後のデータ…。小さい。これも設定で何とかなるのかな?)

last.jpg 

"vtkData"にParaviewで読める形式のファイルが格納されます。

Paraviewでの結果処理。・・・なぜか横向きですが。

 paraview.png

ケースディレクトリの構成はこんな感じ。 

スクリーンショット_2016-12-04_13-30-03.png

マニュアルとかを見ていると、この.cppファイルにプリ処理を書き込めば良さそうです。

スクリーンショット_2016-12-04_13-31-06.png 

.xmlファイルの役割とか、調整すべき項目があるのかは、今後調査が必要です。 

Openmpiを使った並列計算もできそうです。

【まとめ】

・OpenLBの計算テストができた。DEXCS2016(MintOS)でも問題なくできる。 

・計算設定方法などは、追々調べていく方法がある。 

一緒に調べてくれる方を募集中!

・ 

続きを読む


nice!(2)  コメント(0) 

OpenFOAMの入門書 [スキルアップ]

・ 

先日購入したこの本。


OpenFOAMによる熱移動と流れの数値解析

OpenFOAMによる熱移動と流れの数値解析

  • 作者:
  • 出版社/メーカー: 森北出版
  • 発売日: 2016/06/17
  • メディア: 単行本(ソフトカバー)

ようやく時間が作れたので読み始めました。

第2章の概要を改めて行いました。

今まで我流でやっていたところもあって、

改めてこういう仕組みかと学んだところもあります。

題材はミキシングエルボー。よく見かけるヤツです。

まずはblockMeshを実行。

 blockMesh.png

こういうメッシュができます。

・ 

そしてsurfaceFeatureExtractでミキシングエルボーの特徴線を抽出します。

このときはメッシュ形状そのものに変化はありません。フォルダの中身がこうなります。

こうだったのが… 

Screenshot_from_2016-07-10 15_55_53.png

こうなります。extend…というフォルダができてます。 

Screenshot_from_2016-07-10 17^%01^%04.png 

こいつに特徴線が含まれているのですね。 

Screenshot_from_2016-07-10 15_56_38.png

ここでsnappyHexMeshを実行します。

レイヤーもすでに入ってますね。しかし左下のフレームにご注目。 

Screenshot_from_2016-07-10 15_59_18.png 

余計な境界面(フェイス数が0の境界)ができております。

これでは0フォルダと不一致が生じて計算できません。

ここでcreatePatchというコマンドを実行します。すると…

Screenshot_from_2016-07-10 16_01_42.png

不要な境界条件はすべて消えております。 

ここでようやく計算可能となります。

今まではソルバーの名前を打ち込んで計算(simpleFoam)を実行しておりましたが…。

"foamJob simpleFoam" と打ち込むと、バックグラウンドで流れ、

ログはlogというテキストファイルに書き込まれていきます。

・・・初めて知りました。

で、この"log"というファイルに対し、foamLogというコマンドを実行すると、

Screenshot_from_2016-07-10 17^%12^%01.png

"logs"というディレクトリができて、ここにあるデータを使って

残差グラフを書くわけです。"gnuplot residual.gp"

 Screenshot_from_2016-07-10 16_05_17.png

DEXCSで書かれるものより地味だな。っていうか、論文に乗せるような書式。

面白かったのは、メッシュはそのままでソルバーを変えるときは、

"constant"フォルダに置くべきメッシュデータを、lnコマンドを使って

リンクを置いておけばOKという点も、新たな発見です。

 Screenshot_from_2016-07-10 16_13_11.png

これでディスク容量を削減できたり、何らかの管理に役立ちそう。

最初はsimpleFoamを使った計算演習。2回目はbuoyantPimpleFoamで計算を行う。

結果はこんな感じ。ごく普通。

temp.0100.jpg

来週は第3章のメッシュについて、もう少し基本から勉強しよう。

基礎固めが次のステップへ行く前に必要…と思う。特にメッシュね。

・ 


OpenFOAMによる熱移動と流れの数値解析

OpenFOAMによる熱移動と流れの数値解析

  • 作者:
  • 出版社/メーカー: 森北出版
  • 発売日: 2016/06/17
  • メディア: 単行本(ソフトカバー)

 

続きを読む


nice!(3)  コメント(0) 

014 無重力空間の液滴の検証(その2) [interDyMFoam]

・ 

・ 

前報で『立方体の液滴を放置したらどうなるか?』を解析しました。 

スライド1.PNG

スライド2.PNG

スライド3.PNG

スライド4.PNG 

こうしてみると…一旦球体になろうとしますが、物質移動に伴う慣性力で色んな形をします。 

(0.006秒後:細胞分裂の途中みたい) 

0006.png 

(0.023秒後: 立方体→球になり、また戻ろうとする途中。)

0023.png 

0.042秒後にはまた立方体に近づこうとします。

0042.png

そこで、0.009秒後のこのメッシュを使い、VOFとメッシュはそのままにして、

速度・圧力をゼロ(慣性力をゼロにするのが目的。)

しかし、完全に慣性力をなくすことはできないようだ。

gifアニメ.gif

瞬間を並べた図は以下の通り。 

スライド5.PNG

スライド6.PNG

さて。液体の内部圧力についてですが。こんな感じでサンプリングしてみました。

 キャプチャ.PNG

X軸方向(白いライン上)に、大気空間との圧力差をプロットしますと・・・

キャプチャ2.PNG

こうなります。圧力差の理論式はΔP=(2T/R)ですが、 

(Tは表面張力 Rは液滴半径)

赤線が計算値、ピンクのラインが理論値。若干低い結果となっております。

念のため、液界面付近では大きい値になってますので、

X軸方向に積分して比較してみましたが・・・ 

計算値:0.259Pa・m  理論値:0.285Pa・m

とまぁ、計算値のが低い結果となりました。

次は風を流してみたいと思いますが、うまくいくか・・・?

うまくいったら続きを書きます。

・ 


nice!(2)  コメント(0) 
前の10件 | -