|
邻近搜索设置cutoff-scheme Verlet: 基于粒子的截止方案,生成带有缓冲的配对列表。该方法处理vdw,用PME处理静电相互作用的问题,原先下图的问题是用电荷组处理。 缓冲区大小根据 verlet-buffer-tolerance 自动设置(除非该值设置为 -1,在这种情况下将使用 rlist)。 group: 生成与拓扑中的电荷组相对应的原子组配对的列表。这些组对应于拓扑中的电荷组。这是版本4.6之前的唯一截止处理方案。没有对配对列表进行显式缓冲。 这使得能够对水进行有效的力计算,但能量只有在明确添加缓冲液时才能守恒。2022.2 不再支持此选项。
nstlist (10) [steps] >0 更新邻近列表的频率。当设置 dynamics 和 verlet-buffer-tolerance 时,nstlist 实际上是一个最小值,gmx mdrun 可能自动增加,除非将其设置为1。 对于GPU上的并行模拟和/或 non-bonded force 计算,设置为 20 或 40 通常可以得到最佳性能。在能量最小化的情况下,当至少一个原子移动了配对列表缓冲区大小的一半以上时,不使用该参数来更新对列表。 =0: 邻近列表只构造一次,从不更新。这主要适用于所有粒子彼此可见的真空模拟。但真空模拟(暂时)不受支持(5.0.4 版本没有提到真空模拟不可用一事)。 <0: 不使用 neighbor searching。且被描述为:自动更新频率,仅限 cutoff-scheme=group。这仅适用于截止值小于 rlist 的 switched, shifted or user potentials。 然后有一个大小为 rlist 减去最长截止值的缓冲区。仅当一个或多个粒子从其电荷组的几何中心移动超过缓冲区大小(由上一次邻近搜索确定)的一半时,邻近列表才会更新。 该选项已将压力耦合或变形选项导致的坐标缩放考虑在内。此选项可确保没有截止伪影(cut-off artifacts),但对于较大的系统,这可能会带来较高的计算成本, 因为邻近列表更新频率将由一个或两个稍微超过半缓冲区长度的粒子(尽管99.99%的粒子是正常的)决定(这并不一定意味着邻近列表无效)。 高阶版本随着 cutoff-scheme=group 的弃用而不再支持原功能,转为不使用临近列表) pbc xyz: 在所有方向上使用周期性边界条件。 no: 不使用周期性边界条件,忽略 box。若要模拟无截止,请将所有 cut-offs 相关选项和 nstlist 设置为 0。若要在单个 MPI rank 上实现无截止的最佳性能,请将 nstlist 设置为 0,ns-type=simple。 xy: 仅在x和y方向使用周期性边界条件。这仅适用于 ns-type=grid,并可与墙(walls)结合使用。如果没有墙或只有一面墙,系统在z方向上的大小是无限的,因此不能使用压力耦合或 Ewald 求和方法。当使用两个墙时,这些缺点不存在。 periodic-molecules no: 分子是有限的,可以使用 fast molecular PBC。 yes: 用于分子需要跨过周期性边界条件来相互耦合的系统,该选项需要较慢的 PBC 算法,并且分子在输出中不是完整的 verlet-buffer-tolerance (0.005) [kJ mol-1 ps-1] 使用 dynamics 运行模拟时启用(2022.2 原话。应当就是指 cutoff-scheme=Verlet 的情况,这一点在 5.0.4 中指出)。 这将设置 由Verlet 缓冲区(Verlet buffer)引起的每个粒子对相互作用(pair interactions)的最大允许误差,从而间接设置 rlist。 由于 nstlist 和 Verlet 缓冲区大小都是固定的(出于性能原因),因此在第 nstlist-1 步中,不在对列表中的粒子对小概率会处于截止距离内,这导致能量非常小的跳跃。 在恒温系综中,这些非常小的能量跳跃可由给定的 cut-offs 和 rlist 估算。 该估计假设颗粒分布均匀,因此,对于多相系统,误差可能被稍微低估。 由于忽略了粒子之间的相互作用,对于较长的对列表寿命(nstlist-1)*dt,缓冲区将被高估。 结合误差抵消,总能量的实际漂移通常要小一到两个数量级。 相较于基于简单粒子对的列表,该选项生成缓冲区大小考虑到了 GROMACS 对列表设置会导致漂移减少了10倍的事实。 如果没有使用 dynamics(能量最小化等),缓冲区为截止值的 5%。 对于NVE模拟,使用初始温度(除非该温度为零),在这种情况下缓冲区为截止值的 10%。 对于NVE模拟,通常需要降低该值以在纳秒时间尺度上实现适当的能量守恒。 要覆盖自动缓冲区设置,请使用 verlet buffer tolerance=-1 并手动设置 rlist。 对于温度较高,应该略微增加 rlist (1) [nm] 短距离邻近列表的截止距离。对于 dynamics,这在默认情况下由 verlet-buffer-tolerance 选项设置,并且忽略 rlist 的值。在没有 dynamics 的情况下,默认设置为最大截止值加上5%缓冲区,但测试粒子插入(tpi/tpic)除外,此时缓冲区将被精确自动地管理。对于不可能自动设置的 NVE 模拟,建议使用具有预期温度的 NVT 设置运行 gmx grompp,并将 rlist 的结果值复制到 NVE 设置。 |
