市來健吾の日記

プログラマ、(元)物理屋(ナノテク、流体)

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 のテスト、終了。