CP2K中模拟摩擦滑动相关注解

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