« 2013年3月 | トップページ

2013年4月27日 (土)

Kubuntuにmoldenをインストールする (追加)

しばらく更新をさぼっておりました。

Kubuntuの13.04がリリースになったので、例によってVMwareにインストールしました。ちなみに、VMware上の仮想マシンを仕事に使わざるをえなくなったので、Workstationにアップグレードしています。

moldenを改めてインストールしようとして、以前の記事どおりに実行しようとしたところ、gfortranの次にlibx11-devをインストールしなければならなかったことに気づきました。たぶん、書き忘れていたのでしょう。

後は同じようにして、コンパイルは無事通りました。

| | コメント (0) | トラックバック (0)

2013年4月20日 (土)

C60のVRML更新

シクロヘキサンのVRMLですが、このホームページサービスの残り容量が意外に少なかったため、ちょっと考えています。コースを変えればいいのかもしれませんが(有料?)。

その前に、C60のVRMLのページを更新して、サムネイルを表示するようにしました。CF6とキュバンもそのうちに同じようにするつもりです。

| | コメント (0) | トラックバック (0)

2013年4月19日 (金)

シクロヘキサン追加予定

今度は、シクロヘキサンの分子軌道をVRMLにしてみたいと思っています。

| | コメント (0) | トラックバック (0)

2013年4月18日 (木)

C60の分子軌道

VRMLにして見てみると、エネルギーの最も低いものは節面なし、次の3つは節面1枚、次の5つは節面2枚、というふうになっています。

予想どおりではあります。

もっとも、節面の数が増えてくると、どこが節面なのかわからなくなってきます。

ちなみに、moldenはpov-ray用のファイルも出力できるのですが、レイトレーシング画像まで作ることにするかどうかは、ちょっと思案中です。

| | コメント (0) | トラックバック (0)

2013年4月17日 (水)

更新しました

というわけで、C60の分子軌道のVRMLを追加しました。

ドデカヘドランも追加したいです。レイアウトも変えたいですね。

| | コメント (0) | トラックバック (0)

2013年4月15日 (月)

C60の分子軌道のVRML

Moldenがうまく動作しているようなので、C60の分子軌道のVRMLを作成してみています。

久しぶりに、ホームページ側を更新できるかも。

| | コメント (0) | トラックバック (0)

2013年4月14日 (日)

Kubuntuにmoldenをインストールする

Kubuntuにはmoldenのパッケージはないようなので、ソースからインストールしてみることにします。

ソースはhttp://www.cmbi.ru.nl/molden/からダウンロードできます。

展開して、READMEを読むと、いきなりmakeでもいいみたいなので、実行してみます。

まずgfortranがないということなので、aptでインストール。これのパッケージ名はそのままgfortranです。

次はglx.hが見つからないと出ます。調べてみると、これが入っているパッケージは、libgl1-mesa-devらしいので、インストール。

次はglu.h。これはlibglu1-mesa-devをインストール。

それからmakedepend。これはわかりにくいのですが、xutils-devみたいです。

これでコンパイルが通りました。ちゃんと動作するかは、後でテスト。

| | コメント (0) | トラックバック (0)

2013年4月13日 (土)

正八胞体群について (6)

maxima上で、次のように入力します。

b:matrix([2,sqrt(2),0,-sqrt(2)],[0,-sqrt(2),-2,-sqrt(2)],[2,-sqrt(2),0,sqrt(2)],[0,sqrt(2),-2,sqrt(2)]);

これは前に書いた、行を2つずつ組み合わせて和と差を求め、実部と虚部(iで割っていますが)に分けたものです。本来は縦ベクトルにして並べるべきなのでしょうが、横ベクトルで並べています。後で転置行列にします。

各行のノルムが1になるように、2*sqrt(2)で割ります。

