【摘要】 H原子的坐标信息缺失,还想构建晶胞怎么办?

问题8:H原子的坐标信息缺失,还想构建晶胞怎么办?

答:对于常见的晶体,其晶胞信息的文献来源往往不止一篇文献(实际上,很多常见的晶体,发表其晶胞信息的文献可有十几篇,甚至几十篇供选择),可试着查找其他文献来源,往往能找到包含H原子坐标的完整的晶胞信息。如果查阅了所有文献,还是无法获得包含H原子坐标的完整的晶胞信息,此时,只能考虑像问题6中提到的那样,自己培养所需晶体的单晶,做XRD解晶体了。

 

问题9:已经获得了完整的晶胞信息,如何在MS中把晶胞构建出来?

答:主要有两种方法:其一,根据晶胞信息,手动构建晶胞:在MS中新建一个xsd文件,打开该xsd文件,在MS软件界面上选择build→crystals→build crystal,依次输入空间群、6个晶格常数,这样晶格骨架就建好了。然后,在MS软件界面上选择build→add atoms,把所有原子的坐标依次输入,就完成了整个晶胞的构建。其二,直接导入结构文件,构建晶胞:这是一个简便方法,前提是获得该晶胞的结构文件,比如常见的cif文件,直接导入到MS即可:把该cif文件直接拖拽进MS界面,或者在MS界面中选择File→Import,再浏览到存放该cif文件的目录。

对于第二种方法,要特别注意:cif文件直接导入MS时,空间群可能会发生变化,这也是很常见的问题。把cif文件直接导入MS建模后,应立刻在properites中检查lattice 3D中的各参数与cif文件中的一致性,这是保证建模正确的基本步骤。如果发现不一致,应该以cif中的空间群为准,并在MS软件界面上选择build→crystals→rebuild crystal,把空间群改成与cif文件中给出的一致即可。

 

问题10:如何在MS中,选择合适的模块来开展计算?

答:无论研究的内容如何,涉及使用MS的计算,总是在MS的模块中进行的。也就是说,进行计算之前,首先要确定的是使用MS的哪个(些)模块。确定MS使用模块的通用的经验原则如下:

(1)根据自己研究的需求、期望获得的结果,确定MS模块的类型。MS模块的类型,可大致分为4类:量子力学类模块、分子力学类模块、蒙特卡洛类模块、晶体学类模块。每个模块都有其他模块没有的、自己特有的计算功能。举几个例子,如果想做晶体形貌、晶体主要形貌晶面确定的相关计算,晶体学类模块中的Morphology模块肯定能成为重点使用的模块之一;如果想计算能带、态密度,就应该选择量子力学类的模块,分子力学类和蒙特卡洛类的模块没有这样的功能。当然,为了确定合适的模块,应对MS中各类模块的基本功能有所了解。然而,在实际中,匹配自己需求的模块,并不是如上例中那么明显的。举个很常见的例子,做有机分子在某晶面上的吸附,通常涉及几何优化、动力学计算等步骤,MS中的量子力学类模块、分子力学类模块、蒙特卡洛类模块3个类型的模块中均有模块能实现几何优化、动力学计算等功能,如何选择呢?此时,就要根据自己构建的模型的具体情况来确定适合的模块,具体如下。

(2)根据自己构建模型的尺寸、原子数,确定合适的MS模块。a. 模型较小,包含数十、乃至数百个原子,可选用量子力学类模块;b. 模型中等大小,包含数千至数万个原子,可选用分子力学类模块;c. 模型较大,包含大量的原子(数万乃至更多),可选用蒙特卡洛类模块。上述经验原则的确立,实际上很大程度上源于现有计算平台条件的限制。这里的计算条件主要是指计算机的内存大小、CPU性能。计算平台的内存大小主要决定能构建的模型的大小(模型的尺寸、包含的原子个数),CPU性能主要决定计算的快慢。所以,上述经验原则,实际上是根据现有常见计算平台的配置来确立的。举个例子,对于一个包含五百个原子的晶面、若干个有机物分子、以及一个厚度可观的真空层的模型,在普通工作站上,以量子力学的CASTEP模块来做几何优化,计算精度选中等,即便该工作站的内存足以支撑模型,并打开所有CPU并行,计算的耗时也是非常可怕的,有时候计算耗时甚至会大到让人无法接受的程度,比如一个月,为一个正确性未知的结果,等待一个月,这肯定是难以接受的!若模型包含的原子数进一步增加一倍,仍采用CASTEP模块,也许上述工作站的内存连构建模型都不够,更谈不上后续计算的开展了(说得直白点,模型都无法构建,何谈对模型进行计算)。然而,上述用CASTEP模块难以计算的模型,放在分子力学类的Forcite模块中做几何优化,整个过程的耗时往往只是分钟级别的,这是多么大的速度提升!

