見出し画像

これも量子ではあるんだけど - 量子化学

量子コンピュータが流行っている昨今ですが、私にとって量子と言えば量子計算です。小学生の時に電子に興味を持ち、中学くらいから素粒子物理学を眺め、高校のときには一応、量子力学の計算はできたのですが、成れの果てが量子化学でした。

そして学部の時に取り組んだのが分子設計というやつでした。どういう分子を作ればどのような特性を持つのかというのを、MO(分子軌道法)で計算して実測値と比較してみようという挑戦でした(専攻は計算機ではぜんぜんなくて物理化学系なんですよ)。

分子軌道法

当時の大型機でも、イチから計算のみで結果を出す(非経験的分子軌道法)には能力不足で、一部を過去の結果をパラメタ化した半経験的分子軌道法と呼ばれる計算方法を使うことにしました。

非経験的分子軌道法

半経験的分子軌道法

この手の計算はMD(分子動力学法)を使うケースが多かったのですが、知りたいのが電気的(光学的)特性だったこともありMOにチャレンジしたのですが、少なくとも研究室では取り組んだ人がいなかったので、なかなか苦労しました。

基本的にはMOPACと呼ばれるFORTRANで書かれたパッケージがあって、これをゴリゴリと使っていました。

MOPAC

今でこそ今流のFORTRANになっていますが、当時は古典的なFORTRANで、これを計算機センターの大型機であるACOS650で動かしました。

えーとACOS650だったよな。

総合情報メディアセンターの沿革

いや、650にはアレイプロセッサは無かったような気もするので、書いていないけど次のACOS1000だったかもしれない。(あ、ここに書いてあるJUNET接続をやったのは私です)。このACOS、当時としては最先端ではあったようなのですが、いわゆるIBM機とは互換性が無くて、少しばかり癖があったのですが(1バイトが9bitなんですよ)、とりあえずパッケージは正しく動作しました。

日本電気オペレーティング・システムの歴史

特徴としてはベクトルレジスタ(アレイプロセッサ)というハードがあって、1命令で128個だったかまでの配列計算を実行できるのですが、これに対応したFORTRANコンパイラを通すと、何かと制約があって「ベクトル化できません」というメッセージと戦うことになりました。もちろんベクトル化できなくても計算自身は出来るのですが、かなりパフォーマンスが落ちることにはなります。

いずれにせよ計算量が大きいプログラムなので、注意して走らせないとすぐにCPU時間切れでプログラムが終わってしまいます。そこで特別ジョブ(D-JOB)に登録して、他の人が使わない時間を見計らって走らせるという手段に走り、センターに居着くことになりました(D-JOBはコンソールからしか実行できなかったような気がする)。

待ち時間に何メートルもあるACOSのマニュアルを読みふけっていたので、だいぶ大型機のシステムを覚えることはできました。本当にセンターにはお世話になった覚えがあります。

研究の方は計算結果が出たら終わりではなく、結果として得られたエネルギー値をもとに物性を計算して、これを実験結果と比較する必要があったので、まだまだやることは多かったのですが、これは長い話になるので、またいずれ。


ヘッダ写真は3Dプリンタで出力してみたC60の分子模型。

この記事が気に入ったらサポートをしてみませんか?