|
本帖最后由 Uus/pMeC6H4-/キ 于 2025-4-24 13:35 编辑
问题应该出在定义选区这里
- for {set i 0} {$i < $frames} {incr i} {
- set FCOOH [atomselect top "resname 8S3A and name H22 O3" frame $i]
- set FCOO [atomselect top "resname O7WK and name O2 O3" frame $i]
- set SOL [atomselect top "resname 6UAV" frame $i]
- ...}
复制代码 建议更改为如下写法,在循环外定义选区、循环每一帧时更新对应帧号并相应更新实际选择范围- set FCOOH [atomselect top "resname 8S3A and name H22 O3"]
- set FCOO [atomselect top "resname O7WK and name O2 O3"]
- set SOL [atomselect top "resname 6UAV"]
- for {set i 0} {$i < $frames} {incr i} {
- $FCOOH frame $i; $FCOOH update
- $FCOO frame $i; $FCOO update
- $SOL frame $i; $SOL update
- ...}
复制代码
编辑:等等,由于选区范围只用resname和name定义,理论上应该各帧一致。如果涉及空间上的几何判据改变(比如within 4 of ...这种),那确实有必要像上面一样指定实时更新。
另一个可能出问题的是后面逐帧测量键角处,measure angle指令应该加frame $i选项确定测量所用的帧。
|
|