GROMACS分子动力学模拟计算过程中,常需设置二维的周期化条件与冻结组,下面简要介绍一下这两种设置的实现与注意事项:
二维周期化条件通常是配合wall的设置来实现的,Gromacs5.0之前的版本中在处理这部分时有些许问题,推荐使用5.0之后的版本。需要注意的是使用两面wall时还需要配合ewald_geometry=3dc
的条件。wall的设置在mdp文件中实现,主要的几个选项设置与意义如下:
pbc = xy
nwall
默认为0。1代表在z=0处有一个wall。2代表z=0和z=z_box处各有一个wall。设为2时,可用压力耦合和Ewald加和法(通常最好使用semiisotropic压力耦合,并把x/y压缩系数设为0,否则表面积会发生变化)。walls通过wall_atomtype选项与系数与系统其它部分作用。对于nwall=2,能量组wall0和wall1被自动添加以监督能量组与各个wall之间的相互作用。在z方向上的质心移动将关闭。
wall-atomtype:
每面墙在力场中的原子类型名称. 通过(例如)在拓扑文件中定义一个特殊的墙原子类型及其组合规则, 可以独立地调整每个原子类型和墙的相互作用. (此处输入原子类型个数对应nwall,e.g. nwall = 2; wall-atomtype = opls_136 opls_136)
wall-type:
9-3
对墙后体积进行积分的LJ势: 9–3势
10-4
对墙面进行积分的LJ势: 10–4势
12-6
直接的LJ势, 由与墙的Z距离决定
table
用户定义的势, 根据与墙的Z距离进行索引, 以类似于energygrp-table的选项读入, 其中的第一个名称为“正常”能量组, 第二名称为wall0或wall1, 只使用表中的色散和排斥列.
wall-r-linpot: –1 [nm]
与墙的距离在此值以下时, 势能线性连续, 因此力为常数. 当一些原子超过墙时, 将此选项设置为正值对平衡尤其有用. 当此值 ≤0(对wall-type=table则是<0)时, 原子超过墙后会产生致命错误.
wall-density: [nm-3/nm-2]
每面墙的原子数密度, 适用于类型为9–3和10–4的墙.(若墙类型一致,此处输入原子数密度个数也对应nwall,e.g. nwall = 2; wall-density = 64 64)
wall-ewald-zfac: 3
第三个盒矢量的缩放因子, 仅用于Ewald加和, 最小值为2. Ewald加和只能与nwall=2联用, 并需要使用ewald-geometry=3dc. 盒子中真空层的作用是降低周期性映象之间不合实际的库仑相互作用.
一个示例:
nwall = 2
wall_type = 10-4
wall_density = 5 5
wall_atomtype = CG331 CG331
wall_r_linpot = -1
wall_ewald_zfac = 3
ewald_geometry=3dc
pbc=xy
(CG331 is just a methyl group carbon specific to my forcefield).
对于冻结,常用于固定晶核、基板以及牵引动力学中的参照点等设置中,同样在mdp文件中进行设置。需要注意的是在进行模拟前要对需要冻结的组分单独分组,并在grompp
过程中使用-n
选项读入索引文件,否则可能会导致无法识别冻结组的错误。冻结组通过以下两个选项来设置:
freezegrps:
群组将被冻结(即其X, Y, 和/或Z位置不会被更新;如 脂质SOL).freezedim指定哪个维度的冻结申请.为了避免 虚假contibrutions的维里和压力, 由于之间完全大部队 冷冻原子, 你需要使用能源集团排除, 这也节省了计算时间. 需要注意的是冷冻原子的坐标不被压耦合算法缩放.
freezedim:
尺寸为这组freezegrps应该被冻结, 指定Y或N为X, Y 与Z和为每个组(例如YYNNNN意味着, 在第一组中的粒子可以 仅在Z方向移动.在第二组中的粒子可以以任何方向移动).