メッシュサイズによる計算結果の歪みについて

153 views
Skip to first unread message

md

unread,
Oct 30, 2023, 4:27:09 AM10/30/23
to OpenFOAM
皆様

いつもお世話になっております.

現在、一様流中の三次元円柱周りの流れの計算を行っております.
以下にケースファイルを示します.

cfMeshを用いてメッシュを作成しsimpleFoamで計算を行っており、
メッシュ数削減のため、meshDictのobjectRefinementsでconeを用いて
円柱近傍から徐々にメッシュサイズを大きくするようにメッシュを切っています.

objectRefinements
{
  cone1
  {
    type  cone;
    cellSize  5e-7;
    p0  (0 0 71e-6);
    p1  (0 0 -71e-6);
    radius0 5.8e-6;
    radius1 5.8e-6;
  }
  cone2
  {
    type  cone;
    cellSize  7e-7;
    p0  (0 0 78e-6);
    p1  (0 0 -78e-6);
    radius0 10.8e-6;
    radius1 10.8e-6;
  }
  cone3
  {
    type  cone;
    cellSize  9e-7;
    p0  (0 0 80e-6);
    p1  (0 0 -80e-6);
    radius0 12.8e-6;
    radius1 12.8e-6;
  }
  cone4
  {
    type  cone;
    cellSize  2e-6;
    p0  (0 0 116e-6);
    p1  (0 0 -116e-6);
    radius0 48.8e-6;
    radius1 48.8e-6;
  }
}
mesh.png
このようなメッシュで計算を行い、円柱の中心を通るy軸に平行な直線上の
速度と圧力を見ると、以下のグラフのようになります.

メッシュのサイズが変わる位置で計算結果のグラフが歪んでしまうのですが
このようになるのは仕方が無いことなのでしょうか.

メッシュの切り方に問題がある、または計算スキーム等を変更すれば改善できるなど
何かご存じの方がいらっしゃればご教授いただけると幸いです.

よろしくお願いいたします.
p.pngUx.png

Masashi Imano

unread,
Oct 30, 2023, 9:43:25 AM10/30/23
to OpenFOAM
今野です.

> 以下にケースファイルを示します.

> メッシュのサイズが変わる位置で計算結果のグラフが歪んでしまうのですが
> このようになるのは仕方が無いことなのでしょうか.

ケースファイルがレポジトリにコミットされていてありがたいのですが、
肝心のグラフのデータのサンプリング方法がわからないので、教えてください。

md

unread,
Oct 30, 2023, 10:14:04 AM10/30/23
to OpenFOAM
今野 様

ご返信ありがとうございます.

グラフのデータのサンプリングは下図のように
円柱の中心を通るy軸に平行な直線上の圧力とx方向の速度をプロットしております.

cylinder_plot.png
よろしくお願いいたします.

2023年10月30日月曜日 22:43:25 UTC+9 Masashi Imano:

Masashi Imano

unread,
Oct 30, 2023, 10:31:23 AM10/30/23
to OpenFOAM
今野です。

> グラフのデータのサンプリングは下図のように
> 円柱の中心を通るy軸に平行な直線上の圧力とx方向の速度をプロットしております.

ありがとうございます。
ただ、そのサンプリングの具体的な方法を教えてください。
OpenFOAMでサンプリングしているのであれば、その設定ファイル等を教えてください。

md

unread,
Oct 30, 2023, 11:04:20 AM10/30/23
to OpenFOAM
今野 様

ご返信ありがとうございます.

サンプリングはparaviewのplotoverlineを用いて行っており、
図に示した直線上の1000点での圧力、速度をプロットしております.
こちらで回答になっていますでしょうか.

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

2023年10月30日月曜日 23:31:23 UTC+9 Masashi Imano:

Masashi Imano

unread,
Oct 30, 2023, 8:38:24 PM10/30/23
to OpenFOAM
今野です。

補間をかける前の格子定義点での生データの分布(■p, ■Uで色付け)や、
補間をかけた後のデータの分布(・p, ・Uで色付け)をみても、
refinementレベルが変わるところで圧力等が振動しているのでしょうか?

もし、上記が振動していないのにもかかわらず、
plotoverlineフィルタ後では振動しているのであれば、
plotoverlineフィルタでの補間により振動している可能性がありますので、
サンプリングラインを格子界面から僅かにずらすなどをしてみてください。

ただ、OpenFOAMのsamplingライブラリを用いて直接サンプリングするほうが、
より高度なサンプリングが可能ですので、
少し設定が面倒ですがお勧めです。

