DEXCS2012 for OpenFOAM をリリースして以来、同梱のTreeFOAMが好評ですが、単領域問題でしか使えないのが残念…という声も聞くようになりました。
しかし、マルチリージョン問題では使い方にコツが必要というだけで、TreeFoamを使って効率的にケースファイル編集をすることは可能です。ここにその要領を取りまとめておくので参考にして下さい。
なお、ここでは、OpenFOAMのマルチリージョン問題の典型例として、
heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeater
のチュートリアルケースを例に解説します。
OpenFOAMでは、マルチリージョンのケースであっても、形式的にはOpenFOAMのフォルダ構成
になっており、TreeFOAM上で、解析ケースとして設定すれば、実行ボタンやparaFoamの可視化ボタンは使用可能です。
つまり、
- ケースを選択し、解析ファイルに設定
- OF端末を開いて、Allrun を実行
- parFoamで可視化
- 計算結果の初期化
- 計算の実行
- plotWatcherの起動
といったあたりは、通常のチュートリアルケースを実行するのと同じです。
しかし、Field、Properties、Dict(system)の編集といったあたり、ケースファイルを勉強するのにもっとも必要になりそうなメニューで、所望のファイルを選択してくれません。ちなみに、gridEditorを起動しても…
となってしまうので、マルチリージョン問題では使えない(?)という声になっているということです。
こうなってしまう理由は簡単なことで、マルチリージョン問題では、時間フォルダやconstant, system のデータは、各フォルダ下、領域ごとのサブフォルダ下に収納される構造になっているからです。
ならば、領域ごとのケースファイルを用意して、それぞれのケースファイルが参照するデータと、このマルチリージョン問題で取り扱うデータとの間を整合させてやれば、各個別の領域ごとに、データ編集が可能になるんでは、というアイデアです。
つまり、たとえば以下のスクリプトを実行すると、
#!/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 フォルダに対するシンボリックリンクを作成してくれることになります。
次にフォルダの再読み込みボタン①を押すと…
マルチリージョンのケースファイル(multiRegionHeater)の下に、単領域ごとのケースフォルダ(heater leftSolid rightSolid bottomAir topAir)が認識されるようになる。
そうすると、これらの単領域ごとに、gridEditorを起動したり、Properties、Dict(system)の編集が可能になるということです。個別の編集が終わったら、マルチリージョンのケースで初期化や計算実行という手順は同じです。
あと、並列計算は、単領域ごとに領域分割し、計算はマルチリージョンを解析ケースとして起動する、という手順です。
以上、お試しあれ。
下記のようなCFDツールを使って天井アネモからの
吹出し気流解析をOpenFOAMで実施出来るようなのですが、
インストール・make等、初心者には難しそうです。
DEXCS2012で解析出来ると参考になります。
既にご存知かもしれませんがお知らせ致します。
記
http://www.caedata.org/wiki/OpenFOAM%28ja%29
http://www.caedata.org/wiki/WikiStart(ja)
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.
I can’t access your turorial
(https://drive.google.com/file/d/0B9TgLdmqjJuedmZkMVhsamd2X28/view?usp=sharing)
Hi,
You can download it here : http://opencae.gifu-nct.ac.jp/pukiwiki/index.php?plugin=attach&refer=%C2%E8%A3%B3%A3%B3%B2%F3%CA%D9%B6%AF%B2%F1%A1%A7H260816&openfile=File2.pdf
Thanks
Dear Mogura,
I wonder if you can access the file or I send it to you by e-mail
Thanks
Hi,
I have resolved my problem by adjusting my topoSetDit file to create “air” region.
Thanks