论文部分内容阅读
测定固体物质晶体结构的常用方法是X射线单晶结构分析法。然而,许多固体材料难以或不可能获得满足单晶结构分析所需的单晶尺寸和质量,同时新材料探索初期获得的固体材料也大多是多晶体,因此多晶粉末X射线衍射结构分析就成为提供固体材料结构信息的重要手段,并在实际工作中得到广泛的应用。近代实验设备条件的改善、计算技术的提高及衍射理论的发展和完善,使粉末衍射法测定晶体结构成为可能,并在近年来成为晶体学界的一个比较热点的研究课题。但现在的粉末衍射结构分析仍面临很多挑战,远不是常规工作。本人在攻读博士学位期间开发了X射线粉末衍射全谱拟合程序GENEFP和分子晶体结构测定程序GEST。主要研究结果如下:
●针对大多数实验室中使用的Cu靶X射线衍射仪,开发了粉末衍射全谱拟合提取衍射强度的程序GENEFP(Fundamental Parameters Profile FittingProgram using Genetic Algorithm)。GENEFP程序使用基本参数(仪器参数和样品参数)法来描述衍射峰形,该方法可以提高描述衍射峰形的精度,进而提高提取出来的衍射强度的精度;同时,由于基本参数法描述峰形时使用具有物理意义的物理量来描述衍射峰形,便于对晶粒尺寸、应力等物理量进行测定;GENEFP程序通过遗传算法求解基本参数和晶胞参数等来进行X射线衍射图全谱拟合,并利用Le Bail算法提取衍射强度,拟合结果可以用于晶体结构测定;GENEFP程序使用C和Fortran语言在Linux系统下开发完成,目前可以运行在Windows和Linux等平台上。
●大多数分子晶体结构(以分子为结构基元)对称性低,粉末衍射峰重叠比较严重,不便于使用直接法求解,为此开发了基于正空间坐标搜索的分子晶体结构测定程序GEST(STructure determination program using GEneticalgorithm)。GEST程序使用正空间坐标搜索方法,减少了重叠峰的影响,充分的利用了分子结构信息(分子构型、键长、键角等)大大减少了未知数的个数,提高了求解分子晶体结构的可能性;GEST程序使用了全局优化算法-遗传算法来进行大规模的全局搜索,避免局部搜索可能错过的正确结构模型,进而找到可能的最佳结构模型,为下一步的结构精修打好基础;GEST程序使用提取出来的衍射强度(而不是所有的强度点)来构成变形的Bragg判据,大大减少了程序的计算时间,提高了效率;为GEST程序开发了界面程序,使用方便;GEST程序可以应用于药物、染料、络合物及配位聚合物等多种材料的晶体结构测定,目前国内外已经有4个用户:GEST程序使用C、Fortran和Python语言在Linux系统下开发完成,目前可以运行在Windows和Linux等平台上。
●在开发程序的过程中,对编程环境和编程语言进行了比较和选择,找到了一种方便的开发跨平台科学软件的方法。为方便科研工作者参考,对此进行了总结。使用新近出现的Eclipse编程平台,通过安装插件可以统一各种语言的开发环境。该开发环境可以方便地使用跨平台的gcc编译器,从而使开发的C和Fortran代码无须做任何修改就能运行在各种平台上;该平台使用gcc编译器和Make工具,使得C和Fortran的混合编程变得十分方便;该平台使用CVS版本控制程序,方便程序发布,保护开发代码安全。