c:b/(2*sqrt(2);

実はこれは直交行列になっています。

d:^^(-1);

とすると、cの転置行列になっているのがわかります。

これで

c.a.d;

としたものが、次です。

4

5π/4とπ/4の、2つの回転を組み合わせたもののようです。確かに8乗すると単位行列になります。

| | コメント (7) | トラックバック (0)

2013年4月12日 (金)

正八胞体群について (5)

行列の固有値とか固有ベクトルを扱うのはmaximaの方がよさそうなので、そちらにします。

TeXmacsにmaximaのセッションを挿入して、行列を入力してみます。

3

なんか表示が妙ですね。それはさておき。

いったん固有値を求めてみたのですが、表記がわかりにくいので、同じことですがbとして入力してみました。最後のものが固有ベクトルです。固有値が1番目と2番目、3番目と4番目がそれぞれ共役になっているので、固有ベクトルもその順で組にして、実部と虚部に分けてみます

a+biとa-biで、それぞれを加えたものと、引いたものをiで割ったものを求めてみるわけです。

| | コメント (0) | トラックバック (0)

2013年4月11日 (木)

正八胞体群について (4)

さて、正八胞体群の位数8の元についてもう少し調べてみるために、置換群ではなく、行列群として表現することを考えてみます。このようにできるでしょう。

a:=[[0,1,0,0],[-1,0,0,0],[0,0,1,0],[0,0,0,1]];

b:=[[0,0,1,0],[0,1,0,0],[-1,0,0,0],[0,0,0,1]];

c:=[[0,0,0,1],[0,1,0,0],[0,0,1,0],[-1,0,0,0]];

g:=Group(a,b,c);

ConjugacyClasses(g);

これで出てきた共役類の代表元をチェックしてみると、

  [ [ 0, -1, 0, 0 ], [ 0, 0, -1, 0 ], [ 0, 0, 0, -1 ], [ 1, 0, 0, 0 ] ]

が位数8のようです。見やすくすると、こうなります。

1
これがどんな回転かを調べるには、maximaの方がやりやすいでしょう。


| | コメント (0) | トラックバック (0)

2013年4月10日 (水)

正八胞体群について (3)

四次元以上が三次元までと状況が異なるのは、回転角度を2つ以上取れることです。

たとえば、四次元ではある平面と、それと「一点で」直交する平面内に、それぞれ回転角度を指定できます(三次元では一点ではなく一直線です)。たとえば、このような感じです。

2
これはたまたまxy平面とzw平面になっていますが、当然他の平面も可能です。

これが正八胞体の回転で実際にどうなっているか、次に見てみます。

| | コメント (0) | トラックバック (0)

2013年4月 9日 (火)

正八胞体群について (2)

ところで、前回示した共役類の代表元のうち、

  (1,2,4,8,16,15,13,9)(3,6,12,7,14,11,5,10)

(1,2,4,8,16...)

の部分を見ると、1という番号が付けられた頂点がこの回転によって移動していく先は、常に1本の辺をはさんで隣り合った頂点のように見えます。この頂点の番号についてははっきり書きませんでしたが

1 (0,0,0,0)

2 (1,0,0,0)

3 (0,1,0,0)

4 (1,1,0,0)

のように考えてもらえればよいでしょう。つまり、この回転では

1 (0,0,0,0) -> 2 (1,0,0,0) -> 4 (1,1,0,0) -> 8 (1,1,1,0) -> ....

のように移動していくことになります。

ただこれだと、回転によって写り合う頂点はどう見ても1平面上には乗っていません。不思議な気がしますが、これには、四次元より高い次元での回転の性質が関係しています(というか、二次元と三次元の方が特殊)。

この話題、どこまで続くんだろう。

| | コメント (0) | トラックバック (0)

2013年4月 8日 (月)

正八胞体群について (1)

前の記事の正六面体の構成でやったことを、四次元の正八胞体でやってみると、このようになります。

gap> a:=(1,2,4,3)(5,6,8,7)(9,10,12,11)(13,14,16,15);

(1,2,4,3)(5,6,8,7)(9,10,12,11)(13,14,16,15)

gap> b:=(1,2,6,5)(3,4,8,7)(9,10,14,13)(11,12,16,15);

(1,2,6,5)(3,4,8,7)(9,10,14,13)(11,12,16,15)

gap> c:=(1,2,10,9)(3,4,12,11)(5,6,14,13)(7,8,16,15);

(1,2,10,9)(3,4,12,11)(5,6,14,13)(7,8,16,15)

gap> g:=Group(a,b,c);

Group([ (1,2,4,3)(5,6,8,7)(9,10,12,11)(13,14,16,15), (1,2,6,5)(3,4,8,7)(9,10,14,13)(11,12,16,15),
  (1,2,10,9)(3,4,12,11)(5,6,14,13)(7,8,16,15) ])

gap> Size(g);

192

gap> StructureDescription(g);

"(((C2 x D8) : C2) : C3) : C2"

gap> ConjugacyClasses(g);

[ ()^G, (3,5,9)(4,6,10)(7,13,11)(8,14,12)^G, (2,3)(5,9)(6,11)(7,10)(8,12)(14,15)^G,
  (1,2)(3,4)(5,10)(6,9)(7,12)(8,11)(13,14)(15,16)^G, (1,2,4,3)(5,6,8,7)(9,10,12,11)(13,14,16,15)^G,
  (1,2,4,8,16,15,13,9)(3,6,12,7,14,11,5,10)^G, (1,2,4,12,16,15,13,5)(3,10,8,11,14,7,9,6)^G,
  (1,4)(2,3)(5,8)(6,7)(9,12)(10,11)(13,16)(14,15)^G, (1,4,7,16,13,10)(2,3,8,15,14,9)(5,12)(6,11)^G,
  (1,4,16,13)(2,8,15,9)(3,12,14,5)(6,7,11,10)^G, (1,4,16,13)(2,12,15,5)(3,8,14,9)(6,10,11,7)^G,
  (1,8,13,12)(2,7,14,11)(3,6,15,10)(4,5,16,9)^G, (1,16)(2,15)(3,14)(4,13)(5,12)(6,11)(7,10)(8,9)^G ]

gap>

いろいろややこしくなりましたが、私が意外だと思ったのは、共役類に位数8のものがあることです。位数2、3、4のものは正六面体の場合と同じで、直感的にわかりやすいですし、位数6のものも何となくわかるのですが、位数8というのは普通は45度とか135度回転に関連しているわけで、90度回転の組み合わせでこのようなものが出てくるのは不思議です。

この点を理解するために、別の構成法を使ってみます。

まだまだ続きます。

| | コメント (0) | トラックバック (0)

2013年4月 7日 (日)

正六面体群について

昨日の記事のようにGAPで正六面体群を構成した上で、共役類を表示させると、次のようになります。

gap> a:=(1,2,4,3)(5,6,8,7);

(1,2,4,3)(5,6,8,7)

gap> b:=(1,2,6,5)(3,4,8,7);

(1,2,6,5)(3,4,8,7)

gap> g:=Group(a,b);

Group([ (1,2,4,3)(5,6,8,7), (1,2,6,5)(3,4,8,7) ])

gap> ConjugacyClasses(g);

[ ()^G, (2,3,5)(4,7,6)^G, (1,2)(3,6)(4,5)(7,8)^G, (1,2,4,3)(5,6,8,7)^G, (1,4)(2,3)(5,8)(6,7)^G ]

gap>

5つの共役類の代表元が出ていますが、前から単位元、対角線(頂点1,8を結ぶもの)の周りの120度回転、辺1,2の中点と辺7,8の中点を結ぶ線を軸とした180度回転、面1,2,4,3の90度回転、同じ面の180度回転であると解釈していいようです。

ところが同じことを、四次元の正八胞体でやってみると、意外なことに気づきます。実は前に書いたことのあることなのですが。

まだ続きます。

| | コメント (0) | トラックバック (0)

2013年4月 6日 (土)

GAPでの正六面体群の構成

GAPは非常に高機能・多機能なプログラムです。私が使用しているのはほんの限られた機能だけです。

少し前にしていたことを書いてみます。まず、正六面体群の構成です。

やり方はいろいろあるはずですが、すべての頂点に番号を振った上での、Z軸やY軸の周りの90度回転は、こうできます。

a:=(1,2,4,3)(5,6,8,7);

b:=(1,2,6,5)(3,4,8,7);

これらを基に群を構成します。

g:=Group(a,b);

この構成を進めていけば、四次元の正八胞体や、それ以上の次元の超立方体の群も構成できるわけですが、n次元で2n個の頂点を考えなければならず、面倒です。

実はそれらの群の構成だけであれば、もっと簡潔な方法があります。それはまた次に

| | コメント (0) | トラックバック (0)

LinuxのGAPのバージョン

これまであまり気にしていなかったのですが、LinuxディストリビューションでのGAPパッケージはあまり新しくないようです。

現在の最新版は4.6.3ですが、Squeeze、Wheezyともに4.4.12でした(バージョンの記法が違いますが、たぶん)。

確かに本家ページのマニュアルにある機能のうち、まだ実装されていないものに出くわしたことがあります。

ちょっと面倒ですが、ソースからインストールした方がいいようです。

Windowsでは最新版が用意されているようですね。

| | コメント (0) | トラックバック (0)

2013年4月 5日 (金)

Windows 8をシャットダウンする方法

あまり関係のない話ですが。

Windows 8に初めて触った人は、デスクトップ画面からどうやってシャットダウンするのか悩むようです。私もそうでした。

一般的に説明されている方法は、マウスカーソルを画面右上に持っていって、チャームと呼ばれているものを表示させ、一番下の[設定]をクリックし、次の画面で[電源]から[シャットダウン]を選択するというもののようです。かなり面倒な感じがします。

これはどの程度知られているかわかりませんが、チャームは[Windows]キー+Cで表示できます。

でもそれなら、[Windows]キー+Iで直接チャームの設定を呼び出せます([Windows]キー+英字でいろんなものが表示されるようになっています)。

さらに言えば、Alt + F4がもっと速いわけですが。

| | コメント (0) | トラックバック (0)

2013年4月 4日 (木)

点群のサンプルデータ

いくつかの分子の点群データのサンプルを示しておきます。
ちょっと変わったものが多いです。

 

過酸化水素
CN  2
 
O    8.0   0.6581279069   0.2328735651   0.2272442773
H    1.0   1.1306756234  -0.5236983989  -0.2272442773

 

メタン
TD  0
 
  C   6.0   0.0000000000   0.0000000000   0.0000000000
  H   1.0   0.6252854600   0.6252854600   0.6252854600

 

ネオペンタン
TD  0
 
  C   6.0   0.0000000000   0.0000000000   0.0000000000
  C   6.0   0.8948852665   0.8948852665   0.8948852665
  H   1.0   1.5307363129   1.5307363129   0.2864150025

 

ベンゼン
DNH  6
 
C    6.0   1.3868183034   0.0000000000   0.0000000000
H    1.0   2.4694344895   0.0000000000   0.0000000000

 

サルフラワー
DNH  8
 
  C   6.0   1.7555998654   0.7271932849   0.0000000000
  C   6.0   2.9999637820   1.2426255674   0.0000000000
  S  16.0   4.2921404132   0.0000000000   0.0000000000

 

シクロオクタテトラエン
DND  2
C   6.0   1.5666981184   0.6364387049   0.3957505779
H   1.0   2.4658205239   0.8009918210   0.9818180775

 

エタン
DND  3
 
C    6.0   0.0000000000   0.0000000000   0.7689221259
H    1.0   0.0000000000   1.0156376382   1.1536369949

 

シクロヘキサン
DND  3
 
C    6.0   0.0000000000   1.4712737364   0.2341230256
H    1.0   0.0000000000   1.5340445823   1.3207133821
H    1.0   0.0000000000   2.4890770614  -0.1506118196

 

S8
DND  4
 
  S  16.0   2.2019662809   0.9120842974   0.5622438608

 

ドデカヘドラン
TH  0
 
C    6.0   1.2576478345   1.2576478345   1.2576478345
C    6.0   2.0349456244   0.7772591626   0.0000000000
H    1.0   1.8854198625   1.8854198625   1.8854198625
H    1.0   3.0506062662   1.1653662827   0.0000000000

 

C60
TH  0
 
  C   6.0   1.1833731703   3.0278554980   1.4193092895
  C   6.0   2.2964935595   2.6026854014   0.7313653927
  C   6.0   3.4798671467   0.6879451794   0.0000000000

点群IhはGAMESSでサポートされていないので、部分群のThを使っています。

| | コメント (0) | トラックバック (0)

2013年4月 3日 (水)

WinGAMESSのインストール (6)

Facioでの使用方法の続きです。

構造の最適化がうまくいったら、基準振動を調べてみましょう。

そのままFacio内から続けて実行できるはずですが、inpファイルとbatファイルを使ってみることにします。

最適化で出力されたoutファイルの最後の方に、最適化後の原子座標が記されています。テキストファイルで開き、検索文字列を「coord」とかにして、最後のほうから先頭に検索していくと、見つけやすいでしょう。

これをinpファイルにコピーアンドペーストします。ただし注意点が1つ。この場合開くのは、gamess.64ディレクトリのFacio.inpでなければなりません。

Facio.batを読むとわかるのですが、Facio.inpをFacioディレクトリの*.inpファイルにコピーしてから計算を実行するようになっています。これに気づかずに、Facioフォルダディレクトリの*.inpファイルの方を編集しても、反映されないことになってしまいます。

基準振動の計算の時は、Facio.inpの最初のほうのRUNTYP=OPTIMIZEをRUNTYP=HESSIANに変更します。

Facio.batのcall rungms.bat Facio 12-64 1 0 C:\gamess.64\Facio.outも、1のところを2とか4とかにして、並列計算するのもよいでしょう。エクスプローラーでFacio.batをダブルクリックすると、直接計算を行えます。

無事終われば、[File]の[Load New GAMESS]の、今度は[Punch for Normal Mode Vibration]で.datファイルを読み込みます。やはりgamess.64フォルダ内のFacioフォルダにできているはずです。

[Tools] > [Viewers]の[Normal Mode Vib. Viewer]がアクティブになるので、それを選択してください。いろいろ機能がありますが、[Norma Mode]の番号を選び、[Calculate animation frames]をクリックしてから、[Start/Shift Frames]をクリックすると、分子の振動の様子を見ることができます。

| | コメント (0) | トラックバック (0)

WinGAMESSのインストール (5)

Facioで使用する場合です。

[Preferences]の[External Programs]でWinGAMESSのパスを指定します。ダイアログ下部の[Apply and Save to Facio.ini]をクリックするのを忘れないでください。

.inpファイルは、[File]の[Load New GAMESS]の[Input for Cartesian Cordinates]で読み込みます。たとえば次のようなファイルを作成して、読み込みます。

!*** methane ***
$CONTRL ICHARG=0 MULT=1 SCFTYP=RHF RUNTYP=OPTIMIZE LOCAL=NONE
         COORD=UNIQUE NZVAR=0 MAXIT=100 NPRINT=7 NOSYM=0
         PLTORB=.TRUE. EXETYP=RUN IREST=0
$END
$SYSTEM TIMLIM=600 MEMORY=10000000 $END
$STATPT OPTTOL=1.0E-4 NSTEP=100 METHOD=QA HESS=GUESS $END
$SCF SHIFT=.FALSE. DAMP=.TRUE. RSTRCT=.FALSE. CONV=1.0E-5 DIRSCF=.TRUE. $END
$BASIS GBASIS=STO NGAUSS=3
        NDFUNC=0 NFFUNC=0 NPFUNC=0 DIFFSP=.FALSE. DIFFS=.FALSE.
$END
$GUESS GUESS=HUCKEL $END
$DATA
***  ***
TD  0
 
  C   6.0   0.0000000000   0.0000000000   0.0000000000
  H   1.0   0.6252622784   0.6252622784   0.6252622784
$END

この場合、水素原子は1つしか表示されませんが、対称性を利用して実行する場合にはこれで問題ありません。
 
[Calculation]の[WinGamess]を選択し、パラメータを確認して (たまに$DATAのGROUPがC1に戻っていたりします)、[Execute Calculation]をクリックします。

無事終わったようなら、また[File]の[Load New GAMESS]の、今度は[Punch for $VEC/Molecular Orbitals]で.datファイルを読み込みます。通常、gamess.64フォルダ内のFacioフォルダにできているはずです。

問題がなければ、[Tools] > [Viewers]の[$VEC/Molecular Orbitals Viewer]がアクティブになっているはずなので、分子軌道を眺めてみてください。

| | コメント (0) | トラックバック (0)

2013年4月 2日 (火)

Molden再び

しばらくご無沙汰だったアプリケーションをまたいじってみています。

今回はMolden。バージョンが5.0に上がっていました。

これはソースからコンパイルしなければならないもの(以前もそうだったか)なので、とりあえずDebian Wheezy上で行うことにしました。./configureとかは特に必要なく、いきなりmakeでいいようです。もちろん、いろいろとライブラリ関係が足らないというエラーが出てくるので、いくつか(4つくらい?)aptitudeでインストールして、コンパイルを通しました。

速い。

軌道の3D表示などは、以前はがんばって一つ一つ書いているのが見えるようだったのですが、今では本当にさっと表示されます。

タイムスタンプを見ると、「以前」というのは2003年(10年前か)で、その頃は確かPentium 4 3.0Eを使っていました。今のマシンはCore i7 2700Kなので、ここの情報によると、スコアが20倍くらい違うようです。

こんなに違うなんて思ってもみませんでした。感慨深いですね。

Moldenですが、これにはVRLMを生成する機能があります。それをさらにいじってPov-rayのソースにして、量子化学のおもちゃ箱のコンテンツを作っていたのでした。

| | コメント (0) | トラックバック (0)

2013年4月 1日 (月)

VMware上のXPを最小の手間で最新状態にする方法

今日は今までとは全然関係のない話です。

Windows 8にアップグレードしたら、Windows 7のXPモードを使えなくなってしまいました(これはそういうものらしいです)。

XPが使えないと困る状況になる可能性があるので、とりあえず、VMware Player上で仮想マシンとしてインストールすることにしました。

インストール後に最新の状態にするのは、ちょっと面倒です。まず、まっさらな状態ではWindows Updateが動作しません。サイト側の仕様がXPが出たころとは変わってしまったということのようです。

それで、こういう手順になります。

  • XPのSP2をMicorsoftのサイト検索してダウンロード、インストールする(SP3はSP2が当たっていないと適用できません)。
  • SP3を検索してダウンロード、インストール
  • これでWindows Updateが使えるようになるので、更新する(120個以上あります。しかも1回ではすみません)

まあこれで、とりあえずは一安心です。実際に仕事で使う場合には、VMware Workstationにアップグレードしてからでないといけないらしいのですが、仮想マシンはそのまま使えると思うので。

| | コメント (0) | トラックバック (0)

WinGAMESSのインストール (4)

Winmostarでの使用方法です。

まず、WinGAMESSのパスを設定します。[その他]>[パスの設定]>[(1) GAMESS]を選択し、パスを指定します。

これで[計算]メニューの[(1) GAMESS.12-64.start.]が有効になりますが、これを選択する前に[GAMESSキーワード]>[Setup]で必要なパラメーターを設定して、[Set]をクリックします。

それから[(1) GAMESS.12-64.start.]を選択します。これで計算ができるはずです。

ただ、このままだと複数CPUでの計算ができないので、CPU数を変えたい場合には、1回実行してから元の.datファイルと同じディレクトリ内にWinmostarが作成した*.inp.batファイルを開き、

call rungms [分子名].inp 12-64 1 |....

の"12-64 1"の部分を"12-64 2"とかに変えてから、このバッチファイルを実行するとよいでしょう。

また、対称性を利用して計算する場合には、同様にして、*.inpファイルを変更してから、同じバッチファイルを実行するといいはずです。

| | コメント (0) | トラックバック (0)

« 2013年3月 | トップページ