Materials Studio软件常见问题与解决方案(二)

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. 分子动力学计算。而几何优化和分子