OpenFOAM

【OpenFOAM(cyclicAMI)】異なるメッシュの境界で円筒内の流れ

こんにちは(@t_kun_kamakiri

前回の記事では異なるメッシュの境界を結合する方法について解説しましたが、本記事では節点がつながっていない面でのcyclicAMIを使って円筒内の流れを解析したいと思います。

前回の内容は、

  1. mergeMesh:2つのメッシュ情報を合体する
  2. stitchMesh:2つの境界を結合する

円筒の場合

本記事の内容

異なるメッシュ境界面をcyclicAMI境界条件でつなげて円筒内流れを解析する

「mergeMesh:2つのメッシュ情報を合体する」の状態で仮に以下のように微妙につながっていない(以下の絵)、もしくは異なるメッシュ状態であっても周期境界 (格子の切り方が違う2面をつなぐ Cyclic Arbitrary Mesh Interface (cyclicAMI)タイプ)を課すことで解析することができます。

OpenFOAM-v2212(WSL)

モデルの準備

モデルの準備からします。
まず前回の記事で作成したフォルダの内容を確認しておきます。

  • mesh001
  • mesh002
  • mergeMesh001_002
    mesh001とmesh002を合体させた状態(境界でつながっていない)
  • stitchMesh001_002
    mesh001とmesh002を境界でつなげた状態

mergeMesh001_002(本記事で扱う)

stitchMesh001_002での状態(本記事では扱わない)

まずはcyclicAMIの条件のフォルダを用意します。
これにはmergeMeshでmesh001とmesh002のメッシュ情報を合体させただけのmergeMesh001_002をコピーします。

mesh001の「outlet_inlet」とmesh002の「outlet_inlet」はよく見るとつながっておりません。mesh002のblockMeshで生成後にz方向へ101mm平行移動させたからです。

mergeMesh001_002

このような状態でも、周期境界 (格子の切り方が違う2面をつなぐ Cyclic Arbitrary Mesh Interface (cyclicAMI)タイプ)の境界条件を課すことで境界をつなぐようにできます。

constant/polyMesh/boundaryのメッシュの境界の情報は以下のようになっています。

constant/polyMesh/boundaryの

これを以下に変える必要があります。

次に0フォルダの「U, p, k, omega, nuTilda, nut」も以下に変える必要があります。
参考までに「0/U」を載せておきます。

inlet_outletとoutlet_inletを対応させてneighbourPatchとするのがポイントです。
typeはcyclicAMIとすることで、境界はつながっていないですが対応する2つの面は周期境界となります。
その他「p, k, omega, nuTilda, nut」も同様にinlet_outletとoutlet_inletをcyclicAMIで対応付けします。
ここまでを手動で行っても良いですが、changeDictionaryを使うと便利です。

findコマンドでチュートリアルから適当に探します。

以下のように適当にコピーしてきて、

system/changeDictionaryDict

p,k,omega,nuTilda,nutはUと同じ条件の記述です。
もう少し楽な書き方があるかもしれませんが・・・

これで「constant/polyMesh/boundary」と「0/U, 0/p, 0/k, 0/omega, 0/nuTilda, 0/nut」の境界条件が変更されます。

円筒内流れの解析

では、メッシュと境界条件ができたので解析を実行します。
今回は↓こちらの記事で書いた層流・乱流の2つの条件で解析をします。

粘性係数でレイノルズ数を変えることで層流状態と乱流状態を作っています。

simpleFoamソルバで解析を実行します。

結果の確認

では、ParaViewで結果を確認してみましょう。
特にz=100mmでmesh001とmesh002をcyclicAMIで周期境界条件にしたのでどうなっているのかが気になります。

層流の場合

z=100(mm),101(mm)との速度分布を見ましたが、収束したころには同じ速度分布になっています。

乱流の場合

z=100(mm),101(mm)との速度分布を見ましたが同じ速度分布になっています。

まとめ

今回はmergeMeshしたあとに異なるメッシュでの境界面「outlet_inlet」と「inlet_outlet」面は周期境界 (格子の切り方が違う2面をつなぐ Cyclic Arbitrary Mesh Interface (cyclicAMI)タイプ)で設定して、円筒内の流れを解析を行いました。

次回、

  • cyclicAMIで解析した場合(今回)
  • blockMeshで一体になっている状態の解析
  • mesh001とmesh002をmergeMesh+stitchMeshした場合

この3つで解析結果に違いが出るのか確認します。

おすすめ参考図書

☟こちらは、OpenFOAMの日本語書籍として重宝しているわかりやすい参考書だと思います。

OpenFOAMによる熱移動と流れの数値解析(第2版)

OpenFOAMによる熱移動と流れの数値解析(第2版)

3,520円(05/18 11:52時点)
Amazonの情報を掲載しています

☟こちらもOpenFOMの古いバージョンでの和訳になります。さすがにこちらはバージョンに対する日本語でのケアはしていないので、OpenFOAMに慣れている方は購入しても良いかと思います。僕は「日本語でまとまっている内容」なので少し重宝しています。

OpenFOAMプログラミング

OpenFOAMプログラミング

Mari´c,Tomislav, H¨opken,Jens, Mooney,Kyle
8,250円(05/19 01:11時点)
Amazonの情報を掲載しています

☟以下に、もっと初心者向けの同人誌を紹介しておきます。
初心者は「ってか、まずどうやってOpenFOAMをインストールするの?」というところからつまずきがちです。
そんな時は、以下の書籍をおすすめします。

改訂新版 OpenFOAMの歩き方 (技術の泉シリーズ(NextPublishing))

改訂新版 OpenFOAMの歩き方 (技術の泉シリーズ(NextPublishing))

川畑 真一
2,376円(05/19 00:27時点)
発売日: 2022/04/15
Amazonの情報を掲載しています

インストール方法とチュートリアルで流体解析を体験・・・ちょっと高度な解析まで解説があります。著者曰くOpenFOAMのバージョンの追跡を行いながら、書籍をアップデートするようなので安心ですね。

関連記事もどうぞ

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です