怎么学分子动力学模拟与计算
入门阶段,首先你要知道你想做什么,最好是找个看起来不太难的文章照着把里面的模拟自己重复一遍。因为全原子模拟大都是用一些软件来进行的,因此你首先需要的是学会一些软件的使用,常用的生物分子模拟软件包括:Gromacs、Amber 和 NAMD 等等,材料有关的模拟还有 Lammps 等软件。学这些东西的时候首先主要是要知道模拟的基本流程以及实现的方法,包括怎样搭建模拟的体系、各种文件格式的转换、系综与盒子的选择、水及离子、能量极小化等等,等到模拟的轨迹出来怎样对数据进行处理,等到之后还可以学习软件里面的一些插件,例如一些加速采样的方法等等。
自己学一种语言的话,在初期,做 MD 比较重要的是脚本语言,包括 Shell 脚本或者其它你自己喜欢的脚本。因为最终你还是不太可能完全在自己的电脑上跑程序的,所以要有一个你自己用得比较熟的、能对大规模的数据进行处理的语言,我觉得 Python 是很适合的,而且里面的 Prody,Matplotlib 等等各种包都非常好用。
入门之后,如果希望自己通过一些量子化学的计算结果去调整和修改现有的力场,那么需要能看懂其他人的代码,这种时候很可能会需要能读懂 Fortran 的代码。如果自己喜欢做一些简化模型自己弄着玩,用 Python 之类的写起来是简单,但是效率太低,还是需要会一点点 C 或者 C++,当然语言只是一方面,更重要的是自己要结合实际的体系做一些最简单的优化。
相比起书籍来,还可以关注一些做模拟的学术们聚集的论坛和社区,例如:小木虫、分子模拟论坛、ResearchGate 等等。
参考书的话,其实有很多,不过还是要看你自己需要哪方面的内容:
分子模拟方面的经典书籍:Understanding molecular simulation: From algorithms to applications 和 Molecular Modelling - Principles and Applications ,两本书的侧重点有些不同。
中文书籍:《分子模拟的理论与实践》《计算化学——从理论化学到分子模拟》中的部分章节;
偏统计和计算物理方面:Statistical Mechanics: Algorithms and Computations。
分子动力学模拟需要具备什么知识
分子动力学模拟是从经典力学出发,把系统看成为微观粒子的集合,通过研究微观状态下的粒子在不同系综的运动方程,计算体系的构型积分,并以构型积分的结果为基础进一步计算体系的热力学量,从而得到体系的宏观特征和基本运动规律.
由于分子动力学模拟是基于原子间相互作用势,因此它运用非常灵活,可以应用在多种不同体系中.
分子动力学模拟普遍采用的相互作用势为二体对势:Buckingham 势和 Lennard-Jones势
分子动力学模拟计算自由能都有哪些方法
这些方法MD和MC都适用,一般都是读取轨迹文件然后进行计算。
Widom Insertion是计算化学势比较经典的方法,Frenkel的书上有伪代码。
如何提高分子模拟动力学计算速率
分子动力学可以用于NPT,NVE,NVT等系综的计算,是一种基于牛顿力学确定论的热力学计算方法,可以广泛应用于物理,化学,生物,材料,医学等各个领域.
目前由于计算机性能的限制,其可计算的尺寸还很小,一般计算的粒子数会不会超过5位数,计算的尺寸一般只有几十纳米甚至更小
确定起始构型
进行分子动力学模拟的第一步是确定起始构型,一个能量较低的起始构型是进行分子模拟的基础 ,一般分子的起始构型主要来自实验数据或量子化学计算.在确定起始构型之后要赋予构成分子的各个原子速度,这一速度是根据玻尔兹曼分布随机生成的,由于速度的分布符合玻尔兹曼统计,因此在这个阶段,体系的温度是恒定的.另外,在随机生成各个原子的运动速度之后须进行调整,使得体系总体在各个方向上的动量之和为零,即保证体系没有平动位移.
进入平衡相
由上一步确定的分子组建平衡相,在构建平衡相的时候会对构型、温度等参数加以监控.
进入生产相
进入生产相之后体系中的分子和分子中的原子开始根据初始速度运动,可以想象其间会发生吸引、排斥乃至碰撞,这时就根据牛顿力学和预先给定的粒子间相互作用势来对各个粒子的运动轨迹进行计算,在这个过程中,体系总能量不变,但分子内部势能和动能不断相互转化,从而体系的温度也不断变化,在整个过程中,体系会遍历势能面上的各个点(理论上,如果模拟时间无限).计算分析所用样本正是从这个过程中抽取的.
计算结果用抽样所得体系的各个状态计算当时体系的势能,进而计算构型积分.
求计算模拟,分子动力学模拟等所需的计算机配置
cpu要至强(xeon)E5以上级别的,条件好用E7,最好是ivy ep或sandy ep或haswell ep的核心的,八核十六线程,买两颗组双路
EVGA的双路主板
金士顿的服务器内存ddr3 1600单条8g以上插满
硬盘用ssd吧 用pcie插槽的 对软件的启动很有帮助
蓝宝石AMD FirePro W9100专业显卡,可以进行通用计算辅助
如果不想这么麻烦,直接买一台工作站就可以了,可以考虑一下苹果Mac Pro【垃圾桶】 或者戴尔也有很多工作站的选择
扩展
这个配置有点大材小用了吧,远用不了啊。
你知道这些软件对显卡的要求有没有特别的?有人说不需要独显,集成的即可,但是我不确定。我一直在看戴尔的工作站。
补充
没有也可以用,但是有的话可以进行通用计算,辅助cpu计算,推荐用A卡会好点
如果你用至强的话就要买多一个显卡才能用,至强没有集显,所以一步到位买个专业卡好点
分子动力学模拟怎样设置时间步长和步数
接触分子动力学不久,现在用的是MS软件,说点自己的理解,欢迎批评指正。
time step默认是1fs,它可以理解为多长时间走一步,这个值越小,可能越准确,一般不用调整,除非体系很大,不需要那么精确的一小步一小步的算。
number of steps:模拟步数越大,体系越接近平衡态,但是时间也越长,所以需要在精确度和时间中找个平衡,不是越大就越好,考虑下计算资源。
以上两个值都是要结合实际的计算问题自己试的,也可以参考类似计算的文献,这是最快捷的方法。
分子动力学模拟可以得到系统的哪些性质
理论上说,只要计算时间允许,现在已经可以模拟化学研究领域内从飞秒到微秒、从皮米到微米的几乎所有过程,得到的体系性质也多种多样:
最基本的就是一些热力学性质,例如温度、内能、压强、焓等等,直接根据速度和势能计算。
接下来是基本的结构信息,就是一定温度下体系的动态平衡结构,如蛋白质在溶液中的形态、溶剂化层中水分子距离和取向分布、高分子链的均方末端矩和均方回转半径等等。
运用热力学积分、自由能微扰等一些特殊的方法,可以得到自由能F、G,进而得到熵。结合伞形取样,可以得到体系完整的自由能面。
运用昂萨格的近平衡态热力学理论,可以得到体系的一些动力学性质,例如扩散系数、粘度、导热系数等等。
用从头算的动力学模拟可以全面模拟微观反应性,例如分子的电荷密度分布、催化剂表面的催化性能、化学键的动态强度、电子或轨道的路易斯酸碱性等等。
结合经典模拟方法,甚至可以得到反应速率常数和红外光谱等一般无法由分子模拟直接得到的宏观信息。
分子动力学模拟可以得到材料的哪些性质
理论上说,只要计算时间允许,现在已经可以模拟化学研究领域内从飞秒到微秒、从皮米到微米的几乎所有过程,得到的体系性质也多种多样:
最基本的就是一些热力学性质,例如温度、内能、压强、焓等等,直接根据速度和势能计算.
分子动力学模拟的基本要点有哪些?
分子动力学模拟是从经典力学出发,把系统看成为微观粒子的集合,通过研究微观状态下的粒子在不同系综的运动方程,计算体系的构型积分,并以构型积分的结果为基础进一步计算体系的热力学量,从而得到体系的宏观特征和基本运动规律。
由于分子动力学模拟是基于原子间相互作用势,因此它运用非常灵活,可以应用在多种不同体系中。
分子动力学模拟普遍采用的相互作用势为二体对势:Buckingham 势和 Lennard-Jones势