ryuon
高速な implicit algorithm の実装:
テストのテストの続きの続き。
3次方程式の解法。
自分のコードにやっとこさ間違いを発見。 正直に書くと、 xy の計算で、結果を代入していなかった。 つまりx = pow (x, y);
と書くべき所をpow (x, y);
としただけで、のんびりしていた。 bug なんてこういうものだよね、 という教訓のために明記しておこう。
その後、 GSL と速度比べしたら、あれれ倍近く遅いや。
GSL のコードを見ると、きちんと戻り値で解の数を返しているので (これが欲しかったのだ。 しかも後で見たらきちんと document にも書かれているではないか…… 手を抜かずにきちんと読みましょう)、 GSL のルーチンをそのまま使うことにする。
7/26/2008: 挙動がちょっと不安定?
一つ一つ bug を潰して行って、やっと6種類で妥当な結果を得る所まできた。 勝率10割!!
FENE-Fraenkel では s を大きくとりすぎていて、 おかしい(精度が悪い)としばらく悩んだ。 論文に従って s=0.01 程度にしておく。
高速 scheme と普通の非線形方程式解法(NITSOL and GSL)の比較:
これもなかなか骨が折れた。
ポイントは configuration を作る際、 FENE モデルでは bead distance を Q0 よりも 小さく取らないといけないが、そこをしくじっていた。
速度を比較したところ、本当に高速 scheme がダントツだな (これを期待して頑張っていたわけだけど)。
N=3 だと 少なくとも3倍、全般的に5倍程度は出ている。
N=30 だと GSL が急に performance が悪くなる。 それでも NITSOL の3倍弱は出ている。
調子にのって N=100 も見てみると、 いくつかの場合 NITSOL がこけるなぁ……。
6/30/2008: noHI のテスト、終了。