(3)根据对精度的要求确定合适的MS模块。对于同一个计算模型,在基本相当的计算精度下,量子力学类模块、分子力学类模块、蒙特卡洛类模块,计算精度依次递减,计算耗时依次递减。如果对计算精度有较高的要求,而此时计算的耗时又尚在可接受的范围之内,通常选用量子力学类的模块。举个例子,对晶胞进行几何优化,若精度求较高,一般会选择用Dmol3或者CASTEP来做。

(4)考虑模拟的过程是否涉及电子的得失和转移。我们知道,化学反应通常是涉及电子得失和转移的,而MS中量子力学类模块的Dmol3、CASTEP模块的计算涵盖了原子的电子。说个题外话,正是因为上述模块考虑了数目众多、行为复杂的电子,才使得它们的计算速度,相比于分子力学类的模块,显得如此的慢。而分子力学理论本身构建的思想,就是要舍弃那些“数目庞大、行为复杂、却又微不足道”的电子,所以从基本理论上,就决定了分子力学类的模块,不具备考察电子行为的功能(但计算速度大大加快)。 所以,对于涉及电子得失或转移的过程(诸如涉及化学反应的过程)的模拟,应当选择量子力学类的模块,分子力学类、蒙特卡洛类的模块都爱莫能助。

(5)考虑使用分子力学类模块时,力场的局限性。由于分子力学类模块的计算速度较快,而计算精度尚可,使得MS中的分子力学类模块成为了使用频率最高的模块之一。然而,分子力学类模块有一个很大的局限性,就是力场,更确切地说,是力场的适用性。在MS的分子力学类模块中,计算之前必须指定(不管是操作者手动指定,还是让模块自动指定)计算模型中所有原子的力场参数,力场是计算的基础,模型中任何一个原子力场参数的缺失,都会导致计算失败。遗憾的是,目前还没有哪个力场,其适用性足以涵盖绝大多数原子、离子、官能团、粒子团。举个例子,大家非常熟悉的COMPASS力场,适用的范围也仅是其列出的一个表格中的那些,比如COMPASS中没有三价铝离子的力场参数。如果找遍了各类力场,还是无法获得对自己研究的模型具有完整适用性的力场,此时可考虑转向量子力学类的模块,对于分子力学类模块常处理的几何优化、动力学计算,量子力学类的模块的适用范围广泛得多。当然,为了适应量子力学类模块的特点,模型应进一步简化,以减少原子个数和模型尺寸。最后,关于力场的问题,作一点说明。 上面提到,如果力场参数缺失,可考虑使用量子力学类的模块,那如果无论采取怎样的措施,模型还是很大,无法使用量子力学类的模块来计算怎么办?有一个绝妙的解决方案:等。对的,就是等。计算机硬件的升级更新非常之快,目前无法开展的计算,也许过几年,计算平台的内存、CPU性能就能满足现在的计算要求了呢!

对于该问题的回答,其实就是自己拟合力场。实际上,我们熟知的COMPASS力场,其中的力场参数都是基于高精度计算理论方法(诸如量子力学)拟合出来的。所以,如果你发现自己研究的模型在现有的各类力场中找不到完整的力场参数,而你又对计算精度要求较高,那么自己拟合出来也许是一个解决方案。

*注:拟合力场技术性较高,计算量也很大。

(6)参照文献来确定合适的模块。这其实是确定模块的快速而且有效的方法。特别是当你的研究内容跟现有文献的相似时,借鉴文献作者对于MS模块的选用结果,一般是适用的。上述的(1)(2)(3)(4)(5)五点以其他更深层次的细节,文献的作者都替你考虑好了,借鉴之是多么便捷!这正是读文献的好处之一,当然读文献的好处远不止于此。关于“如何查找跟自己研究内容相关并且使用MS作为研究工具的文献”,请参见问题4。


问题11:MS中Discover与Forcite模块有很多功能是相同的,两者到底有什么区别?到底该用哪个来做计算?

