OpenFOAM

【OpenFOAM入門】熱交換器の軸対称モデルでは失敗した

こんにちは(@t_kun_kamakiri

OpenFOAMの熱流体固体連成を使った熱交換器の軸対称モデルの解析を行います。
結論から言うと軸対称モデルは解析が失敗しましたm(__)m

なので、2次元の解析モデルで最後の結果を載せていますが、軸対称モデルでやってみたが失敗したという過程を本記事で記しておきます。

熱流体と熱伝導による固体の温度変化を解くソルバーを使います。

以下のサイトに熱流体固体連成以外の多くの例題が載っており、解析と理論解との妥当性検証を行う上ではとても参考になります。

ちなみにこちらは書籍にもまとまっていますので、是非手に取って眺めてみてください。

CFDで移動現象論111例題: Ansys Fluentによる計算解法

CFDで移動現象論111例題: Ansys Fluentによる計算解法

伊東 章, 大川原 真一
4,180円(04/27 22:39時点)
Amazonの情報を掲載しています

本書はFluentを使った解析事例ですが、これをOpenFOAMでもやってみたいと思います。

例題はこちら

「二重管式熱交換器(向流,並流) <etp2_26>    (軸対称,エネルギー,伝熱境界)」という例題の雛型モデルを作成します。

フルモデルで実際は解析することはせず、

2次元解析

軸対称モデル(失敗?)

軸対称モデルをうまくいきませんでした。

本記事は軸対称での解析設定の解説をしています。
またうまくいったら更新しようと思いますm(__)m

OpenFOAM v2312(WSL2)

熱流体固体連成のソルバ

今回は使うのは以下のようなソルバーです。

  • chtMultiRegionFoam
  • chtMultiRegionSimpleFoam
  • chtMultiRegionTwoPhaseEulerFoam

chtMultiRegionFoamとchtMultiRegionSimpleFoamの違いはSimpleFoamと付いている方が定常解析用です。

本記事では非定常解析のchtMultiRegionSimpleFoamを使います。

以前にもチュートリアルの解説記事を書きました。
chtMultiRegion系のソルバはフォルダ構成が比較的ややこしい(面倒)ので、取っ掛かりとしてはチュートリアルを理解するところからが良いでしょう。

チュートリアルのコピー

適当なチュートリアルをコピーします。

※「$FOAM_TUTORIALS」は環境変数でお使いのバージョンやインストール先によって変わります。

こちらの環境では以下のようになっていますのでご自身で確か見てみてください。

チュートリアルを確認するとchtMultiRegionFoamのフォルダ構成は特殊で各領域ごとに設定を用意する必要があります。

まずはチュートリアルをそのまま実行してフォルダ構成や設定項目を確認するのが良いでしょう。

2次元熱交換器のフォルダ構成

今回行いたい解析についてフォルダ構成をまとめました。

では、フォルダを移動してメッシュ作成から行います。

 

今回作成する領域名に名前に合うようにコピーしておきます。

メッシュ作成

メッシュ作成はblockMeshのみで行います。

blockMeshの中で3つの領域に分けます。

  • hotwater
  • coldwater
  • solid

以上の3つの領域のcellZoneを設けるためにblockMeshで以下のように設定します。

肝になるのは以下の部分です。

この状態でblockMeshを実行します。

この状態では以下のようにcellZoneとして分かれますが、メッシュ情報は「constant/polyMesh」にまとめられています。

「Read Zone」のチェックを入れる「MultiBlock Inspector(出てない人はViewタブでチェックを入れる)」で確認できます。

system/blockMeshDict

軸対称のモデルに変更

こちらの軸対称モデルの作成方法を利用します。

 

blockMeshで作成した面「Zmax」と「Zmin」の面をくっつけたことによって「bottom」がなくなっています。

constant/polyMesh/boundary

 

「system/createPatchDict」を編集します。
編集と言ってもいらない面を消すだけなので特に設定するものはありません。

system/createPatchDict

実行します。

こちらを実行すると大量のwarningが出ますが警告文なので無視してもよいです。
気になる方はこちら(リンク)に対処法を書いているのでご参考ください。

これにより面の数が9つになったことでしょう。

constant/polyMesh/boundary

cellZoneから領域を分割

blockMeshで作成したメッシュは領域に分割されていないので以下のコマンドで領域を分割します。

これにより領域ごとにメッシュ情報が分かれました。

フォルダ構成は以下となります。

ポイントは共有している面で以下のようにtypeがmappedWallになっているという点でです。
1例を示すとconstant/hotwater/polyMesh/boundaryは以下のようになっています。

constant/hotwater/polyMesh/boundary

その他の共有している面も以下のようになっています。
「A_to_B」のようになっているという点を意識しておきます。

1 2 3
関連記事もどうぞ

COMMENT

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