流体力学から数値計算まで

広告


バブルメッシュ法(bubble mesh method)

解析の精度を上げるためには、できるだけ節点を滑らかに配置する必要があります。 また、メッシュ作成もスムーズに行うことができます。ここでは、次のような方法で節点を配置してみます。


上図の様に直交座標上に2つの節点があるとします。それぞれ位置ベクトルを \(\vec{p}_{1}\), \(\vec{p}_{2}\) 、半径をr1 , r2 とします。この時、2つの節点に働く力は次式となります。

\[\begin{aligned}\vec{F}_{12}&=-\vec{F}_{21}\\[6pt]&=w\!\left(\frac{|\vec{p}_{2}-\vec{p}_{1}|}{r_{2}+r_{1}}\right)\frac{\vec{p}_{2}-\vec{p}_{1}}{|\vec{p}_{2}-\vec{p}_{2}|}\end{aligned}\]

ここで、wは重み関数であり、 この式は重み関数と方向ベクトルの積を表しています。 ここで、左図では引力、右図では斥力が節点間に働いています。 これは、次式の重み関数で表されます。


w < 1の場合は、斥力、 w > 1の場合は引力が働きます。 次に下図の様に周囲に複数の節点がある場合を考えます。


この場合は、節点に働く力は次式となります。

\[\vec{F}=\sum_{i=1}^{n}w\!\left(\frac{|\vec{p}-\vec{p}_{i}|}{r+r_{i}}\right)\frac{\vec{p}-\vec{p}_{i}}{|\vec{p}-\vec{p}_{i}|}\]

これは、斥力が正の向きを表しています。 従って、タイムステップごとの節点の方向ベクトルは次式なります。

\[\begin{aligned}\vec{r}&=cr\frac{\vec{F}}{|\vec{F}|}\\[6pt]&=cr\frac{1}{|\vec{F}|}\sum_{i=1}^{n}w\!\left(\frac{|\vec{p}-\vec{p}_{i}|}{r+r_{i}}\right)\frac{\vec{p}-\vec{p}_{i}}{|\vec{p}-\vec{p}_{i}|}\end{aligned}\]

ここで、cは緩和係数である。


節点の追加・削除

滑らかな節点を配置するためには、節点を追加・削除する必要があります。

上図の様に節点ごとに周囲の節点の粗密を考えます。 2次元の場合、節点の追加・削除の条件は次式なります。

節点削除:\(n(r_i)>8\)


節点追加:\(n(r_i)<5\)


ここで、節点の数密度をn(ri)です。


節点半径の補正

節点の半径は、次式の様に距離の加重平均で補正しました。

\[r=\frac{\displaystyle\sum_{i=1}^{n}w(|\vec{p}-\vec{p}_{i}|)r_i}{\displaystyle\sum_{i=1}^{n}w(|\vec{p}-\vec{p}_{i}|)}\]

ここで、wは重み関数で次式となります。

\[w(d)=\frac{1}{d+10^{-3}}\]

補正はタイムステップごとに行います。


結果

2次元の場合、下図の様な結果になりました。


デローニ分割後


矩形



円形



prev | up | next

カウンタ

(2011.3.15~)