答:其实,对于初次使用MS就使用MS 8.0及以上版本的人而言,这个问题本身不是一个问题,因为从MS 8.0开始,Discover模块就已经被移除出去,就是说,从MS 8.0起,MS中没有Discover这个模块了。但是,Discover模块曾经是分子力学相关计算中使用频率最高的模块,在以前的教程中,有关这个模块的内容是必不可少的。正是因为如此,很多一边参考老版教程进行学习,一边使用MS 8.0(及以上版本)进行实践操作的人,会很疑惑为什么自己使用的MS软件中找不到教程中介绍的Discover模块,是不是自己的软件有问题。有关教程与MS软件相匹配的重要性,我在问题3中已经有过详细说明。对于初次使用MS使用的是7.0以下版本(诸如6.1、6.0、5.5、5.0等)的人而言,Discover与Forcite模块一直同时存在于MS软件中的。我大概查了一下,Forcite模块第一次被加入到MS中是在2002年10月发布的MS 2.2中。而MS 8.0是在2014年发布的,也就是说,在MS 8.0发布之前的十年多的时间里,这两个模块是一直并存于MS软件中的。

对于不算特别古老的MS模块而言,Discover与Forcite模块拥有以下2个可以互相替代的功能:a. 几何优化;b. 分子动力学计算。而几何优化和分子动力学计算,正是分子力学有关计算涉及最多的两个内容。在功能上,除了两个模块互相覆盖的部分,Forcite模块还包含退火、淬火等功能,而且MD计算结果的分析,也是在Forcite中进行的(实际上,不仅仅是MD计算,只要是Dynamics类的计算结果,如CASTEP、GULP模块产生的Dynamics计算结果,都是在Forcite中进行分析的)。可以这么说,Discover模块能做到的,Forcite模块也能做到。其实,更准确地说,应该是这样的:Discover模块能做到的,Forcite模块不仅全部能做到,而且做得更快、更好(至少在Windows系统是如此,下同)! 做几何优化时,用单个CPU核心,对同一个结构,采用相同的参数设置(包括相同的计算精度、收敛容差),我们会发现,Forcite模块更快,用的时间更短!我猜测,这是因为Forcite模块采用的优化算法更先进。 对于需时更长的MD计算,采用多个核心并行计算时,Forcite模块计算速度的优势将会更加明显,会比Discover模块快得多。在整个计算过程中,Forcite模块使用的CPU核心都是满负荷运行的,而Discover模块使用的CPU核心负荷一直上下波动,难以充分利用CPU的性能。

也许,正是鉴于上述这些原因,Discover模块才被移除出去的吧。

最后,正面回答一下本问题,在功能上,Forcite不仅能完全代替Discover,而且Forcite功能更多、计算速度更快,用Forcite做相关计算是最佳选择。

 

问题12:MS中构建的模型,图像消失了,怎么解决?

答:对于MS中图像显示的问题,在确定不是其他硬件方面的原因的前提下,都可以尝试: MS界面→tools→options→Graphics :查看其中的选项是否勾选,如果没有勾选,全部勾选,重启MS;如果已经勾选,现全部不勾选,重启MS。 一般而言,上述方法能解决大部分MS中图像显示的问题。


问题13:MS中无法旋转、缩放、复制模型,Ctrl、Alt键无法使用,是什么原因?如何解决?

答:出现上述问题时,应检查在MS运行的同时,是否打开了QQ,以及有道词典、灵格斯词霸之类的词典软件。要说这些软件影响MS运行的原因,大概在于这些软件会占用诸如Crtl、Alt、Shift之类的快捷键。总之,当出现类似问题时,可试着把上述软件关闭,然后重启MS。尤其在MS中进行模型构建的时候,强烈建议关闭其他软件,给MS一个“清净”的环境。


问题14:在MS中,如何设置周期性边界条件?

答:在分子模拟理论中,周期性边界条件是一个重要概念,设置周期性边界也是保证计算正确的重要条件。然而,这个问题,在MS中不算是问题。可以这样说,需要周期性边界条件的场合,MS软件已经为你预先考虑好、准备好了:在MS中构建的晶胞(cell)、超晶胞(super cell)、无定型晶胞(amorphous cell)、晶面+真空层的slab结构、单个layer或者多个layer的组合结构等,这些结构本身已经是满足周期性边界条件的,不需要操作者再额外设置。这是作为一款售价百万元的商业软件,带给操作者基本的便利。


问题15:几何优化、MD计算结束后,发现原子跑到盒子外面去了,怎么办?是因为没有设置好周期性边界吗?

