|
|
可以,参考如下片段:
pull = yes
pull-ngroups = 2
pull-group1-name = refO2
pull-group2-name = refz
pull-ncoords = 1
pull-coord1-type = umbrella
pull-coord1-geometry = direction-periodic ; 关键:z 投影
pull-coord1-dim = N N Y
pull_coord1-vec = 0 0 1
pull_coord1_groups = 2 1
pull-coord1-k = KZ
pull-coord1-rate = 0.0 ; 静态窗
pull-coord1-init = DIST ; 本窗中心 (nm)
pull-coord1-start = no
pull-group1-pbcatom = 34473 ; 或者填实际原子编号
pull-group2-pbcatom = 2811
然后写个脚本,根据窗的位置来调整KZ的大小即可实现不同区域使用不同的k,参考脚本片段:
for W in windows/win_*; do
DIST=$(cat $W/DIST.txt)
in_range() {
awk -v x="$1" -v a="$2" -v b="$3" 'BEGIN{exit (x>a && x<b)?0:1 }'
}
if in_range "$DIST" -3.2 0.0 ; then
KZ=1200
elif in_range "$DIST" -9.7 -6.8 ; then
KZ=1000; LABEL=GAS
elif in_range "$DIST" -6.6 -3.4 ; then
KZ=1200; LABEL=PLATEAU
else
KZ=1500; LABEL=Interface
fi
sed -e "s/DIST/${DIST}/g" -e "s/KZ/${KZ}/g" us.mdp > $W/us.mdp |
|