OpenFOAM

【ヒートシンクの熱流体(1)】OpenFOAMの熱流体固体連成のメッシュ作成

こんにちは(@t_kun_kamakiri

OpenFOAMの熱流体固体連成によるヒートシンクの熱流体解析の設定方法を解説します。
使用するソルバはchtMultiRegionSimpleFoamで熱流体と固体を連成させた定常解析用のソルバになります。

OpenFOAMv2412のバージョンにおいて現在は、浮力を考慮した熱流体解析ソルバは以下のものがあります。

ソルバ名 定常 / 非定常 主な特徴 主な用途・備考
chtMultiRegionSimpleFoam 定常 多領域の熱流体連成(非圧縮性) 構造物と流体の熱連成、定常問題向け
chtMultiRegionFoam 非定常 多領域・非圧縮性の時間依存連成解析 熱伝導と流体連成の過渡解析
chtMultiRegionTwoPhaseEulerFoam 非定常 多領域 + 二相流(Euler-Euler) + 熱連成 液体/気体の二相流+固体との熱連成に対応
buoyantSimpleFoam 定常 単領域の自然対流・熱伝導 密度差による自然対流、定常解析向け
buoyantPimpleFoam 非定常 上記の非定常版 過渡的な自然対流解析
buoyantBoussinesqSimpleFoam 定常 Boussinesq近似(小温度差) 温度変化が小さい自然対流
buoyantBoussinesqPimpleFoam 非定常 上記の時間依存版 過渡的自然対流、簡略化モデル

この中のchtMultiRegion系は流体(液体、気体)・固体の複数領域の熱流体解析を行うために設計されています。
ただ、テキストベースで解析設定しようとすると、めちゃくちゃ大変です。
以下にOpenFOAMが用意しているチュートリアルを解説した記事がありますので、一度読んでみると良いでしょう。

最終的にはヒートシンクの熱流体解析を行います。

マルチリージョン系はメッシュ作成だけでも少し特殊なので、本記事ではまずはメッシュ作成のみ解説したいと思います。

本記事の内容

chtMultiRegionSimpleFoamによるメッシュ作成方法の解説

OpenFOAM v2412(WSL Ubuntu 22.04)

解析対象

解析対象は以下のように、筐体内部に底面から2000Wの発熱体があり、発生した熱は上部に取り付けられたヒートシンクを介して放熱される構成します。
流体領域には自然対流が生じ、固体領域との熱連成を考慮して解析を行います。

モデル作成

モデルの作成はFreeCADで行いました。

まずはメッシュ作成用の作業フォルダを作成するため、今回行う解析内容と近いチュートリアルをコピーします。

modelフォルダを作成したのでFreeCADモデルはこちらに保存します。

形状は非常にシンプルなので、ここでは詳しい解説は行いません。

発熱減の底面は厚み2mmで42mm×40mmの大きさとします。

以下のように厚み2mm高さ15mmのフィンが9個並んでいるものとします。 以上でヒートシンクの固体領域のモデル作成ができました。
筐体部分(気体領域)も作成しておきます。

モデル作成したものを上記のように境界面に名前を付けておくと、OpenFOAMでの解析設定が楽です。

  • ヒートシンク(固体領域):heatsink.stl
  • 筐体(気体領域):outer.stl

として別々で出力します。

境界面に名前を付けると複数面に分割されてしまいますが、FreeCADのPythonマクロを使うとこれらをひとつのstlファイルにまとめて出力することができます。

動画で操作を確認したい人はこちらをご参考ください。

出力したstlファイルは寸法がmm単位なので、1/1000倍にしてメートルにします。

以後使用するのはheatsink_m.stlouter_m.stlです。

メッシュ作成

  • ヒートシンク(固体領域):heatsink.stl
  • 筐体(気体領域):outlet.stl

これをもとにメッシュ作成を行います。

事前準備

チュートリアルから気体領域(air)と固体領域(heatsink)をコピーして作成します。同時に不要な情報は削除しておきましょう。

不要な情報を削除

特徴線surfaceFeatureExtractDictとメッシュ作成snappyHexMeshDictをコピーします。

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

色付き文字がフォルダを意味しています。

ベースメッシュの作成(blockMesh)

まずはベースメッシュをblockMeshで作成します。
ベースメッシュのサイズはouter_m.stlとほぼ同じサイズ(じゃっかん大きいくらいで良い)とします。

system/blockMeshDict

ではblockMeshを実行します。

ベースメッシュがheatsinkをしっかり覆えているかをParaViewで確認しておきましょう。

特徴線の抽出(surfaceFeatureExtractDict)

特徴線はsnappyHexMeshのメッシュ作成の際に使用します。

system/surfaceFeatureExtractDict.air

surfaceFeatureExtractDict.heatsink

特徴線の作成は以下のコマンドで行います。

 

特徴線はconstant/triSurface/outer_m.eMeshconstant/triSurface/heatsink_m.eMeshに作成されています。

メッシュ作成(snappyHexMeshDict

snappyHexMeshDictは全文を載せておき、いくつか注意点を述べておきます。

system/snappyHexMeshDict

以下でstlファイルのgeometryを設定します。
同時にregionsでsnappyHexMeshDict内で設定する境界面を指定します。
stl作成の際に決めた境界面と同じにしておけばOKです。

以下で特徴線の分割数を指定します。

以下で境界面まわりの分割数を指定します。
ここでは特に再分割はしていません。

次が非常に大事なところです。
座標を指定することで、stlで囲まれた領域の名前を指定します。
必ず指定した座標が領域内部にあることを確認してください。

あとは境界層の数を指定する設定を行います。
addLayers yes;がno/offだと境界層の設定が効かないので注してください。

また、snappyHexMeshはメッシュの再分割と境界層の相性が悪いので、境界層を設定してもきれいに境界層が入らない場合があります。

以上でメッシュ作成の準備ができたのでsnappyHexMeshを実行します。

snappyHexMeshは3段階に分けてメッシュ作成を行います。
-overwriteオプションを付けておくとconstant/polyMeshにメッシュの最新情報が入ることになります。

メッシュが作成できてもconstant/polyMesh*Zoneというファイルができるだけで、まだ気体・固体領域に分かれていません。

領域分割

0.origフォルダをコピーしておきます。

以下で気体・固体領域の名前を指定します。

constant/regionProperties

気体・固体領域の分割は以下のコマンドで行います。

heatsinkのような固体領域は圧力pと温度Tのみ使用するので、不要な設定ファイルは削除しておきます。残していても問題なく計算はできますが…

領域分割によりフォルダ構成は以下となっています。

splitMeshRegionsコマンドにより、0, constant. system内に領域ごとの設定ファイルが作成されますconstant/air(heatsink), system/air(heatsink)のフォルダは元々作成していましたが、0/air(heatsink)はフォルダが生成されたと思います。

ParaViewでメッシュを確認しましょう。
以下のように領域ごとにパッチ名が割り当てられていることを確認してください。

気体領域と固体領域で共通している面は、heatsink_to_airair_to_heatsinkの名前が付けられます。

以上でメッシュ作成を終わります。

まとめ

本記事で見たようにマルチリージョン系はメッシュ作成でも少し癖があるので、手動で行うのは結構手間です。
次回は境界条件を設定しますが、0, constant, systemフォルダ内の設定はファイルは各領域(air, heatsink)ごとに設定しないといけないため、めちゃくちゃ面倒になります。

可能ならTreeFoamのようなGUIで設定できる方が良いかもしれません。
WSLでもTreeFoamが使えそうなのを確認したので、おいおい設定方法をまとめたい思います。

計算力学技術者のための問題アプリ

計算力学技術者熱流体2級、1級対策アプリをリリースしました。

  • 下記をクリックしてホームページでダウンロードできます。
  • LINE公式に登録すると無料で問題の一部を閲覧できます
    ※LINEの仕様で数式がずれていますが、アプリでは問題ありません。

OpenFOAMに関する技術書を販売中!

OpenFOAMを自宅で学べるシリーズを販売中です。
OpenFOAM初学者から中級者向けの技術書となっていますので、ぜひよろしくお願いいたします。

見出し画像

おすすめ参考図書

本記事は以下の書籍の例題のひとつになります。
Fluentでの設定を確認したい方は本書を手に取ってみると良いでしょう(サンプルモデルが公開されています)

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

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

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

☟こちらは、OpenFOAMの日本語書籍が無い中唯一わかりやすい参考書だと思います。

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

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

3,520円(08/07 18:31時点)
Amazonの情報を掲載しています

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

OpenFOAMプログラミング

OpenFOAMプログラミング

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

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

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

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

川畑 真一
1,320円(08/08 04:33時点)
発売日: 2022/04/15
Amazonの情報を掲載しています

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

 

 

関連記事もどうぞ

COMMENT