こんにちは(@t_kun_kamakiri)(‘◇’)ゞ
本記事ではOpenFOAMのバスケットボールまわりの流体解析を行う下準備のための記事です。
【回転するバスケットボールまわりの流れ(4)】OpenFOAMで無回転の球体まわりの流れ
球体まわりのメッシュをinnerとouterに分けて別々で6面体メッシュで生成しました。
InnerとouterをcyclicAMI周期境界でつないで球体まわりの解析を行う前回行った解析モデルでは球体周りの抗力係数が文献値$Cd=0.44$ではなく、$0.25$と小さい値になってしまいました。
レイノルズ数:$Re=\frac{Ud}{\nu}=\frac{1.0*0.128}{1.5e-5}=8,533$なので乱流状態です。
乱流状態だと抗力係数は一定値0.44になるということです。
今回の記事では抗力係数が文献値と近くなるようにモデル修正したので紹介します。
球体の抗力係数が文献値と合わない原因を特定するために以下を試しました。
- 解析領域を広げる
- cyclicAMIをやめる
- 球体周りのメッシュサイズを細かくする
結論「球体周りのメッシュサイズを細かくする」ことで文献値と近くなりました。
本記事の内容は下記の参考記事のモデル作成です。
【OpenFOAM】ゴルフボールはどう打ったら最もよく飛ぶのか
記事内で「SALOMEを用いて下図のようなメッシュを作成しました。全てヘキサで作成した後にrefineMeshにて一部をポリヘドラに細分化」と書いてありますが、当ブログではゴルフボールではなくバスケットボールまわりのメッシュ作成をします。また、全てblockMeshのみで作成するので記事内の作り方と異なります。
OpenFOAMv2012(WSL2)
000_case:解析領域を広げる
球体後方の解析領域を広げてみます。
モデルの作り直し・outletの面をそのまま押し出してメッシュを作成する方法を使います。
system/extrudeMeshDict
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
constructFrom mesh; sourceCase "$FOAM_CASE"; sourcePatches ( outlet ); exposedPatchName outlet; flipNormals false; extrudeModel linearDirection; nLayers 25; expansionRatio 1; linearDirectionCoeffs { direction (1 0 0); thickness 5; } mergeFaces false; |
以下のコマンドを実行します。
1 |
extrudeMesh |
解析領域を広くしないと流出面で逆流が発生しそうなので、解析領域を広くした方がよさそうですが、抗力係数の精度は上がりませんでした。
002_case:cyclicAMIを使わない
innerとouterの境界面の節点はつながっておらずcyclicAMIとしているのが今回の解析でした。
innerとouterを別々でメッシュ作成するのをやめて、innterは使わずにouterのみを使いinnerとouterの境界面を球体のサイズにするようにしました。
つまりメッシュはinnerとouterの境界でつながっているという設定です。
結果は800~1000stepの平均抗力係数0.25でした。
y-z方向の解析領域を狭くする(4m→2m)
球体周りの解析領域を広げるために上下左右(y、z方向)の領域を大きくとったことによって、球体周りのメッシュサイズが大きめになっていることが、抗力係数を小さく出てしまう原因かと考え、試しに解析領域を狭くしてみます。
y-z方向の解析領域を狭くする(4m→1m)
さらにy,z方向の解析領域を半分にして球体周りのメッシュサイズを小さくするようにします。
この場合の抗力係数はCd=0.45となり、文献値とかなり近くなりました。
ここでわかったことは球体周りのメッシュサイズは細かくしないと抗力係数が文献値と合わない結果になるということです。さすがに球体と解析領域の端が近づいてきたので、やりすぎかもしれないです。
球体周りのメッシュサイズを小さくするのであれば、球体周りの分割の割合を小さくすれば良いので以下で試してみます。
また、cyclicAMIの設定が抗力係数が文献値と合わない原因ではなさそうなので、innerとouterは再度cyclicAMIを使った境界条件に戻します。
003_case:outer周りのメッシュサイズの変更
cyclicAMIを使うとinnerとouterのメッシュサイズが合っていなくても解析を実行できます。まずは、outerだけを分割の割合を変えてみます。
system/blockMesh
1 2 3 4 5 6 7 8 9 10 11 12 |
blocks ( hex ( 9 8 12 13 1 0 4 5) ($n $n $t) simpleGrading (1 1 0.01) hex (10 9 13 14 2 1 5 6) ($n $n $t) simpleGrading (1 1 0.01) hex (11 10 14 15 3 2 6 7) ($n $n $t) simpleGrading (1 1 0.01) hex ( 8 11 15 12 0 3 7 4) ($n $n $t) simpleGrading (1 1 0.01) hex ( 8 9 10 11 0 1 2 3) ($n $n $t) simpleGrading (1 1 0.01) hex (13 12 15 14 5 4 7 6) ($n $n $t) simpleGrading (1 1 0.01) hex (11 8 12 15 17 16 19 18) ($n $n $n_in) simpleGrading (1 1 1) hex (21 20 23 22 10 9 13 14) ($n $n $n_out) simpleGrading (1 1 1) ); |
outerだけを細かくしているので球体周りのメッシュサイズは大きいままです。outerとinnerの節点はつながっていなくても境界面は互いにcyclicAMIなので解析は問題なくできます。
これで抗力係数を見てみましょう・・・おそらく文献値と合わないでしょう。
結果は抗力係数Cd=0.23でした。
004_case:球体周りのメッシュサイズの変更
outerだけを分割の割合を変えても抗力係数は文献値と合わないので、今度はouterはそのままの設定で球体周りだけを分割割合を変更してみます。
抗力係数0.449となりました。
005_case:outerと球体周りのメッシュサイズの変更
004_caseではouterとinnerの境界のメッシュサイズが異なるので、005_caseで同じにします。
結果は抗力係数Cd=0.45でした。
006_case:球体周りのメッシュ修正+解析領域を広げる
innerとouterまわりの分割割合を調整して境目がわからないようにしました。
球体周りの抗力係数としては文献値と近くなったので、ひとまずこれをベースにしてバスケットボールまわりの流れの解析に移りたいと思います。
今回は球体周りで行ったのですが、次回これをバスケットボールの形状にフィットするようにメッシュを変形させます。
まとめ
今回はバスケットボールのまわりの下準備のため球体まわりの流体解析を行いました。
メッシュ生成は前回までの記事でblockMeshで作成し全てのメッシュを6面体メッシュで作りました。
前回、球体まわりの抗力係数は文献値のCd=0.44になりませんでしたが、球体周りのメッシュサイズを小さくすることで文献値と合うようになりました。
おすすめ参考図書
☟こちらは、OpenFOAMの日本語書籍として重宝しているわかりやすい参考書だと思います。
☟こちらもOpenFOMの古いバージョンでの和訳になります。さすがにこちらはバージョンに対する日本語でのケアはしていないので、OpenFOAMに慣れている方は購入しても良いかと思います。僕は「日本語でまとまっている内容」なので少し重宝しています。
☟以下に、もっと初心者向けの同人誌を紹介しておきます。
初心者は「ってか、まずどうやってOpenFOAMをインストールするの?」というところからつまずきがちです。
そんな時は、以下の書籍をおすすめします。
改訂新版 OpenFOAMの歩き方 (技術の泉シリーズ(NextPublishing))
インストール方法とチュートリアルで流体解析を体験・・・ちょっと高度な解析まで解説があります。著者曰くOpenFOAMのバージョンの追跡を行いながら、書籍をアップデートするようなので安心ですね。
OpenFOAMコードの辞書的な扱いとしては以下の参考書が大変役に立ちます。
本記事ではESI版のOpenFOAMを使っているため本書のFoundation版で対応していない部分がありますが、その辺を考慮しても持っていて損はないでしょう。
今回の記事はこちらの著者の方からモデル提供をいただきモデル作成の解説を行いました。
OpenFOAMでメッシュ作成