计算化学公社

标题: gromacs在做退火模拟时不同的续算命令运行结果有问题 [打印本页]

作者
Author:
lts!    时间: 前天 20:31
标题: gromacs在做退火模拟时不同的续算命令运行结果有问题
本帖最后由 lts! 于 2025-8-10 20:31 编辑

我在做200个小分子的平衡态模拟,首先在650K下NPT了60ns后达到平衡,然后进行退火模拟。以下是我的mdp文件

integrator               = md
dt                       = 0.002
nsteps                   = 50000000

; 温度耦合(恒温)
tcoupl                   = V-rescale
tc-grps                  = System
ref-t                    = 650
gen-temp          = 650
tau-t                    = 0.2

; 压力耦合(恒压)
pcoupl                   = C-rescale
pcoupltype               = isotropic
ref-p                    = 1.0
tau-p                    = 2               
compressibility          = 4.5e-5


; 周期性边界条件与截断
pbc                      = xyz
cutoff-scheme            = Verlet
rlist                    = 1.5
vdwtype                  = Cut-off
rvdw                     = 1.5              
coulombtype              = PME  
rcoulomb                 = 1.5

; 约束设置
constraints              = h-bonds
constraint-algorithm     = LINCS
lincs-order              = 4
lincs-iter               = 1

; 退火设置
annealing                = single   
annealing-npoints        = 36
annealing-time           = 0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000 11000 12000 13000 14000 15000 16000 17000 18000 19000 20000 21000 22000 23000 24000 25000 26000 27000 28000 29000 30000 31000 32000 33000 34000 35000
annealing-temp           = 650 640 630 620 610 600 590 580 570 560 550 540 530 520 510 500 490 480 470 460 450 440 430 420 410 400 390 380 370 360 350 340 330 320 310 300

; 输出控制
nstxout                  = 5000      ; 每5000步输出结构(10 ps一次)
nstenergy                = 500       ; 每500步输出能量(1 ps一次)
nstlog                   = 500       ; 每500步记录日志
energygrps               = System    ; 能量输出组
nstxout-compressed = 5000      ; 轨迹精度(减少文件大小)

continuation=yes
gen-vel=no

如果我采用以下这样的续算命令
gmx grompp -f cool.mdp -p L8BO.top -c NPT.gro -t NPT.cpt -o cool.tpr
gmx mdrun -v -s cool.tpr -cpi NPT.cpt -nb gpu -bonded gpu -pme gpu·
那么会如下图所示,刚开始运行时规定的温度便是300K,且一直保持在300K附近,奇怪的是看log文件中是有正确识别退火设定的
(, 下载次数 Times of downloads: 1)
图1,使用第一种续算命令时log文件内容异常的温度设定
(, 下载次数 Times of downloads: 1)
图2,使用第一种续算命令时log文件内容中读取的退火设定
而如果我采用下面这种续算命令
gmx grompp -f cool.mdp -p L8BO.top -c NPT.gro -t NPT.cpt -o cool.tpr
gmx mdrun -v -deffnm cool -nb gpu -update gpu -pme gpu
退火就没有问题,以下是在这样的续算命令下的温度变化图
(, 下载次数 Times of downloads: 0)
图3,第二种续算命令下运算后的温度控制图











作者
Author:
student0618    时间: yesterday 13:36
npt.cpt timestamp是60000ps开始

cool.mdp 60000ps 是300K

这当然会停在300K
作者
Author:
lts!    时间: yesterday 16:55
student0618 发表于 2025-8-11 13:36
npt.cpt timestamp是60000ps开始

cool.mdp 60000ps 是300K

我也试过给这次任务的时间全部加上60000,变成60000,61000,...,但是这样的话,必须得把60000变成0,然后变成0,61000,62000,才可以算,不然他会报错First time point for annealing > init_t.
作者
Author:
student0618    时间: yesterday 18:07
所以这边不应用-cpi 续跑

通常是在跑同一任务断掉才会用
作者
Author:
lts!    时间: 7 hour ago
student0618 发表于 2025-8-11 18:07
所以这边不应用-cpi 续跑

通常是在跑同一任务断掉才会用

哦哦好的!




欢迎光临 计算化学公社 (http://bbs.keinsci.com/) Powered by Discuz! X3.3