« 2007年02月 | メイン | 2007年04月 »

2007年03月31日

ノートPCを修理に出しました。

出しました、ってまだ送ってはいませんが(明日の午後の予定)。

IBMのThink Pad T40を学生時代から愛用しています。大学4年のときにYahooオークションで見つけて、出品者との直接交渉に持ち込んで入手した代物。出品者の方がキーボードの換装(JP→US)をやってくれて、非常にありがたかった思ひ出が…。
入手当時はCPUがPentium M(banias) 1.60GHz、HDDが4200rpmの80GBでした。その後、自らの手でCPUをPentium M(Dothan) 2.00GHzに、HDDを7200rpmの100GBに換装し、現在に至ります(外したCPUは今このBlogを書いているPCのCPUとなって活躍中、HDDはUSB外付けのHDDとして活躍中です)。

前の所有者と合わせてもう5年以上使っていることになりますが、まだまだ現役バリバリです。別に分子軌道計算をやるわけではないですから、Dothan 2GHzと1GBのメモリ,7200rpm/100GBのHDD,そして1400x1050の広大な液晶があれば十分過ぎるほどです。グラフィックは弱いですが、別に3Dゲームはしないですし、Vistaも入れるつもりがないので無問題。
が、利用環境が劣悪(埃が多いとか使い方が荒いとか…)だったせいで、そういったスペック以外のところにガタがきてしまったわけです。

具体的には、冷却ファンが回転し始めると何かに当たっているのか『ウィーン』と凄い音を立てます。パームレストの橋にはズボッと穴が開き、キーボードのトラックポイントは手を離しても動き続け、光学ドライブ(内部USB接続)は勝手に切断されたり接続したり…液晶画面にも傷が目立ち始めました。

結構かなりボロボロです。

そこで、IBMの修理に出すことにしました。料金表を見ても新しく買ったほうが安いことは明らかですが、やっぱりT40は手に馴染んだ名機。そう簡単には手放せません。
(そりゃ、軽くて小さいやつとかにはすごーーーーく興味はありますけどね)
一つのものを長く使い続けるっていうのは、大事なことですよきっと。我が家は物持ちが良くて、そこかしこに年代モノの家具や家電が転がっていますが、どれもまだ現役。あと10年はいけるでしょう。

本当は、計算用のワークステーション(Athlon X2 4400+)の計算速度に満足いかなくなってきていますが、もうちょっと我慢して、Nehalemが出たあたりで換えようかと画策中…

2007年03月22日

RSURFACEの怪

最近、ねじれ歪みの計算を合間を見てやっています。
意外と奥が深いもので、分子によっては非常に高価なモデル化学が要求されるものもあります。そんな難易度の高い分子に「過酸化水素」があります。O-O結合の回転障壁が曲者で、DFT如きでは正確な障壁は求められません。CCSD(T)でやっと満足いく値に。計算時間も馬鹿になりません(といってもせいぜい1時間ですが…PCも速くなったもんだ)。

実は、この回転障壁を求めるのにPC GAMESSのRSURFACE計算を使っているのですが、この挙動が非常に怪しいのです。

入出力ファイルはこちら
これが、実に怪しい計算結果となります。いや、途中まではいいんですが…順調に160°までは計算されます。ここで、以下のような出力が。

TRANSFORMING DISPLACEMENT FROM INTERNALS TO CARTESIANS
THE ROOT MEAN SQUARE ERROR IN ITERATION 1 IS 1.07957652

これ、あるポイントで最適化が終了して次のポイントへ移動するときに初期構造を作るところなんですが、Iterationが1回で止まってます。当然、次のステップの初期構造は突拍子もない構造(そもそも二面角が170°にすらなってない)になります。本当はこうなるはず(以下の例は一個前の150°の計算終了直後)。

