问题问的太模糊了,啥叫可以做?是可以建模还是可以计算?打算用什么方法计算?MD还是DFT?
用Materials Studio进行位错建模比较难,除非你愿意一个原子一个原子的手动施加位移,否则我建议你用atomsk[1]来建模,edge, screw, mix, loop都可以建,支持isotropic 和 anisotropic solution,并且兼容主流模拟软件的文件格式。
MD算位错很简单,大部分位错模拟的研究也都是用MD。用的最多的软件大概是lammps[2],atomsk建好模型后输出成lmp格式,lammps中用read_data读入就行。但是,MD模拟的结果完全依赖于势函数的准确性,没有势函数或者势函数不合适就完全没法做。
DFT虽然没有势函数的限制,但用DFT算位错却很麻烦,因为位错的elastic field是长程的,远超DFT能处理的极限(指KS-DFT, OF-DFT则是另一个故事了)。因此用DFT算位错需要对边界进行特殊处理。
有不少文献中直接用周期性边界条件,但由于位错会带来原子数错配,一个盒子中至少需要包含两个方向相反的位错(dislocation dipole)才能满足周期性条件。此外,由于周期镜像之间会有不容忽略的elastic interaction,往往需要建成quadrupole,使得相反方向近邻位错的elastic filed正好抵消。
固定边界条件实现起来最简单,根据弹性力学求出位错附近位移场的解析解,施加于整个体系,然后固定住边界处的几层原子就行。固定边界条件的问题在于,位错芯区往往是严重偏离解析解的(解析上常常假设位错在滑移面上的宽度为0,实际上这个宽度可能有一两个nm),因此需要有足够远的距离才能保证解析解的准确性,但DFT的尺度往往满足不了这个距离要求。
还有一种叫弹性边界条件,基本原理是先算出非边界原子的受力,然后基于晶格格林函数反推消除这部分力所需的弹性位移场,不断进行负反馈迭代,直到内部原子受力趋于0为止。弹性边界条件需要自己写代码实现,并且要预先计算出体系的力常数矩阵和晶格格林函数矩阵,很是繁琐,但好处是算得比较准,artificial的东西比较少。
如果打算用DFT的话,前两年David Rodney有篇综写的不错[3],建议看一看。