24小时热门版块排行榜    

查看: 3247  |  回复: 17
【奖励】 本帖被评价4次,作者donkeypku增加金币 3.5
当前主题已经存档。
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

donkeypku

至尊木虫 (著名写手)


[资源] 【分享】ABINIT的前世今生(转)

[转载] 材料性质的第一性原理计算:ABINIT软件工程
myid520 译
来源: 南京大学小百合站 http://bbs.nju.edu.cn/vd100000/b ... amp;file=1134716454

ChemiAndy转注:本文从软件工程学的角度,给出了ABINIT第一性原理分子动力学软件的理论与技术的一个完美剖面。翻译者具备良好的理论计算功底和编程基础。原帖散失了所有公式。待查补。译者myid520,研究理论催化,现在吉林。译者博客http://myid520.blog.163.com/

First-principle computation of material properties: the ABINIT software project
X. Gonze, J.-M. Beuken, R. Caracas, F. Detraux, M. Fuchs, G.-M. Rignanese, L. Sindic, M. Verstraete, G. Zerah, F. Jollet, M. Torrent, A. Roy, M. Mikami, Ph. Ghosez, J.-Y. Raty, and D.C. Allan
Comput. Materials Science 25, 478 (2002).


摘要:

用密度泛函理论(DFT)计算电子结构、总能量和材料的其他性能是一个不断发展的领域。为了站在知识的最前沿,处理恰当的话,一个DFT软件工程能够很好的得益于广泛的合作。另外,现代软件工程思想可以使软件开发相当容易。ABINIT工程依赖下列信念:资源的自由性、可靠性、可移植性和在开发复杂的平面波赝势时所强调的个人文档。

在这里,我们介绍在GNU公共软件协议下发布的ABINIT3.0版,给出其功能和一直使用到现在的各种软件技术:用perl脚本和cpp指令处理处理Fortran90资源文件的独立集合来为各种操作系统产生并行或串行目标代码;200多个自动测试来保护现有的功能;一直坚持的严格的编码规则;在线帮助、自学教程、网页资源等文档。

关键词:密度泛函理论,软件工程,电子结构
pacs:71.15.-m,81.05.Zx,31.15.Ew,89.88.+h

1.引言

在过去的20年中,以量子力学和电磁理论为基础的材料性能的第一性原理计算已经经历了巨大的进步,而应用广泛的密度泛函理论正处在这个快速发展的领域的核心。他已经在各种计算机代码和和一般理论(如时间依赖泛函理论)中应用,或者用作很多复杂形式体系的基础。下面,我们不加综合地列举这一领域80年代中期以来的一些里程碑,来看一下它的持续发展,并多花一些笔墨在赝势的使用上。


1985年,Car和Parrinello建议了一个把DFT和分子动力学统一起来的算法[4],同年,Hybertsen和Louie独自地把Hedin[5]的基态近似应用于单电子的叠加和移动能的计算。1987年,固体的动力学和介电性能上的线性响应方法被Baroni,Giannozzi 和Testa[7]实现。Allan和Teter[8]建议用分离Kleinman- Bylander[9]赝势和Car-Parrinello的技术进行结合,1990年,Vanderbilt设计了一个超软赝势[10],三年后,和King-Smith一起指出电子极化是一个几何相[11];同时,举行串行运算(原文为大规模并行。CA)的计算机上的运用开始出现。赝势方面更加精细的思想也产生了导致了Blochl的投影放大波方法[13](即PAW方法。CA)。为了处理激发态,含时DFT和Bethe-Sapeter方程[13-18]最近已被实现。


因此,为了和时代同步,用来进行材料到第一性原理计算的计算机程序必须包括越来越多的功能,随着发展,这些功能变成基本的功能,而在原有的计算机代码上测试一个新想法也明显变得无效。另外,由于软件越来越多的功能需要合并,一个人很难在不牺牲自己研究的情况下来继续这一软件的维护和开发。而DFT形式系统及其应用、应用领域的改进、普遍化需要10年甚至更长的时间。所以,小组开发,甚至国际合作是必要的,在这种情况下,各种现代软件工程技术证明时非常有用的。


ABINIT软件工程开始于1997年,在这个基础上,作为一个开放的软件工程,它对功能没有限定,并且使用多种软件工程技术来方便很多开发组之间的国际合作。ABINIT的主程序使用平面波和赝势,来进行材料性能的密度泛函计算。它的一些特殊的功能还能处理反应函数。


现在,软件有下面四个特点:1.开放源代码(可以在GNU公共软件协议下使用),2.自我测试,3.在不同的操作系统下进行并行、串行运算的可移植性,4.个人文档。另外还提供给使用这一个自学程序。而为了方便国际合作,还制定了旨在要求各个开发组要有统一明确代码风格的协议。网站[20]提供官方版本、赝势、各种应用程序、基准结果、电子邮件列表和参考文献信息。


本文将以3.0版为例进行介绍。以前的版本不是在GNU GPL下开发的,网站也将不提供这些版本。


和ABINIT软件包所包含的各种应用程序一样,ABINIT主程序也是用Fortran90编写的,它包括300多个子程序,大约10万行,其中大约三分之一是注释。软件包包括文档文件、自动测试脚本和赝势文件。


ABINIT v3.0于2000年12月第一次发布,从那时起,程序的错误被定期的报告并在网上公布(现在的3.06版)另外,软件开发的主流一直超过3.0版,包括现在的3.1和3.2版,本文的作者对3.0版作出了主要的贡献,另外还有50多人对本版本也作出了贡献,他们改动了一个或一部分子程序,或发现了一些程序错误。


现在,一些其他代码,如基于平面波和赝势,和基于投影防大波(即PAW方法.CA)(超软赝势形式的改进)的代码可以获得,我们提供的列表[21-31]可能不太详尽,他们中的有些是商业软件,其他的可以通过和主要开发组合作来获得,或者直接从网上下载。


在未来,发展与下列两种团队的合作是有意义的,一种是在GNU GPL下提供他们代码的团队(这对开发者和使用者都提供了法律的保护),另一种是免费提供源代码的团队。和组包括相互检测软件精度和速度,以及共享子程序和函数库。显然,在这方面,最根本的是要开放源代码。


在本文中,我们首先集中介绍ABINIT3.0版的特色功能(第二部分),其中有些是一些基本功能,已经在相似的代码中使用的很久一段时间,我们在这里不进行太详细地介绍。其他的是第一次应用的功能,也是我们将详细解释的。当然,全面地描述还将会另外发表。另外,我们还将粗略的给出软件包的结构和输入文件的组织形式,然后在第三部分,我们将叙述世界范围内小组开发的组织形式,而现在软件工程的思想(自我测试、脚本可移植性、个人文档、使用者自学)使这种组织成为可能。在最后一部分,我们将批判地讨论现在的成就和我们所遵循的开发模型,同时指出需要改进的地方。
回复此楼

» 收录本帖的淘帖专辑推荐

VASP soft study

» 猜你喜欢

» 本主题相关商家推荐: (我也要在这里推广)

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

chenweiguang

金虫 (小有名气)


★★★ 三星级,支持鼓励

state-of-the-art
)最先进的,最高级的
16楼2009-07-18 00:56:47
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 donkeypku 的主题更新
☆ 无星级 ★ 一星级 ★★★ 三星级 ★★★★★ 五星级
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见