计算化学公社

标题: sobEDA.sh脚本中$iopsh值的确定问题 [打印本页]

作者
Author:
quanta    时间: 2023-10-24 15:33
标题: sobEDA.sh脚本中$iopsh值的确定问题
sob老师,我看了sobEDA.sh里面的内容:
  1. if (( $iopsh == 1 )); then
  2.   echo
  3.   echo "Note: Calculation of whole system will be conducted in unrestricted way"
  4. fi
复制代码
这个$iopsh的值是前面for循环下定义的:
  1. for ((i=1;i<=$nfrag;i=i+1))
  2. do
  3. awk 'NR==var' var=$((2*i)) fragment.txt > tmp
  4. read chg multi < tmp
  5. multiarr[$i]=$multi
  6. if (( $multi != 1 )); then
  7.   iopsh=1
  8. fi
复制代码
那iopsh的具体值就是由最后一个fragment的自旋多重度确定的了,为什么这样做,我没太理解。

作者
Author:
snljty2    时间: 2023-10-24 15:44
你理解错这段代码的逻辑了,for ... do对应的done在很后面的位置,这里for前面设置了iopsh=0,含义明显是循环每一个片段,只要有任何一个自旋多重度不是1,就把iopsh设为1,代表所有片段都用开壳层,否则(也就是所有片段自旋多重度都是1,都是闭壳层)iopsh还是用0,表示用闭壳层。
作者
Author:
quanta    时间: 2023-10-24 17:47
谢谢回复,还是有点儿不明白。

像sob举的例子:CH3NH2,片段是:
2
0 2
1-4
0 -2
5-7
那整体的自旋多重度应该是1了,但iopsh是1,此时Calculation of whole system will be conducted in unrestricted way,我没太理解这话。
作者
Author:
sobereva    时间: 2023-10-24 20:51
quanta 发表于 2023-10-24 17:47
谢谢回复,还是有点儿不明白。

像sob举的例子:CH3NH2,片段是:

任何一个片段是开壳层,整体就必须当开壳层算
作者
Author:
quanta    时间: 2023-10-26 13:47
谢谢sob老师




欢迎光临 计算化学公社 (http://bbs.keinsci.com/) Powered by Discuz! X3.3