GGIによる回転体の解析について

649 views
Skip to first unread message

Sakuma

unread,
Aug 1, 2010, 7:43:35 AM8/1/10
to OpenFOAM
OpenFOAM初心者のsakumaです。

MRFsimpleFoamで回転体の計算を実施していますが,GGIなる方法で回転体を解く方法がある
事を知りました。MRFsimpleFoamでの計算は実際に回転物を回して計算している分けでないため,
実際に回転させることができる(?)GGIなる方法に興味を持ったわけです。

オープンCAE学会の記念として頂きましたDEXCS2009-OpenFOAM-dev版のOpenFOAM 1.5-dev
のicoDyMFoamのmixerGgiに事例がありますが,このsimpleFoam版に対応するものはないでしょうか。

OpenFOAM1.5.x,1.6.x,1.7.xのチュートリアルをfind . -name boundary | xargs grep
ggiで探しました
が,GGIの事例は見つけられませんでした。

GGI自体がまだ一般的な解析方法ではないということでしょうか。cfd-on-lineなどを見ましたが,あまり良
く理解できておりません。

GGIの使い方,先に挙げたもの以外の事例,MRFsimpleFoamとGGIの比較など,どなたかご存知の方
がおられましたら,ご教授をお願い出来ないでしょうか。よろしくお願いいたします。

ohb...@amber.plala.or.jp

unread,
Aug 17, 2010, 7:05:42 AM8/17/10
to OpenFOAM
こんにちは。
GGIを使うには、OpenFOAM-1.5-devが必須です。
下記からで最新版ソースを入手してください。
http://sourceforge.net/projects/openfoam-extend/

チュートリアルのtutorials/icoDyMFoam/mixerGGIにSakumaさんのニーズにあった事例が
あります。
GGIの設定手順は、以下の通りです。
1. インターフェースをパッチで定義
2. faceSetでGGIパッチに対応するfaceZoneを定義
3. boundaryに type ggiで定義  shadow patchに相手方のパッチを指定

以上、ご参考まで。

Sakuma

unread,
Aug 19, 2010, 9:42:09 AM8/19/10
to OpenFOAM
ohbuchiさん sakumaです。

 GGIについて情報を頂きましてありがとうごさいます。

 このGGIですが,ファンのような形状でもパッチさえ設定出来れば
simpleFoamで計算できるということでしょうか。

 まずは,お教え頂きました方法でやってみます。ありがとうごさいました。

On 8月17日, 午後8:05, "ohbu...@amber.plala.or.jp"
> > がおられましたら,ご教授をお願い出来ないでしょうか。よろしくお願いいたします。- 引用テキストを表示しない -
>
> - 引用テキストを表示 -

ono

unread,
Aug 20, 2010, 10:38:01 AM8/20/10
to OpenFOAM
はじめまして。

最近GGIをいろいろいじくり回して遊んでいるものです。

GGI機能をsimpleFoamで、ということですが、つまりは乱流の計算がしたいということでよろしいでしょうか?

でしたらicoDyMFoam+RAS乱流モデルのTurbDyMFoamを使われるといいと思います。

アルゴリズムがSIMPLEではなくPISOになりますが、実際に回転させる以上、非定常計算でないと意味がないので、この点は問題ではないかと思いま
す。

チュートリアルはありませんが(たぶん。。今手元にOF環境がないので確認できません。。)、icoDyMFoamのものに乱流計算用のファイル
(0ディレクトリにk,e、constantディレクトリにTurbulencePropertiesなど)を付け加えれば大丈夫です。

ただ、私のケースの場合は、GGIですとdeltaTをかなり小さくとらないと発散してしまうため、最近ではsliding interfaceにシフ
トしつつあります。

また、1.5-devの開発者がGGI関連のarticleをフォーラム等で発表しているようです。こちらも今手元になく、正確な案内ができないのです
が「openfoam ggi」なんかで検索エンジンにかけて探していたら見つけたものです。英語ですが、定式化から解説があります。



ohb...@amber.plala.or.jp

unread,
Aug 20, 2010, 6:52:21 PM8/20/10
to OpenFOAM
sakumaさん、こんにちは

onoさんも仰っている様に、回転をdynamicMeshで扱うにはturbDyMFoamが必要です。
定常解析でよければ、MRFSimpleFoamが使えます。
まずは、MRFSimpleFoamをお試しになるのが良いのではないでしょうか?

GGI対応の回転体向けdynamicFvMeshライブラリは、mixerGgiFvMeshです。
これは回転領域のセルゾーンがmovingCellsという名前に固定されていますので
注意が必要です。セルゾーンを指定しないと、中心軸に一番近い領域を自動的に
登録します。二重反転プロペラや、複数回転軸をもつ系には対応できません。
これらの問題を扱いたい場合には独自のライブラリを作る必要があります。

onoさんのご指摘のとおりturbDyMFoamでは1ステップあたりの回転角度を0.5度
などと非常に小さくとらないと安定に計算できない問題がありますが、TurboMachinery SIG
http://openfoamwiki.net/index.php/Sig_Turbomachinery
で公開されている transientSimpleDyMFoamならもう少し大きい回転角度でも安定に
計算できます。

以上、ご参考まで。

Sakuma

unread,
Aug 23, 2010, 11:27:32 AM8/23/10
to OpenFOAM
sakumaです。ohbuchiさん, onoさん色々な情報をありがとうございます。

