OpenFOAM

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

cellZoneを作成する

次にtopoSetでcellZoneを作成して、作成したcellZoneを元にsplitMultiRegionで領域分割を行います。
ここではtopoSetのみを行い、後ほどsplitMultiRegionで領域分割を行います。

system/topoSetDict

以下のコマンドでcellZoneを作成します。

例えばHeater部分のみ見ていくと、

  • 黄色の丸の座標値を対角線にした直方体でcellSetを新規で作成
  • 緑色の丸の座標値を対角線にした直方体でcellSetを追加
  • 上記で作成したcellSetをcellZoneとして作成します。

これをParaViewで確認することができます。

ParaViewでheater部分だけを確認すると以下のようになります。

0.origのコピー

次に0.origを0フォルダとしてコピーします。

Allrun.preスクリプト内では以下の記述で同様のことができます。

Allrun.preの冒頭に「${WM_PROJECT_DIR:?}/bin/tools/RunFunctions」という記述があるので、また別のスクリプトを使用していることがわかります。
このスクリプトの中に「restore0Dir」関数があります。
気になる方は、vimなどで調べてみてください。

領域に分割

この状態だとまだ領域を分割できていないので、splitMeshRegionsコマンドを使ってcellZoneで分割を行います。
複数回計算させながら分割を行うのですが、分割した最終状態だけがほしいのでoverwriteをオプションで付けておきます。

これにより物理量を設定する0フォルダも領域ごとに設定が分かれれます。

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

constant/bottomWater/polyMesh/boundary

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

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

splitMeshRegionsの実行は必ず0.origをコピーして0フォルダを作成した後にしてください。

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

COMMENT

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