市來健吾の日記

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

ryuon


  • Brownian dynamics

    • shear with PBC

      • 実装、その3 - recip 部の table 版:

        • とりあえず、 recip 部は no-table 版で組むことにする。

      • テストの準備:

        • まず、現状のチェック(test-all)が全て通るか確認……したら、 fail している。 check-brownian.c の check_minv_FU だ。 追い詰めていくと、 FTS の mob が atimes と matrix で違っている。

        • check-mob-fts.c で、まずこいつを追う。 ついでに、FTS に限り fluid-rest 版を完備した。

        • そうこうしていたら、当の bug を発見。 何のことはない、 non-table 版から paste したコードが古くて、 そいつが間違いを含んでいた。直したら、既存のチェックは全て通るところまで来た。

      • テスト:

        • simple-cubic を二つ並べた cell では +L, -L shift は元の configuration と等価でる。 この事実を使ったチェックを check-ewald-shear.c に組む。

        • こっちも最初おかしな結果が出てきて、少しはまる。 しかし、実は簡単なポカで、k に対する shift の補正を、 loop の中で += していた(正確には -=)、というもの。 その都度、値を定義することで、チェックはクリアされた。