TreeFoamをマルチリージョン問題で使う方法

DEXCS2012 for OpenFOAM をリリースして以来、同梱のTreeFOAMが好評ですが、単領域問題でしか使えないのが残念…という声も聞くようになりました。

しかし、マルチリージョン問題では使い方にコツが必要というだけで、TreeFoamを使って効率的にケースファイル編集をすることは可能です。ここにその要領を取りまとめておくので参考にして下さい。

なお、ここでは、OpenFOAMのマルチリージョン問題の典型例として、

heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeater

のチュートリアルケースを例に解説します。

OpenFOAMでは、マルチリージョンのケースであっても、形式的にはOpenFOAMのフォルダ構成

範囲を選択_387

になっており、TreeFOAM上で、解析ケースとして設定すれば、実行ボタンやparaFoamの可視化ボタンは使用可能です。

 

範囲を選択_389

つまり、

  1. ケースを選択し、解析ファイルに設定
  2. OF端末を開いて、Allrun を実行
  3. parFoamで可視化
  4. 計算結果の初期化
  5. 計算の実行
  6. plotWatcherの起動

といったあたりは、通常のチュートリアルケースを実行するのと同じです。

しかし、Field、Properties、Dict(system)の編集といったあたり、ケースファイルを勉強するのにもっとも必要になりそうなメニューで、所望のファイルを選択してくれません。ちなみに、gridEditorを起動しても…

範囲を選択_386

となってしまうので、マルチリージョン問題では使えない(?)という声になっているということです。

こうなってしまう理由は簡単なことで、マルチリージョン問題では、時間フォルダやconstant, system のデータは、各フォルダ下、領域ごとのサブフォルダ下に収納される構造になっているからです。

範囲を選択_390

ならば、領域ごとのケースファイルを用意して、それぞれのケースファイルが参照するデータと、このマルチリージョン問題で取り扱うデータとの間を整合させてやれば、各個別の領域ごとに、データ編集が可能になるんでは、というアイデアです。

つまり、たとえば以下のスクリプトを実行すると、

#!/bin/sh
for i in heater leftSolid rightSolid bottomAir topAir
do
if [ -d $i ]; then
echo $i “exists…”
else
mkdir $i
cd $i
ln -s ../0/$i/ 0
ln -s ../constant/$i/ constant
ln -s ../system/$i/ system
cd system
if [ -f controlDict ]; then
echo “$i/system/controlDict exists…”
else
ln -s ../../system/controlDict controlDict
fi
if [ -f decomposeParDict ]; then
echo “$i/system/decomposeParDict exists…”
else
ln -s ../../system/decomposeParDict decomposeParDict
fi
cd ../..
fi
done

それぞれの単領域ごとにケースフォルダを作り、マルチリージョン問題用に作成された時間フォルダや、constant, sysytem フォルダに対するシンボリックリンクを作成してくれることになります。

次にフォルダの再読み込みボタン①を押すと…

範囲を選択_391

マルチリージョンのケースファイル(multiRegionHeater)の下に、単領域ごとのケースフォルダ(heater leftSolid rightSolid bottomAir topAir)が認識されるようになる。

そうすると、これらの単領域ごとに、gridEditorを起動したり、Properties、Dict(system)の編集が可能になるということです。個別の編集が終わったら、マルチリージョンのケースで初期化や計算実行という手順は同じです。

あと、並列計算は、単領域ごとに領域分割し、計算はマルチリージョンを解析ケースとして起動する、という手順です。

 

以上、お試しあれ。

 

 

 

 

Share

「TreeFoamをマルチリージョン問題で使う方法」への6件のフィードバック

  1. 下記のようなCFDツールを使って天井アネモからの
    吹出し気流解析をOpenFOAMで実施出来るようなのですが、
    インストール・make等、初心者には難しそうです。

    DEXCS2012で解析出来ると参考になります。
    既にご存知かもしれませんがお知らせ致します。

              記

    http://www.caedata.org/wiki/OpenFOAM%28ja%29

    http://www.caedata.org/wiki/WikiStart(ja)

  2. Hi,

    Sorry for writing in English.

    You do a very good job.

    I try to do the TreeFoam chtMultiRegionFoam tutorial (https://drive.google.com/file/d/0B9TgLdmqjJuedmZkMVhsamd2X28/view?usp=sharing)

    When I try to do separate region I have this error (error:timeFolder does not exist, or does not separate).

    When I check logfile I find this error:

    “”For the cellZonesOnly option all cells have to be in a cellZone.
    Cell 0 at(-0.37500614 -0.37500185 -0.32501155) is not in a cellZone. There might be more unzoned cells.””

    Thanks.

コメントする

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

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

上部へスクロール