OpenFOAM

OpenFOAMの熱流体固体連成のチュートリアル(snappyMultiRegionHeater)

splitMeshRegions :各領域に分割

まずは0.origをコピーして0フォルダを作ります。

splitMeshRegionsを行う前に必ず0フォルダを作成する必要があります。

では、splitMeshRegionsを実行してsnappyHexMeshで作成したcellZoneを使って領域の分割を行います。

ParaViewで確認。

メッシュ情報として「constant/bottomAir/polyMesh/boundary」は境界条件のtypeにも関わるので確認しておきます。

constant/bottomAir/polyMesh/boundary

以下のような構造になっています。

typeはmappedWallとしておく必要があります。

あとの境界の設定は前回の記事と同じです。
別のページ開くのも面倒だと思いますので以下に書いておきます。

境界条件の設定

Allrun.preを見ると以下のような記述があります。

foamListRegionsが「constant/regionProperties」で指定しているリストをします。

foamListRegionsだけだと領域全ての要素をリストにするので、 [bottomWater topAir heater leftSolid rightSolid]というリストになります。

しかし以下のようにregionTypeを指定すると、

「foamListRegions solid」とsolidを指定するとsolidだけを要素にするので [heater  leftSolid rightSolid]となります。

つまり、上記のdo文は以下のようになります。

既に設定がされていたら設定を消すためものですね。
「rm -f」の「-f」オプションはファイルがあれば削除するというものです。

続いてAllrun.preを見ると以下のようになっています。

これはsystemフォルダ内で各領域のフォルダ内を用意しその中にchangeDictionaryを用意して境界条件の設定を変更していきます。


例えば例としてbottomAirを見てみると、

system/bottomAir/changeDictionaryDict

上記のスクリプトでchangeDictionaryが実行されると、以下のようにファイルが作成されます。

各領域がどの様に変更されたのかを見ていきます。

0/bottomAir/U

0/bottomAir/T

changeDictionaryで“bottomWater_to_.*”としているので、「bottomWater_to_」からはじまる境界は全て同じ設定にしています。
前回の記事と異なる点は以下です。
leftSolidとheaterが接触する部分の温度について、
以下のように、デフォルトでは界面での熱流束は単純に領域の熱伝導率で決まります。
0/leftSolid/T

以下のように熱伝導率を持つ厚みにある境界面を挟むことができます。
前回の記事で紹介したチュートリアルは以下のようになっていました。

0/leftSolid/T

  • thicknessLayersで厚みを0.001[m]
  • kappaLayersで熱伝導率を0.005[W/m K]

この辺の違いも確認しておくと良いですね。

1 2 3 4
関連記事もどうぞ

COMMENT

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