mdp文件-Chapter1-MINIM.mdp
mdp文件是能量最小化,NVT模拟,NPT模拟与MD模拟的必须文件。
mdp文件的详细解释可以参考官方文档http://manual.gromacs.org/online/mdp_opt.html
接下来我将使用四个文件为例子来解释mdp文件。
能量最小化minim.mdp
1 ; minim.mdp - used as input grompp to generate *.tpr
2 integrator = steep ; steep = steepest descent minimization
3 emtol = 1000.0 4 emstep = 0.01 5 nsteps = 50000 6
7 ; Parameters describing how to find the neighbors of each atom and how to calculate the interactions
8 nstlist = 1 9 cutoff-scheme = Verlet
10 ns_type = grid
11 coulombtype = PME 12 rcoulomb = 1.0 13 rvdw = 1.0 14 pbc = xyz
接下来我一行一行注解:
1.从";"到换行之间的字符将被视为注释。此文件用于能量最小化(例如蛋白质刚放入溶剂,或者单纯的蛋白质在真空中的能量最小化)
2.这不是积分,只是选项用了这个名字而已,采用最速下降法是因为这里我们想将能量最小化,而不是运行NVT模拟或者MD模拟。
3.当最大力小于1000kJ/mol/nm时停止模拟
4.能量步长
5.最大步数
7.下面的参数描述了如何搜寻近邻原子并计算相互作用。
8.临近列表与长程力计算更新频率,1代表每步都更新
9.截断方案:Verlet
10.临近原子确定方案:可分为grid格点搜索和simple简单搜索。grid即格点法,计算速度要比simple快很多。
11.计算长程库伦力的方法:PME
12:短程库伦力的截断距离
13:短程范德华力的截断距离
14:周期性边界条件,在XYZ三个方向上均采用周期性边界条件(Periodic Boundary Condition)
关于最速下降法:第2行
最速下降法不是最有效的搜索方法,但它很稳健并且容易实现。关于最速下降法可参考官方文档P51.最速下降法中需要定义最大位移,并且每一步都会用到Fmax。
关于近邻搜索:8-10行
配对列表的生成:只需要对一些粒子对 i,j之间的非键配对力进行计算, 在这些粒子对中, 粒子 ii和 j的最近映象之间的距离小于给定的截断半径 Rc. 如果彼此之间的相互作用已完全被键合作用
所考虑, 一些满足这一条件的粒子对仍然会被排除. GROMACS使用了一个 配对列表, 其中包含了那些必须计算彼此之间非键力的粒子对. 这个列表中包含原子 i, 原子 i的位移向量,
距离原子 i的这个特殊映象rlist
范围内的所有粒子 j. 该列表每nstlist
步更新一次, nstlist
的典型值为10. 有一个选项可用来计算每个粒子所受到的总的非键力, 这些力来源于围绕列表截断
值, 即距离在rlist
和rlistlong
之间的壳层中的所有粒子. 在更新配对列表时, 会计算这些力, 并在随后的nstlist
中保持不变.为创建邻区列表,必须找到与给定粒子相近(即在邻居列表截断内)
的所有粒子. 这种搜索通常被称为邻区搜索(NS, neighbor search)或对搜索(pair search), 涉及到周期性边界条件和映象的确定。
邻区截断方案: 原子组与Verlet缓冲
GROMACS支持两种不同的截断方案设置: 最初的基于原子组的方案和使用Verlet缓冲区的方案. 它们之间存在一些非常重要的区别, 这些区别可能会影响计算结果, 计算性能和某些功能的支持情况. 组方案(几乎)可以像Verlet方案一样运行, 但这将导致性能降低. 对在模拟中常用的水分子, 组方案特别快, 但在最近的x86处理器中, 这种优势消失了, 因为可以在Verlet方案的实现中使用更好的指令级并行. 在5.0版本中已经不再提倡使用组方案了, 将来的版本中将会删除此方案.
在组方案中, 近邻列表由至少含一个原子的原子对构成. 这些原子组最初是电荷组。
Verlet截断方案默认使用缓冲对列表. 它也使用了原子团簇, 但这些不像在组方案中是静态的. 相反, 团簇以空间定义, 包含4个或8个原子, 使用如SSE, AVX和GPU的CUDA等可方便地对此进行流计算. 在近邻搜索步骤中, 使用Verlet缓冲创建对列表, 即对列表的截断距离大于相互作用的截断距离. 在计算非键力的内核中, 只有当一个原子对在特定时间步处于截断距离之内时, 这个力才会被加入到近邻列表中. 当原子在两次对搜索步骤中移动时, 这确保了几乎所有处于截断距离内的原子之间的力都会被计算. 我们说, 几乎 所有的原子, 是因为GROMACS使用了一个固定的对列表更新频率以提高效率. 一个处于截断距离外的原子对, 在这样固定的步数中, 可能移动得足够多以致处于截断距离之内. 这种小概率事件会导致小的能量漂移, 而且概率的大小取决于温度. 当使用温度耦合时, 给定能量漂移的一定容差, 可以自动确定缓冲大小.
关于长程库伦力的计算:11-14行
参考手册4.8.1节。Ewald方法差不多是直接根据库伦力公式去计算长程力,速度很慢,计算量巨大。一般不采用Ewald方法,而是采用PME(Particle-Mesh Ewald)方法,该方法
可以提高倒易空间加和的计算速度,这种方法不直接对波矢进行加和, 而是使用内插方法将电荷分配到网格上.先使用3DFFT算法对格点进行傅里叶变换, 在k空间中利用对格点的单个加和就可以得到倒易空间的能量项.
以上能量最小化的一个典型mdp文件,其中的一些解释(近邻搜索与长程库伦力计算)在其他mdp文件中还能用到。
mdp文件-Chapter1-MINIM.mdp的更多相关文章
- mdp文件-Chapter4-MD.mdp
终于到了mdp系列的第四篇,最终MD模拟的mdp文件 先上代码,md.mdp 1 title = OPLS Lysozyme MD simulation 2 ; Run parameters 3 in ...
- mdp文件-Chapter2-NVT.mdp
这是mdp文件系列的第二篇,介绍nvt平衡中要使用的mdp文件. 先上代码,nvt.mdp 1 title = OPLS Lysozyme NVT equilibration 2 define = - ...
- martini-md参数(mdp文件)
输入参数:一个典型的mdp文件 1 ; 2 ; STANDARD MD INPUT OPTIONS FOR MARTINI 2.x 3 ; Updated 02 feb 2013 by DdJ 4 ; ...
- mdp文件-Chapter3-NPT.mdp
mdp系列的第三篇,对NPT模拟中的mdp文件做一简单介绍. 先上代码 1 title = OPLS Lysozyme NPT equilibration 2 define = -DPOSRES ; ...
- martini-能量最小化参数(mdp文件)
1 ; 2 ; STANDARD MD INPUT OPTIONS FOR MARTINI 2.x 3 ; Updated 02 feb 2013 by DdJ 4 ; 5 ; for use wit ...
- Gromacs文件-Chapter1
Gromacs的文件非常的多,这是官方文档地址:http://manual.gromacs.org/online/files.html. 本文章部分内容来自以下网址https://zhuanlan.z ...
- Gromacs分子动力学模拟流程概述
Gromacs分子动力学模拟主要可以分为以下几个步骤,不同的体系步骤可能略有不同. 在开始之前,先简单了解一下预平衡: 分子动力学模拟的最终目的是对体系进行抽样,然后计算体系的能量,各种化学键,成分分 ...
- Gromacs命令-Chapter1
Gromacs的命令非常多,下面我将我最近用到的先总结一下.标题上也写了这只是Chapter1,以后有新的会继续写Chapter2...等等. 下面这个网址http://manual.gromacs. ...
- Visual C++文件后缀名释义
[1] .APS:存放二进制资源的资源辅助中间文件(可加快资源装载速度). [2] .BMP:位图资源文件. [3] .BSC:浏览信息文件.由浏览信息维护工具(BSCMAKE)从原始浏览信息文件(. ...
随机推荐
- 多测师讲解pthon_re模块_高级讲师肖sir
#import re 一.我们就re模块(也叫正则模块)介绍: 实现一个编译查找,一般在日志处理或者文件处理时用的比较多 正则表达式主要用于模式匹配和替换工作. 预定义字符集匹配: \d: ...
- UDP协议网络Socket编程(java实现C/S通信案例)
我的博客园:https://www.cnblogs.com/chenzhenhong/p/13825286.html 我的CSDN博客:https://blog.csdn.net/Charzous/a ...
- day32 Pyhton hashlib模块 总结异常处理
一.当用明文密码进行信息存储的时候,会导致密码的泄露,如何解决问题 通过导入hashlib模块,利用里面存在的算法对字符串进行加密计算得到一串密文的结果 1.这个过程不可逆 2.对于同一个字符串,同一 ...
- gitlab 拉代码提示:Your Account has been blocked. fatal: Could not read from remote repository. 最佳解决方案
今天在脚本服务器上拉取代码,突然发现拉不了代码了,提示: GitLab: Your account has been blocked. fatal: Could not read from remot ...
- vscode设置snippets
自动添加文件描述信息 "File Comments": { "prefix": "filecomments", "body&quo ...
- 【C++学习笔记】C++经典十二道笔试题!你能做出几道?
1. 运行下面的C++代码,得到的结果是什么? #include "stdafx.h" #include<iostream> using namespace std; ...
- SE第一次作业
作业一.对软件工程的初步认识 下面是我对于软件工程的认识,结合自己的理解和课上听讲的内容 软件工程=软件+工程?软件工程是否就是简单的软件+工程呢?那么我们先来看下各自的概念. 那么什么叫软件呢,既然 ...
- Docker学习笔记之-部署.Net Core 3.1项目到Docker容器,并使用Nginx反向代理(CentOS7)(一)
上一节演示如何安装Docker,链接:Docker学习笔记之-在CentOS中安装Docker 本节演示 将.net core 3.1 部署到docker容器当中,并使用 Nginx反向代理,部署平台 ...
- Parcelable使用(一)
android有两种序列化方式:一是实现Serializable接口(是JavaSE本身就支持的),二是实现Parcelable接口(是Android特有功能,效率比实现Serializable接口高 ...
- 联赛模拟测试24 D. 你相信引力吗 单调栈
题目描述 分析 因为跨过最大值的区间一定是合法的,所以我们人为地把最大值放在最左边 我们要统计的就是在最大值右边单调不降的序列,可以用单调栈维护 需要特殊处理相同的情况 代码 #include< ...