TRANSFORMING DISPLACEMENT FROM INTERNALS TO CARTESIANS
THE ROOT MEAN SQUARE ERROR IN ITERATION 1 IS 0.97745774
THE ROOT MEAN SQUARE ERROR IN ITERATION 2 IS 0.50950356
THE ROOT MEAN SQUARE ERROR IN ITERATION 3 IS 0.08823055
THE ROOT MEAN SQUARE ERROR IN ITERATION 4 IS 0.00322970
THE ROOT MEAN SQUARE ERROR IN ITERATION 5 IS 0.00000319
THE ROOT MEAN SQUARE ERROR IN ITERATION 6 IS 0.00000000

本来はこのようにErrorが十分小さくなるまで繰り返し計算が行われるはずが、160°の次からいきなり変なことになってます。もしかしてステップ数制限!?と思ったのですが、細かく取れば24でも36でも行けます。でも160°のところでおかしくなる。ではこの構造がおかしいのか?と思いきや、0°からじゃなくて90°から始めると、160°~170°も正常に進みます。180°から始めて0°に向かうと、今度は20°のところでつまずきます。どうやら16回目が怪しい雰囲気ですが、他の系だと16回目とは限りません。例えばエタンの回転障壁を計算するときは、-60°から始めて+70°(13回目)でつまずきます。他にも結合長を変化させるパターンなども試して見ましたが、そちらは今のところ異常は見つからず。

さて、一体何なんでしょう?バグの可能性が非常に高いような気がしますが…Granovsky先生にメールしてみようか…

○追記(2007/03/31)
Facioの末永さんにこの件を訊いてみました。流石によくご存知で、「二面角をPES Scanの座標にした場合にしばしば起こるもので、原因は、Z-マトリクスの定義が悪いためにスキャンの変移量を内部座標からデカルト座標に変換するルーチンが変な値を出力したことにあります。」とのことでした。「バグではありませんが、次期のPC GAMESSではこの問題に関して少しだけ改善されるはずです。」とも。結局、スキャンする範囲を分割して対応することになるようです。PC GAMESS 7.0.4(internal build)がリリースされてからしばらく経ちますが、次期正式リリースが待ち遠しいですね(parallel MP2 gradientも込みで)。

私は詐称してません。

グラビアアイドルの夏川純さんが、自らの年齢詐称を認めたという記事が出ていました(自身のブログで告白してますね)。で、その記事を見てびっくり仰天です。

私と、正真正銘の同い年!(誕生日まで一緒)

