|
重要提醒:发现有些机器上progdyn移植过去后,当initialdis不等于0时,会产生非常古怪的初始构型。经过仔细研究发现,对proggenHP中function shiftStructure()改成如下内容即可解决:
- function shiftStructure() {
- # for (i=1;i<=numAtoms+9;i++) print header[i] > "temp394.gzmat"
- # for (j=1;j<=numCoord;j++) {
- # zGeo[j]=zGeoOrig[j]
- # for (i=1;i<=numFreq;i++) {
- # zGeo[j]=zGeo[j]+shift[i]*dzdm[i,j]
- # }
- # print label[j],zGeo[j] > "temp394.gzmat"
- # }
- # close("temp394.gzmat")
- # system("obabel -igzmat temp394.gzmat -oxyz > temp394.xyz")
- # for (i=1;i<=5;i++) getline < "temp394.xyz"
- # for (j=1;j<=numAtoms;j++) {
- # getline < "temp394.xyz"
- # geoArr[j,1]=$2; geoArr[j,2]=$3; geoArr[j,3]=$4
- # }
- # close("temp394.xyz")
- # original algorithm replaced by above (Singleton), but it seems that the above procedure is buggy, and then I suggest still using the following old algorithm.
- for (i=1;i<=numFreq;i++) {
- for (j=1;j<=numAtoms;j++) {
- for (k=1;k<=3;k++) {
- shiftMode[i,j,k]=mode[i,j,k]*shift[i]
- geoArr[j,k]=geoArr[j,k]+shiftMode[i,j,k]
- }
- }
- }
- }
复制代码 |
|