ささっと描いて、ささっと計算するには、GAMESSとAvogadroがあればよい。
AvogadroのExtensionでMMで構造最適化しておいて同じくExtentionのGamess inputへのExportを使えば大体の設定は出来るので、必要であればexportされたファイルの細かいところをいじればGAMESSは実行できる。
GUESSがヒュッケルでよいのかなぁ?と。走らせてみたいだけなのでまぁよしとする。
$contrl scftyp=rhf runtyp=energy $end
$system mwords=4 $end
$basis gbasis=n31 ngauss=6 ndfunc=1 npfunc=1 $end
$guess guess=HUCKEL norb=16 $end
$scf nconv=8 $end
$svp nvlpl=3 rhoiso=0.001 dielst=78.304 nptleb=1202 $end
$data
CH3CONH2 cgz geometry RHF/6-31G(d,p)
C1
C 6.0 1.361261 -0.309588 -0.000262
C 6.0 -0.079357 0.152773 -0.005665
H 1.0 1.602076 -0.751515 0.962042
H 1.0 1.537200 -1.056768 -0.767127
H 1.0 2.002415 0.542830 -0.168045
O 8.0 -0.387955 1.310027 0.002284
N 7.0 -1.002151 -0.840834 -0.011928
H 1.0 -1.961646 -0.589397 0.038911
H 1.0 -0.752774 -1.798630 0.035006
$end
結果
SVPE SOLVATION METHOD ENERGIES
----------------------------------
SOLUTE INTERNAL ENERGY = -207.98571642
[SURFACE POLARIZATION ENERGY] = -0.02089990 ( -13.11489 KCAL/MOL )
[VOLUME POLARIZATION ENERGY] = 0.00033438 ( 0.20982 KCAL/MOL )
[VOL POL OUTER LAYER ENERGY] = 0.00000212 ( 0.00133 KCAL/MOL )
REACTION FIELD FREE ENERGY = -0.02056552 ( -12.90506 KCAL/MOL )
TOTAL FREE ENERGY IN SOLUTION = -208.00628195
rungmsをちょっと書き換える必要がある。 あとgmsにalias切った。
set TARGET=sockets
set SCR=/Users/kzfm/gamess/scr
set GMSPATH=/Users/kzfm/gamess
# location where the .dat and .irc files go
set USERSCR=/Users/kzfm/scr
#
set JOB=$1 # name of the input file xxx.inp, give only the xxx part
set VERNO=$2 # revision number of the executable created by 'lked' step
set NCPUS=$3 # number of compute processes to be run
# provide defaults if last two arguments are not given to this script
if (null$VERNO == null) set VERNO=Jan122009R1
if (null$NCPUS == null) set NCPUS=1
水の構造最適化用インプットファイル
$CONTRL RUNTYP=OPTIMIZE SCFTYP=RHF MULT=1 MAXIT=100 UNITS=ANGS
$END
$SYSTEM TIMLIM=10000 MWORDS=30 MEMDDI=10 $END
$BASIS GBASIS=N31 NGAUSS=6 NPFUNC=1 NDFUNC=1 $END
$GUESS GUESS=HUCKEL $END
$DATA
H2O RHF/6-31G(D P) OPTIMIZE
CNV 2
O 8.0 0.00000 0.00000 0.00000
H 1.0 0.87 0.00 -0.50
実行
gms h2o.inp > h2o.out
DMPKブームがきた!とか思っていたのだけど、突然量子化学計算に引き戻された。
macbookにGAMESSを入れる。とりあえず64bitのを入れた。
溶媒効果を取り入れた計算がしたかったので、exampleを見てたらPCMのサンプルがあったので、これをながしてみる(exam31)
$contrl scftyp=rhf runtyp=optimize nzvar=12 $end
$system timlim=2 mwords=2 $end
$pcm solvnt=water $end
$basis gbasis=n31 ngauss=6 ndfunc=1 $end
$guess guess=huckel $end
$zmat izmat(1)=1,1,2, 1,2,3, 1,3,4, 1,3,5, 1,3,6,
2,1,2,3, 2,2,3,4, 2,2,3,5, 2,2,3,6,
3,1,2,3,4, 3,1,2,3,5, 3,1,2,3,6 $end
$statpt opttol=1d-5 $end
$data
Methanol in PCM water...starting at gas phase geom
Cs
H 1.0 -1.0616171503 0.8036449245 0.0000000000
O 8.0 -0.6870131482 -0.0653470836 0.0000000000
C 6.0 0.7093551399 0.0291827007 0.0000000000
H 1.0 1.0836641283 0.5408321444 0.8835398105
H 1.0 1.0975386849 -0.9797829903 0.0000000000
$end
実行結果(抜粋)
FREE ENERGY IN SOLVENT = -72190.31 KCAL/MOL
INTERNAL ENERGY IN SOLVENT = -72185.33 KCAL/MOL
DELTA INTERNAL ENERGY = 0.00 KCAL/MOL
ELECTROSTATIC INTERACTION = -4.97 KCAL/MOL
PIEROTTI CAVITATION ENERGY = 0.00 KCAL/MOL
DISPERSION FREE ENERGY = 0.00 KCAL/MOL
REPULSION FREE ENERGY = 0.00 KCAL/MOL
TOTAL INTERACTION = -4.97 KCAL/MOL
TOTAL FREE ENERGY IN SOLVENT = -72190.31 KCAL/MOL
さすがに一瞬で終わる。実用を考えるとPerlMolとかopenbabelのオブジェクトからインプットを吐き出して計算させてその結果をオブジェクトにして返すモジュールがあれば素晴らしいのだが。
量子化学専門のヒトは長いインプットから長いアウトプットを出して、それをなめまわす傾向はあるよな(偏見?)
普通のプログラムだとデバッグオプションとかverbose的な扱いの冗長ログが標準というか、、、、
丹念に見るって言うのかなぁ。「必要に応じて覗く」じゃなくて「常に完全に把握する」みたいな感じか。