OpenFOAMを勉強中なでの良く理解できていない部分が多く申し訳ないのですが,
ファンを定常回転(10000から30000rpmのレンジ)させた時,羽根部分の流れ状態
(乱流)を解析したいと思い,現在はMRFSimpleFoamで解析をしています。

ただ,MRFSimpleFoamでは実際にファンは回っていないため,実際に定常回転さ
せた場合,MRFSimpleFoamとGGIどこが違ってくるか見たいと思った訳です。

これはあまり意味がないでしょうか?

 実際に回転させて計算したいファンの羽根枚数は30数枚と多いのですが,この場合
でも時間の刻みステップはともかく,GGIが使えるのでしょうか。

 また,onoさんがお書きになっているsliding interfaceとGGIとはどの辺りが違うのでしょ
うか?

 よろしくお願いいたします。

On 8月21日, 午前7:52, "ohbu...@amber.plala.or.jp"
<ohbu...@amber.plala.or.jp> wrote:
> sakumaさん、こんにちは
>
> onoさんも仰っている様に、回転をdynamicMeshで扱うにはturbDyMFoamが必要です。
> 定常解析でよければ、MRFSimpleFoamが使えます。
> まずは、MRFSimpleFoamをお試しになるのが良いのではないでしょうか?
>
> GGI対応の回転体向けdynamicFvMeshライブラリは、mixerGgiFvMeshです。
> これは回転領域のセルゾーンがmovingCellsという名前に固定されていますので
> 注意が必要です。セルゾーンを指定しないと、中心軸に一番近い領域を自動的に
> 登録します。二重反転プロペラや、複数回転軸をもつ系には対応できません。
> これらの問題を扱いたい場合には独自のライブラリを作る必要があります。
>
> onoさんのご指摘のとおりturbDyMFoamでは1ステップあたりの回転角度を0.5度
> などと非常に小さくとらないと安定に計算できない問題がありますが、TurboMachinery SIGhttp://openfoamwiki.net/index.php/Sig_Turbomachinery
> > > - 引用テキストを表示 -- 引用テキストを表示しない -
>
> - 引用テキストを表示 -

ono

unread,
Aug 24, 2010, 4:20:09 AM8/24/10
to OpenFOAM
http://powerlab.fsb.hr/ped/kturbo/openfoam/Berlin2008/SessionIV/OSCIC-08_BeaudoinMartinJasakHrvoje.pdf

上で述べたOpenFOAM上でのGGIについての文献です。参考になれば幸いです。

かなりの速さで(CFD的に)ファンが回転しているようなので、MRFで解ける形状であり、
なおかつ定常解が得たいのであれば、MRFを用いるのが得策と思います。

ただ、GGIで同じ形状を解いてどうなるのか(解に影響があるのか)は、数値流体力学的には確かに気になりますね。工学的には…どうなんでしょう。


>>実際に回転させて計算したいファンの羽根枚数は30数枚と多いのですが,この場合
>>でも時間の刻みステップはともかく,GGIが使えるのでしょうか。
羽枚数というよりは形状が問題だと思いますが、一般的な「ファン」であれば問題ないと思われます。
ただし、かなり回転速度が速いので時間刻みは相当制限されますね。また、羽枚数が多いということは総メッシュ数もかなり多くなっているのではないでしょ
うか。
しかも回転系のGGIは並列計算の勝手が良くないので相当計算時間がかかるかもしれませんね。


GGIは上の文献にもある通り、整合していないメッシュ間における物理量のやり取りをWeighting Factorを用いて数式上連結させたという
もので(詳しい人、間違ってたら指摘下さい。。)
ここで私が言っているSliding Interfaceとは、不連続なメッシュ界面が発生しないように、回転するメッシュとしないメッシュの間に、両
者をうまく結合するような形のメッシュを挿入するものです。
1.5-devについているmixer2Dというチュートリアルケースを、出力の時間刻みを少し小さくして動かしてみてください。見た方がわかりやすい
と思います(笑)


ohb...@amber.plala.or.jp

unread,
Aug 24, 2010, 7:25:56 AM8/24/10
to OpenFOAM
Sakumaさん、onoさん、こんばんは。

> ただ,MRFSimpleFoamでは実際にファンは回っていないため,実際に定常回転さ
> せた場合,MRFSimpleFoamとGGIどこが違ってくるか見たいと思った訳です。
> これはあまり意味がないでしょうか?

私は、ターボ機械の設計用解析では、殆どMRFSimpleFoamの方法(FrozenRotor)
を使っています。それは、計算結果が早くでるためです。
スライディングによる非定常解析は、流れ場の時間変動をみたいときと、FrozenRotor
では精度が期待できないときに限っています。
精度が悪い事例としては、ボリュートポンプなど吐出し流路が非軸対称の場合に、羽根
の角度によって流れが変動するのですが、FrozenRotorの様な固定した状態で計算する
と不自然なフローパターンが助長され変な結果になることや、軸流ファンなどで羽根と
静止系要素との干渉によるウェークが実際には変動により均一化されるのに、Frozen
Rotorでは固定された状態となるので実際よりも剥離が起きやすくなって、全体的な
フローパターンが全く違ったものになるという様な事がありました。

この様に、FrozenRotorは手軽で有用ですが注意も必要です。
従って、GGIによる非定常計算に意味がないということは決してありません。
問題は、計算負荷が大きすぎることだと思います。
Reply all
Reply to author
Forward
0 new messages