1、目前控制滑动主要是通过集合变量XYZ_DIAG进行控制的,首先需要在SUBSYS模块下定义集合变量,代码如下
&COLVAR
&XYZ_DIAG
&POINT
ATOMS 3 4 7 8 11 12 15 16 19 20 23 24 27 28 31 32 35 36 39 40 43 44 47 48 51 52 55 56 59 60 63 64 67 68 71 72 75 76 79 80 83 84 87 88 91 92 95 96 99 100 103 104 107 108 111 112 115 116 119 120 123 124 127 128 131 132 135 136 139 140 143 144
TYPE GEO_CENTER
&END
POINT 1
COMPONENT Y
PBC F #这个关键词可以防止出现 WARNING in constraint.F:773 :: Shake NOT converged in 1000 的错误,这会导致滑动控制失效
ABSOLUTE_POSITION T #这个关键词是控制使用绝对坐标来控制滑动,而不是相对坐标。目前我使用相对坐标不是很理想,即无法判断其控制的具体位置,所以使用这个来控制,目前来看应该配合PBC F一起使用
&END XYZ_DIAG
&END COLVAR
2、在MOTION下的CONSTRAINT模块来控制约束,即控制滑动速度的大下和控制方式,代码如下
&COLLECTIVE
&RESTRAINT #这个是使用弹簧势进行约束,不使用这个就意味着使用硬约束进行控制
K 1.0E-006 #弹簧刚度,注意刚度不要设置的和常规的一样大,因为我们的移动速度是很大的,即每一步移动的距离较大而产生了很大的力,这可能会掩盖摩擦力,导致难以看出摩擦力的变化
&END RESTRAINT
INTERMOLECULAR T
COLVAR 1
TARGET [angstrom] 6.05 #控制集合变量所指定原子的具体位置
TARGET_GROWTH [angstrom*fs^-1] 0.002 ##即集合变化位置变化速度
&END COLLECTIVE