これは、喜んでいいものなのか…f(^^;;

2007年03月17日

FGIIIの感想なんぞ。

ここ最近ちょっと仕事を頑張っていましたが、ようやく来週辺りから少しスローダウンできそう。

Feline Groove IIIが届いてから、速攻で中身をmp3化して携帯に入れました。2GBのminiSDカードには、アルバム19枚のmp3データがぎっしり。
zero3es_with_music.jpg

いつもこのZERO3[es]からイヤーハングヘッドホンを伸ばして会社の行き帰りに聴いてます。

自転車で会社に通っていますが、結構ヘッドホンをしていても外界の音は入ってきます(全く入ってこなかったら危なくてしょうがないわけですが)。Zebra(Track 2)までは聴けるんですが、7405926 apocalypse now(Track 3)は前半特に静かな時間が多いので、何にも聞こえません(笑)。まぁ、家のスピーカーでじっくり楽しんでます。
さて、そのFGIIIですが、第一感は「うーん…」でした。何かしっくりこない。Track 1は良かったんですが、Zebra, 7405926 apocalypse now ときて、何となく「こんなもんかなぁ?」と(うまくそのときの感情を表現できない…)。Felineとかpositive danceとかで「あー」ってなって、またMIMOZAあたりで「うーん」。
実は、私の第一感はいつもそんな感じで、うほっこここれはっ、といきなり思ったのはWAVEのAVALONとAFTER IMAGE,あとはhistory One(Cranky Disc)ぐらい。Ryzme 4UもOverdrive(Track 2)で「えー」ってなったりしました。
しかし、3回ぐらい聴くと細かいところまで耳が付いていくようになって、おぉ、これいいなぁ、ってなってきます。今回のアルバムなら、第一感でイイ!と思ったのはFGIII Introduction(Track 1)とFeline, the Blue...(Track 4),positive dance '' Final RAVE ''(Track 5),LAGOON.B(Track 6),the only leaf, eternity, Rubia cordifolia(Track 7),Holy Grail(Track 8),F(Track 11)。3回目ぐらいでいいなぁと思えてきたのはZebra(Track 2),Dourindalte(Track 10),FOREST - MARIE -(Track 12)。今の時点まで10回以上聴いて耳に馴染んできたのは7405926 apocalypse now(Track 3),MIMOZA(Track 9)。まぁ、7405926なんてMORRIGANらしい楽曲だよなぁとは思いますよね。現時点ではZebraDourindalteが特に気に入ってます。

で、結局はどうなの?ということですが、及第点ですね。すごい待たされた分期待が膨らみすぎたのかも。もちろん2000円で十分おつりが来る、珠玉の楽曲群です。是非手に取ってみて下さい。

…ところで、Track 10『Dourindalte』ってどういう意味でしょう??知ってる方、居ます?

2007年03月11日

FGIIIキタ━━━━(゚∀゚)━━━━ッ!!!

FG3kitaaaaa.jpg

これから聴きます!

2007年03月10日

「可視化」の威力と怖さ

MO計算データの可視化ソフトは、計算を利用するものにとって大変有り難い存在です。何しろ、元となる計算の出力データは数字の羅列で、直感的に理解しにくいものです。それを目で見て分かる形に変換してくれるのですから、説得力も増しますし、計算自体の魅力も増すのだと思います。

しかし、この「可視化」というものはその威力の反面、ブラックボックス的に使っていると痛い目にあうことになりかねません。
下の画像を見てください。これはPC GAMESSで計算したメタノールとエチレンのESP(静電ポテンシャル)を等電子密度面にマッピングした画像です(Winmostarで作成しました)。
ESPmapping1.jpg

これを見ると、エチレンとメタノールは同じぐらい分極しているように見えますね。

しかし、よく図を見てみると、この色分けにおける最小値と最大値が双方で異なることに気づきます。「ん?おかしくない??」と思った人は正しい感覚の持ち主。実際には、同じスケールで見る必要があります。今度は同じスケールで比較した画像を前の画像と並べて示します。
ESPmapping2.jpg

どうでしょう。特に水素原子のδ+性が、メタノールとエチレンでは異なることがお分かりいただけると思います(これがOH…X型水素結合の強さの原因です)。逆に、メタノールの酸素原子のlone pairとエチレンのπ電子は、水素原子の場合ほど違いがないようにも見えます。

この例は、有機化学者としての直感を有していれば容易に看破できるレベルの話です。とりあえず最初に出てくる可視化データを鵜呑みにするのではなく、どうやって可視化されたのかをつぶさに見ていくことが正しい結果解釈につながるのでしょう。
(あ、うちのサイトでもその原則に照らして修正する必要のある記述が…!?)

2007年03月09日

WinGAMESSの割り当てメモリ量の増量

以前に、WinGAMESSで指定できるメモリ量の妙な制限の話を書きました。これについて、ちょっとだけ解決したので覚書を。

WinGAMESSはCygwin/gccでコンパイルされていますので、cygwinのメモリ制限に引っかかるそうです。で、以下のレジストリキーを追加することで、その最大割り当てメモリ量を拡張することができます
HKEY_LOCAL_MACHINE/SOFTWARE/Cygnus Solutions/Cygwin/heap_chunk_in_mb
このキーのDWORD値に適当なメモリ量をMB単位で入れます。私のワークステーションは現在3072MBのメモリが積まれていますので、(全部使えるわけではありませんが)3072(10進数で)と指定してみました。すると、今まではMWORDS=122が限界値でしたが、これが172まで行けるようになりました。

一応嬉しいんですが、この中途半端な数値は一体…そもそも、3072MBというのは8B/wordsで換算して384Mwordsに相当します。全部の領域が使えないとはいえ300ぐらいまでは指定できると思っていたのですが…
結局拡張はできたものの、以前に計算できなかったNMR計算(180Mwords必要)にはまだ手が届きません。どうしたらいいんでしょう。

そういえばPC GAMESSの方もメモリ指定は謎で、メモリ1024MB搭載時と3072MB搭載時で指定できるメモリ量が変わりません(どちらもMWORDS=228が限界)。こちらはcygwinが絡んでいないので何とも見当がつきません…

《追記》
PC GAMESSの場合、CPUのアーキテクチャ(に対応したバイナリ)によって指定できる最大メモリ量は異なるようです。Athlon/Opteron/Pentium II用バイナリでは、物理メモリを3GB積んでいても228Mwordsしか指定できませんが(上記の通り)、Pentium III/Pentium M用バイナリでは、物理メモリを1GBしか積んでいなくても253Mwordまで指定できます。OSは同じWindowsXP SP2ですから、CPU/バイナリによって違うというのは間違いないのではないでしょうか。
(訂正)parallel(2 nodes)だと228、sequentialだと253ということのようです。アーキテクチャは関係ありませんでした。

WinGAMESSはCPU specificなバイナリではないせいか、Athlon 64 X2でもPentium Mでも同じ172Mwordsが限界でした。でも、物理メモリ量が全然違うのに限界が同じとは、どういうこっちゃ!?
(Pentium Mマシンでは先のレジストリの値を物理メモリに合わせて1024にしたのですが…)

"JOB"って何か知ってます?

最近、PC GAMESSのページのNewsで「JOB」という入出力ファイル操作用マクロが公開されました。これ、なかなか楽しいです。いくつかの実例が同梱されてますが、G2に代表される高精度エネルギー法が簡単に実行できるようになります。

とりあえず、以下のようなフォルダ/ファイル構成を前提とします。(ファイルは主要なもののみ示しています)

pcgamess
├gamess.bat (PC GAMESS実行用batファイル)
├pcgamess.exe (実行ファイル)
├JOB.EXE (ファイル操作マクロ)
├JOB.CFG (JOBの設定ファイル)
├test.bat (今回作成したテスト用実行batファイル)
└STENCILS (JOB用テンプレート格納フォルダ,JOB.CFGで指定)
  └B3LYP321GD_ESPmap.shb (今回作成したテンプレートファイル)

test.batとして以下の内容を。

@echo off
for %%f in (*.inp) do (echo ##B3LYP321GD_ESPmap %%f > %%f_B3LYP321GD_ESPmap.job & JOB.EXE %%f_B3LYP321GD_ESPmap.job)
del %%f_B3LYP321GD_ESPmap.job
pause

そして、B3LYP321GD_ESPmap.shbとして以下の内容を。

; RB3LYP/3-21G(d) Geometry
;
#copy_f %1 01.inp
#write_s 01.inp $CONTRL RUNTYP=OPTIMIZE DFTTYP=B3LYP5
#modify_g 01.inp $BASIS GBASIS=N21 NGAUSS=3 NDFUNC=1 $END
#comment 01.inp RB3LYP/3-21G(d) geometry optimization
#start 01.inp
;
;
; Electron density
;
#copy_f 01.inp 02.inp
#copy_geo 01.out 02.inp cart
#copy_vec 01.pun 02.inp
#write_s 02.inp $CONTRL RUNTYP=PROP
#ins_g 02.inp after $GUESS $ELDENS IEDEN=1 $END
#ins_g 02.inp after $ELDENS $CUBE CUBE=.T. MESH=COARSE $END
#comment 02.inp Electron density
#start 02.inp
;
;
; Electrostatic potential
;
#copy_f 02.inp 03.inp
#del_g 03.inp $ELDENS
#ins_g 03.inp after $GUESS $ELPOT IEPOT=1 $END
#comment 03.inp Electrstatic potential
#start 03.inp

適当な名前で.inpファイルを入れ、test.batを実行すると、.inpファイルの座標を使ってRB3LYP/3-21G(d)による構造最適化と電子密度/静電ポテンシャルのcubeデータ作成が自動で行われます。まぁ、これは一つの.inpファイルで計算できる内容なので別に大したものではないのですが(Winmostarではpunchファイル内のcubeデータを一つしか読めないので、それ用に別々の計算をする為のマクロです)、少しずつモデル化学の精度を上げながら構造最適化を行ったり、あるモデル化学で構造最適化と振動解析をした後、より高級なモデル化学でエネルギーを計算するといったことを、自動で行うことができるようになります。非常に画期的で、使い方次第でもっといろいろできそうです。

2007年03月04日

懐かしい面々と再会。

一昨日、昨日と懐かしい面々との飲み会が続きました。

金曜は大学時代の同期(研究室とは関係ない)と4~2年ぶりの再会。
船橋駅で待ち合わせだったのですが、何とそこに偶然同期の女の子が一人通りかかり、どういう偶然だろうと神に感謝しました(そこで誘えないのが弱ぇと後で反省模様)。何か、結局話した内容の90%は下ネタだったような気がしますが…大学時代のハングリーな生活を思い出して、今は恵まれた環境だなぁとしみじみ感じました。

土曜は高校時代の同期と凡そ8年ぶりの再会。
こちらは大学の同期と違って懐かしさonlyでテンションが上がりました。そして、皆変わっていない!誰もこの8年間でキャラチェンジしていないところがまた…何にせよ、高校時代そのままのノリで馬鹿話をできたのが嬉しかったですねー(あ、ちょっとシリアスな話も入ってたね)。この飲みは柏でやったんですが、柏に来るのが本当に久しぶりで「ビッグカメラ前集合ね」って言われてたんですが、ビッグカメラはすぐに見つけたものの(まん前だし)入り口がいくつもあって「どこやねん!」と。結局心を落ち着けてビッグカメラに入店(オイオイ
それにしても、高校時代の同期が川を挟んだ反対側で働いているとは、幼馴染が同じ市内に住んでいた衝撃事実(先月発覚)と合わせて『世の中はかくも狭いものか』と思い知らされたのでした…


どうやら、まだ僕の人生のピークは高校時代にあるようなので、今後にそれを超えるピークを迎えられるようにガンバリマス。。。

GAMESSでGaussian Cubeファイルの生成

PC GAMESSでは結構前のバージョンからGaussian Cubeデータの生成に対応していました。基本は$CUBE CUBE=.T. $ENDで、Cubeデータ化したいものに応じて他の入力を追加します。電子密度なら$ELDENS IEDEN=1 $END,静電ポテンシャルなら$ELPOT IEPOT=1 $ENDを追加すればとりあえず計算できます。

このPC GAMESSのCubeデータはマニュアルでは「Gaussian形式準拠」となっていますが、実は微妙に曲者で、数字を区切るスペースの数が部分的に異なるために、そのままだと読み込めないことがあります。

ここに書くのはちょっと面倒なので、詳しくはこちらのファイルを見てもらいたいのですが、要はCubeデータの最初にある分子の座標とかのデータの区切り方が揃っていないのです。なので、Cubeデータとして活用するにはスペースを調整して整形する必要があります(ちなみにFacioはGAMESSの変なCubeデータを読み込める賢いソフトです)。まぁ、基本的にはスペース区切りの数値データなので、数値を抽出するにあたってはあまり都合は悪くないはずですが…(Excelではどちらも同じように読み込めますし)。

何でこんなことを書いているかというと、会社で静電ポテンシャルのマッピングの話があって、良く考えたら自分は構造最適化がメインでそういうプロパティの計算を余りやってなかったので、ちょっとやってみたところ次から次へと変な問題が…(例えばMolekel 5.1ではGAMESSのDensity Matrixを読めないとか)
そんな中、S-O相互作用の話の続きでチオフェンの静電ポテンシャルを等電子密度面にマッピングしてみたら、何か変なところに正電荷領域が。(Winmostar Gridファイルはこちら)

thiophene_esp.jpg

硫黄原子上に注目して下さい。環中心から硫黄原子に向かう軸に沿った方向にはやや負の領域(オレンジ色)が広がっており、非共有電子対の存在を示唆しますが、その軸に直交する方向に、正の領域(青色)があります。実はここ、カルボニル酸素と相互作用する領域とぴったり一致します。諸熊分割ではS-O相互作用は静電相互作用がメインという話を書きましたが、確かにそうなっているようです。