2009年1月18日日曜日

CFSバージョン起動

最近このブログ内容が偏ってると周囲の知人からは不評を頂いてたりする。しゃーねーやん、日々そーゆーんしか扱ってないんだもん。ここんとこ毎日家と研究室を点と線やし。google analyticsをみると、Fortran関連の検索で来ている人が多い模様。Fortran関係者の役に少しでもたってるとよいのぅ。Fortranのちょっと知っとくと便利情報とかエラーメッセージの解読方法とかあんまりWebで載ってないもんなぁ。わかったらまたぼちぼち書いていこう。

さてそんな無機質な日々の甲斐あって、なんだか数値計算の新バージョンがなんだかそれっぽい答えを返し始めた。ぬかよろこびでないことを祈る。数値計算ってテストケースがうまくいったーと思ったら本番投入したらわけわからんエラー出ることよくあるし。

新バージョンてのは12月の頭ぐらいから「学振結果待ちうぇぇ辛い…」な気分をごまかすべく作り始めたComplete Fock Space略してCFSをつかったNRGの計算コードでなんつうかまたマニアックな代物である。まぁそうでもなきゃこれに手だしてないからある意味学振に感謝かな。NRG自体が非常にアレゲというか人口少ない(一不純物ソルバーとしては史上最強のはずなんだが)計算手法でその中でもまたマニアックな手法らしく、似ているDM-NRGについては結構取り上げられてるけどCFSはあんまりというかほとんど見ない。DM-NRGは状態を二重にカウントしてて誤差でるってな噂あるんだけどなぁ。NRGでは計算機で計算可能にするためにステップごとにあまり大事じゃなさそうな状態を捨てていく、つまり繰りこんでいく。これが頭イイなやり方の反面いろいろ問題を起こす。CFSはこの捨てちゃった分も拾ってきて計算できるので精度がものすげー向上する&磁場が入っても大丈夫らしい。磁場はいったときにSTMのスペクトルがどうなるかを計算しようとおもったらこいつが一番だろうというわけでちまちま作ってたわけだ。大量のデータ扱わなあかんしめっちゃ実装するのめんどくさかった。モデル計算のくせにメモリ数G使うとか。とにかくなんとか動くもんができてやったーてな気分。なんかもうちょっと高速化できそうな方法も思いついたんで次はそれだな。