icoFOAMでコアダンプしてしまうことの解決方法について

154 views
Skip to first unread message

MiyashitaKousei

unread,
Jan 18, 2023, 9:55:04 AM1/18/23
to OpenFOAM
先程同じ内容の質問を一度送りましたが、誤った情報が多く書き込まれてしまっていたため、一度問題の質問を削除し、改めて新しい会話を作り直しました。無駄な通知を受信してしまった方々にお詫び申し上げます。

宮下と申します。
OpenFOAM等の解析ソフトに触れるのは初めてで、サンプルプログラムを動かしたり、ネットの文献を見ながら勉強しています。

 境界面の一つに凸形状を作成し、凸形状のある境界面と反対側の境界面から非定常の流れを与え、流れは凸形状のある面に衝突した後に、凸形状と流入面の2つの面を除いた4つの境界面から流出させたいです。
 流速は1.0e-6[m/s]とし、endTimeを10秒や100秒に設定してもコアダンプせず、時間刻みは0.01秒程度で計算ができることを目指します。

イメージ図
Screenshot_20230118_185704_Galaxy Notes.jpg

問題点
 icoFoamコマンドを実行した際にコアダンプする。
 流速、メッシュの分割幅、icoFoamの時間刻みを調整して経過時間を伸ばそうとしましたが失敗。
 paraFoamコマンドを実行し、メッシュは作成されていました。
sa2mesh01.png
sa2mesh02.png

しかし、速度場の可視化(ベクトル表示)はendTime1の

自分が考える問題点
・クーラン数の設定が甘い
 コアダンプしなかった時のクーラン数はCo = 1.0e^(-4)で、δt = 0.1[s] δx = 1.0e^(-6) |U| = 1.0e^(-9)で設定しました。

・境界条件の設定が悪い

 文字数制限のためzipファイル内にsetumei.txtという名前で実験の手順と各ファイルの説明を送ります。コアダンプしてしまった際のファイルはmiya.zip、エラー文はerror.txtにあります。
 粗い時間刻みで計算しきれたmiyahelp1と途中でコアダンプしたmiyahelp2を送ります。
過去に同じような解析をしたことのある方や、解決方法などをご存知の方がいらしたらご教授いただきたいです。
miya.zip

Masashi Imano

unread,
Jan 19, 2023, 2:29:43 AM1/19/23
to OpenFOAM
今野です.

0/p
```
    outletWall
    {
      type fixedValue;
      value uniform 0;
    }
```

system/fvSolution
```
PISO
{
    nCorrectors     2;
    nNonOrthogonalCorrectors 0;
    pRefCell        0;
    pRefValue       0;
}
```

実行して試しているわけではないので外しているかもしれませんが,
outletWall パッチで圧力境界条件(p=0)を与えているので,
圧力境界条件が無いcavityチュートリアルと異なり,
格子番号0(pRefCell)の圧力を0(pRefValue)とする条件は不要ではないでしょうか?
2023年1月18日水曜日 23:55:04 UTC+9 MiyashitaKousei:

MiyashitaKousei

unread,
Jan 19, 2023, 7:44:09 AM1/19/23
to OpenFOAM
今野様
質問への回答ありがとうございます。返信が遅れてしまい申し訳ありません。

早速その条件を削除して計算にかけたいと思うのですが、
fvSolution内の「格子番号0(pRefCell)の圧力を0(pRefValue)」の条件を不要にするには
具体的にどのようにPISO{}内を書き換えればよいのでしょうか?
単純に問題となっている2行を削除してしまっても構わないのか、
それとも明確に値を指定するのではなく、値を指定しない形で自由にさせればいいのか教えていただきたいです。

また、問題となっていたicoFoam計算の途中でコアダンプしてしまう問題についてですが、
system/fvSolution/PISO{}内の nCorrectors の値を現状の”2”から”10”へ増やし
圧力の計算と速度の更新を繰り返す圧力補正ループ回数を増やしたところ、
指定したendTimeまで計算し続ける事ができました。
しかし、クーラン数の最小値がmean=約7000 最大値がmax=約15500となってしまいました。
かなり無理やりな形になってしまったので、果たしてこのやり方が正しいのか、よく理解できていません。

paraViewで確認した結果がこちらです。
左から0(s)、0.1(s)、1.0(s)時点の中央に凸形状の頂点を通るスライス(y=40.0e-6のスライス)で
UMagnitudeを2Dベクトル表示で表示しました。
divtmp6_0s時点の速度場.pngdivtmp6_01s時点の速度場.pngdivtmp6_1s時点の速度場.png
これを見ると、途中まではまさに私が思い描いた通りの流れが再現できていると思ったのですが、
時間が経過すると1.0(s)時点のように流出面の設定した面と凸部との間に渦が発生してしまいました。

この原因としては下のイメージ図のようなものを考えています。
設定した上からの流れ(赤)に巻き込まれる形で、本来流出面として設定されているにも関わらず、
流入面の流れに巻き込まれる形で計算モデル内に逆流し、流出面に逃れようとした流れ(赤)と衝突する。
行き場を失った緑の流れが渦を作る。
ime-zi.png
このような状況を起こさないためには、流出面を逆流禁止にして、流れが一方通行に流れるような境界条件の設定をしなければならないのでしょうか?

今考えているのは、本来ならありえませんが、流出面から外側に向けて微小の流れをあらかじめ設定しておくことで
無視できるくらいのそれらしい流れを再現できるのではないかと考えています。
しかしこれでは全く意味がないと思うので、解決策などをご存知の方がいらっしゃいましたらご教授いただきたいです。
2023年1月19日木曜日 16:29:43 UTC+9 Masashi Imano:

Masashi Imano

unread,
Jan 19, 2023, 7:12:18 PM1/19/23
to OpenFOAM
今野です。

> 早速その条件を削除して計算にかけたいと思うのですが、
> fvSolution内の「格子番号0(pRefCell)の圧力を0(pRefValue)」の条件を不要にするには
> 具体的にどのようにPISO{}内を書き換えればよいのでしょうか?

icoFoamのチュートリアルで圧力境界条件となっているケースを調べてみてください。

2023年1月19日木曜日 21:44:09 UTC+9 MiyashitaKousei:

MiyashitaKousei

unread,
Jan 20, 2023, 6:09:40 AM1/20/23
to OpenFOAM
今野様

チュートリアル内の表記を参考にして計算を行った結果、うまく計算できました。
ありがとうございました。

引き続きOpenFoamへの理解を深めていきたいと思います。
2023年1月20日金曜日 9:12:18 UTC+9 Masashi Imano:
Reply all
Reply to author
Forward
0 new messages