答:对于这类问题,如果你的模型属于问题14所述的那些,那么几乎可以排除周期性边界条件的设置问题。在确保模型构建无误、计算参数设置合理的前提下,出现原子跑到盒子外面去的情况,往往都是正常的,不影响计算结果。 在构建的模型的空白处:右键→display style→lattice→在lattice的display style子项下→in-cell,再换成default,操作完毕后,看看熟悉的模型是不是又回来了?


问题16:分子力学类计算中,截断半径、盒子尺寸如何合理地设置?

答:在分子力学类计算中,范德华力、静电力(库仑力)都是至关重要的作用力,从这些作用力的计算公式可以看到,它们的大小与距离有着密切的关系。理论上,为了完全地考察一个粒子的受力情况,应当考察以该粒子为圆心、半径r=∞的球体内所有的其他粒子对该粒子的作用。但这只是从理论上讲,实际上,随着r数值的增大,计算量将急剧增大,对于r数值很大的情况,即便是使用高速的计算机来处理,计算量也是恐怖级的了;幸运地是,没有必要将r取到很大,因为上述作用力均随着距离的增大,迅速衰减,所以,将r截取为不算大的数值(即截断半径),即可获得令人满意的计算精度。此外,在分子力学类计算中,基本上都会应用周期性边界条件。当截断半径、周期性边界条件两者遇到一起时,可能出现一个问题:当盒子尺寸不够大时,待考察粒子与其自身的镜像之间的距离会小于截断半径,导致出现该粒子与其自身发生作用的异常情况。为了解决这个问题,盒子尺寸应当足够大,至少应大于截断半径。

现在正面地回答这个问题:(1)对于截断半径,其代表着计算的精度,为了保证计算结果的质量,截断半径不能取得过小。其实不必想得这么复杂,MS已经给出了几档截断半径的精度,比如9.5(coarse)、12.5(medium)、15.5(fine)、18.5(ultra-fine)埃米,这些数值不是开发者随意选取的,而是根据长期的计算经验选取的能代表精度档次的经典数值。在实际的计算参数设置中,直接从MS的预设值中选取即可,没必要自定义一些比较“另类的”数值,比如12.8、13.8这类非经典数值;一般计算选择12.5(medium)及以上的精度;对于SCI期刊,建议选取15.5(fine)及以上的精度。

(2)对于盒子尺寸,大家可能听说过“盒子尺寸应大于等于截断半径的2倍”这一说法。个人认为,这是一个比较保险的准则,实际上,盒子的尺寸与截断半径的大小关系,应当根据计算目的来确定。举个例子,如果以计算能量为目的,为了节约计算时间和计算资源,盒子尺寸略大于截断半径的1倍即可;如果想计算RDF,盒子尺寸则须略大于截断半径的2倍。简而言之,如果想省事,就按“盒子尺寸应大于等于截断半径的2倍”来处理,一般问题不大。此外,如果计算资源充裕,可设置更大的盒子尺寸。

(3)对于确定截断半径和盒子尺寸的先后顺序,不少MS初学者,会有一个误区:先确定盒子尺寸,再确定阶段半径。比如,有虫子问“盒子尺寸十几埃,截断半径取七埃,可以吗”(问题大意是如此,如果数据不够精确,见谅),“盒子尺寸十几埃,截断半径取七埃”最大的问题在于,截断半径太小,难以保证计算精度,计算精度不够,谈何保证计算结果的正确性和可信度? 截断半径过小,计算精度不够,计算结果可信度不高。 截断半径过大,大到大于盒子尺寸,计算结果是错误的。 总之,建议先设定计算精度(截断半径),再根据计算目的来设置合适的盒子尺寸。

本文转载自小木虫作者月只蓝,链接:http://muchong.com/t-11279111-1。

 

科学指南针是杭州研趣信息技术有限公司推出的主品牌,专注科研服务,以分析测试为核心。团队核心成员全部来自美国密歇根大学,卡耐基梅隆大学,瑞典皇家工学院,浙江大学,上海交通大学,同济大学等海内外名校,为您对接测试的项目经理100%具有硕士以上学历。我们整合高校/社会闲置仪器设备资源,甄选优质仪器,为广大科研工作者提供方便、快速、更具性价比的分析测试服务。

 

免责声明:部分文章整合自网络,因内容庞杂无法联系到全部作者,如有侵权,请联系删除,我们会在第一时间予以答复,万分感谢。