PISO法からPIMPLE法への変更について

631 views
Skip to first unread message

Kawamura

unread,
Oct 31, 2011, 4:46:03 AM10/31/11
to OpenFOAM
お世話になっております。川村と申します。

ひとつ質問があって投稿させていただきました。
このたび、OF1.7.0のinterPhaseChangeFoamをベースとして改良し、温度による相変化を扱うソルバーを作成したのですが、二相
の密度差が大きい場合、数値不安定が発生してしまいます。
三次元計算の時はadaptiveMeshを用いると、安定化するのですが、
二次元計算ではadaptiveMeshが使えないために、不安定な計算となってしまいます。

相変化による連続の式のソース項をmDotとして、
fvScalarMatrix pEqn
(
fvm::laplacian(rUAf, p) == fvc::div(phi)+mDot
);
のように解いていますが、ここで数値不安定が発生しているようです。

前置きが長くなりましたが、
そこで、不安定な流れに効果があるPIMPLE法を試したいと思っています。

そのためにはメインコードを修正する必要があるのでしょうか?
それともサブディクショナリファイルなどの変更で対応できるのでしょうか?

nakagawa

unread,
Oct 31, 2011, 8:36:27 AM10/31/11
to open...@googlegroups.com
中川です。
ソースコードに若干の修正が必要と思います。

ただ,OF2.0からは,PIMPLEが使われています。
OF2.0.1をベースにして,ソースを改造されてはいかがでしょうか?

なんらかの事情でOF1.7を使う必要があれば,OF1.7とOF2.0のソースを比べると,修正箇所がすぐにわかります。

ohbuchi

unread,
Oct 31, 2011, 4:43:46 PM10/31/11
to OpenFOAM
こんにちは。
1.7.xでもPIMPLEの様ですね。
以下ソースコードの抜粋です。

// --- Pressure-velocity PIMPLE corrector loop for (int
oCorr=0; oCorr<nOuterCorr; oCorr++) { bool finalIter
= oCorr == nOuterCorr-1;
#include "UEqn.H"
// --- PISO loop for (int corr=0; corr<nCorr;
corr++) { #include "pEqn.H" }

ohbuchi

unread,
Oct 31, 2011, 9:24:38 PM10/31/11
to OpenFOAM
昔のコードを調べてみたところ、interPhaseChangeFoamは1.5から導入されて、その当時から
PIMPLEであった様です。
コード中にコメントはありませんが、PISOループの外側にOuter Corrector Loopがある形式を
PIMPLEと呼ぶとすればですが。

安定化のためには、S.V.パタンカーの教科書にある様に生成項を線形化して、mDot を陰的に
扱うのが良いと思います。的外れでしたらごめんなさい。

nakagawa

unread,
Oct 31, 2011, 11:12:48 PM10/31/11
to open...@googlegroups.com
Ohbuchi様

フォローありがとうございます。
interPhaseChangeFoamは,昔からPIMPLEだったのですね。
私はinterFoamを使っており,OF2から変更になったので,他も同じかと思っていました。

Message has been deleted

Kawamura

unread,
Nov 1, 2011, 2:06:29 AM11/1/11
to OpenFOAM
ohbuchi様

コードまで調べていただきありがとうございました。
恥ずかしながらPIMPLEであったことは知らなかったです。勘違いしていました。

安定化の情報まで教えていただき、ありがとうございます。
早速、S.V.パタンカーについて調べてみたいと思います。



ご回答くださった皆様ありがとうございました。

Kawamura

unread,
Nov 1, 2011, 2:08:04 AM11/1/11
to OpenFOAM
nakagawa様

貴重な情報ありがとうございました。
OF2.0.1の導入も検討したいと思います。
Reply all
Reply to author
Forward
0 new messages