7.4 Sampling data

「OpenFOAM入門 キャビティ流れ演習資料Odyssey版」 サンプリングの設定、サンプリングの実行

以上です。

md

unread,
Nov 2, 2023, 3:48:05 AM11/2/23
to OpenFOAM
今野 様

ご返信ありがとうございます.

以下の写真がデータの分布(・Uで色付け)です.
微妙ではありますがrefinementlevelが変わるところで振動しているような気がします.

U_mesh.jpg
また、paraviewのplotoverlineのSampling Patternを以前のSample Uniformly(下図左)からSample At Segment Centors(下図右)に変更したところ、
少し改善されたものの完全には滑らかなグラフとはならなかったためサンプリング方法だけに問題があるとは考えにくいです.
p.pngp_segmentcentor.png

OpemFOAMのサンプリングライブラリというものを用いて直接サンプリングすることができるのは
存じ上げていませんでした.
こちらも試してみようと思いますが、サンプリング方法以外で改善できる部分はありますでしょうか.

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

2023年10月31日火曜日 9:38:24 UTC+9 Masashi Imano:

Masashi Imano

unread,
Nov 2, 2023, 7:48:11 AM11/2/23
to OpenFOAM
今野です。

- プロットは圧力なので、圧力の分布を見てください。
- > サンプリングラインを格子界面から僅かにずらすなどをしてみてください。
サンプリングラインをずらすのを試してみましたか?

md

unread,
Nov 2, 2023, 9:11:54 AM11/2/23
to OpenFOAM
今野 様

ご返信ありがとうございます.
圧力の分布を等値線でも確認しましたが下図のようでした.


p_conter.png
サンプリングラインをずらすのも試してみましたが変化はありませんでした.
よろしくお願いいたします.

2023年11月2日木曜日 20:48:11 UTC+9 Masashi Imano:

mizuki

unread,
Nov 2, 2023, 7:04:21 PM11/2/23
to OpenFOAM
> paraviewのplotoverlineのSampling Patternを以前のSample Uniformly(下図左)からSample At Segment Centors(下図右)に変更したところ、少し改善された

Paraviewのplotoverlineで最も精度が良いのは、“Sample At Cell Boundaries”なので、
改善が見られたのであれば、こちらを試す価値があるかと。

2023年11月2日木曜日 16:48:05 UTC+9 md:

md

unread,
Nov 3, 2023, 4:50:05 AM11/3/23
to OpenFOAM
mizuki 様

ご返信ありがとうございます.
Sample At Cell Boundariesも試しましたが、Sample Uniformlyよりは改善されたものの
Sample At Segment Centorsと同程度でした.

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

2023年11月3日金曜日 8:04:21 UTC+9 mizuki:

Masashi Imano

unread,
Nov 5, 2023, 1:10:24 AM11/5/23
to OpenFOAM
今野です。

upperwallとlowerwallのパッチの境界型がwallなのにもかかわらず、
境界条件が入出力ありのinletOutletになっていますので、
移動壁なら境界条件をfixedValue等、
入出力ありなら境界型をpatchにするべきかと思います。

なお、周期境界のパッチ対の境界条件がcyclicAMIになっていますが、
計算効率的にはcyclicを使ったほうが良いと思います。
ただ、そうするには格子生成法を工夫しないといけないかもしれません。

以上です。

md

unread,
Nov 5, 2023, 10:15:10 AM11/5/23
to OpenFOAM
今野 様

ご返信ありがとうございます.
>upperwallとlowerwallのパッチの境界型がwallなのにもかかわらず、
境界条件が入出力ありのinletOutletになっていますので、
移動壁なら境界条件をfixedValue等、
入出力ありなら境界型をpatchにするべきかと思います。

こちら参考にさせていただきます.

>なお、周期境界のパッチ対の境界条件がcyclicAMIになっていますが、
計算効率的にはcyclicを使ったほうが良いと思います。
ただ、そうするには格子生成法を工夫しないといけないかもしれません。

cyclicの方が計算効率的には良いことは存じ上げておりませんでした.
仰るとおり今回の計算では円柱とsidewallとの距離が近く,
sidewallのメッシュが円柱周りのメッシュと干渉するため,cyclic AMIを用いることとしていました.
(cyclicを用いるためには周期境界とする面同士でのメッシュが同じでないといけないと認識しております)

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

2023年11月5日日曜日 14:10:24 UTC+9 Masashi Imano:
Reply all
Reply to author
Forward
0 new messages