部分構造の最適化は、分子の内部座標系についてのみ可能。
$zmat で内部座標を定義した後、ifreez($statpt)に固定する内部座標を指定する。
分子構造が最適化されていく過程で重心を原点に取り直すので、
その時の計算誤差のために、固定したはずの結合距離や結合角度は、
10^-6 程度は動く場合がある。
入力ファイルの例 : ベンゼン分子で、C-H 結合距離のみ最適化する。
$contrl runtyp=optimize coord=zmt nzvar=30 $end
$scf dirscf=.true. $end
$basis gbasis=n21 ngauss=3 $end
$statpt
ifreez(1)=1,2,3,4,5,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30
$end
$zmat
izmat(1)=1,1,2, 1,2,3, 1,3,4, 1,4,5, 1,5,6,
1,1,7, 1,2,8, 1,3,9, 1,4,10, 1,5,11, 1,6,12,
2,1,2,3, 2,2,3,4, 2,3,4,5, 2,4,5,6,
2,2,1,7, 2,3,2,8, 2,4,3,9, 2,5,4,10, 2,6,5,11, 2,1,6,12,
3,1,2,3,4, 3,2,3,4,5, 3,3,4,5,6,
3,3,2,1,7, 3,4,3,2,8, 3,5,4,3,9, 3,6,5,4,10, 3,1,6,5,11, 3,2,1,6,12
$end
$data
benzen 3-21g
Dnh 6
C
X 1 10
C 1 rCC 2 90
C 3 rCC 1 120 2 90
C 4 rCC 3 120 1 0
C 5 rCC 4 120 3 0
C 6 rCC 5 120 4 0
H 1 rCH 3 120 4 180
H 3 rCH 4 120 5 180
H 4 rCH 5 120 6 180
H 5 rCH 6 120 7 180
H 6 rCH 7 120 1 180
H 7 rCH 1 120 3 180
rCC 1.3
rCH 1.0
$end