blog青子守歌のブログこの広告は、90日以上更新していないブログに表示しています。2018の18日目の記事です。はじめにご存知の方もいらっしゃると嬉しいのですが、私はOpenMPSというオープンソースの粒子法実装を開発・公開しています。みなさん、粒子法ってご存知ですか?この記事を読んでいる人で知らない方はいないと思いますが、粒子法のよくある誤解として「でも格子法に比べて精度がでないでしょ?」「数学的な誤差評価ができないんでしょ?」というのがあります。研究者の数が少ないという意味で、格子法に比べてまだまだ解析・改善できていないところが多いというのは否定しません。半陰解法であるMPS法については、越塚先生らが最初に提案した原始MPS法(標準MPS法とも呼ばれる)では圧力擾乱がかなり最悪だったことからこの手の誤解が未だに存在するというのは悲しい事実ではあります。現代においてはかなり粒子法についての研究が進み、後藤先生・カイヤー先生らの高精度粒子法と呼ばれる改良スキーム群を始め、改善手法が多く開発されています。2:251がとても詳しいですので、(特に水などの非圧縮性流れに対する)粒子法を使う・研究する方は、必読です(最近フリーアクセスになったようです)。OpenMPSでもかなり参考にさせていただきました。最近発売された後藤先生の教科書『粒子法』にも詳しく載っていますので、「英語はちょっと・・・」という方はそちらも合わせてご覧ください。Correction)法を紹介したいと思います。230:3093–3118.によるものです。ここでは厳密さはあまり求めず、私の理解の元で整理し考え方を紹介することに注力しますので、ちゃんとした厳密な証明は元論文等をご覧ください。アドベントカレンダーをご覧になるような強い方々はもちろんご存知とは思いますが、この後の話に深く関わってくるので軽くおさらいしておくと、安定かつ適合ならば、その時に限り解は収束するというものです。安定性:演算によって混入した誤差(丸め誤差、打切り誤差など。元の微分方程式が一致する収束性:刻み幅を0極限した時に、離散化方程式の解と元の微分方程式の解が一致するというもので、離散化方程式の計算で得られた解の精度を評価するための根本的な定理です。ここで大雑把に言えば、安定性は時間方向の離散化、適合性は空間方向の離散化に対する制約です。今回の勾配修正法は、その名の通り「(ベクトルの微分演算子である)勾配」に関わるものですので、この適合性についての評価になります。粒子法におけるテイラー展開さて、適合性を評価する一番簡単な方法は、離散化する時に使ったテイラー展開と比較することです。ついて、粒子iの近傍にある粒子jの値をテイラー展開で推定しましょう。その式は以下のようになりますね。2粒子間の相対位置ベクトルです。割って正規化(単位ベクトル化)しましょう。ついでに2次以降を無視し、1次精度になるようなスキームを取ります。そこで、粒子法では、積分補間子と呼ばれる量で重み付けした値を積分すると、「この相対位置ベクトルが消せる」ことにするというモデルを取ります。i-j粒子間の重みを表します。