誰か助けて


粒子法シミュレーションという本を読んで、
SPHで2dの「水」的なものを実装してみたんです。


で、苦戦しつつも一応液体らしくはなってきたのですが、
どうも変な部分があるのでしばらく観察してみたところ、
実装してないはずの表面張力が働いているかのような
動きをしているということがわかりました。


なんだこりゃ?? と思って調べてみると、
どうも境界あたりの粒子が、周囲の粒子が少ないために
density(ρ)が低くなっており、そのため周りの粒子を吸い込んでいて、
お互いに吸い込みあって表面張力のようになっているらしいのです。


それはそれで結構美しいので
特に応用の予定がなければそういうもんだと
思えなくもないのですが、
どちらかというとパラメータをいじってゲームとかに使いたいので
制御できない力に働かれても困るといった感じです。


一応英語でいろいろとググっては見たのですが、
問題と認識している記事が2件しか見つけられなくて、
どちらも別段解決法は書いてありませんでした。


これどうしたらいいんでしょう。
ただの理解不足orバグでしょうか。