化学家使用的ABINIT
高性能计算集群上最大的用户群体一定是化学家。他们的CPU年使用量绝对是最高的。由于这种大量使用,几种不同的软件包已成为大多数计算化学研究人员使用的标准工具。因此,在本文中,我将初步介绍一个名为ABINIT的软件包 (http://www.abinit.org)。
ABINIT计算原子核和电子群体的能量和结构。用于进行这些计算的方法是密度泛函理论 (DFT, https://en.wikipedia.org/wiki/Density_functional_theory)。如果您想了解更多关于底层理论的信息,请随时与您身边的计算化学家交流。
尽管我接触到的是人们在大量机器上并行运行ABINIT,但至少在学习环境或对于小型系统而言,没有什么能阻止您在自己的桌面上运行它。当然,第一步是在您的机器上安装它。您的发行版中可能包含使安装更容易的软件包。例如,在基于Debian的系统上,您可以使用以下命令安装它
sudo apt-get install abinit abinit-data abinit-doc
该方法的唯一问题是您可能会获得旧版本的ABINIT。在撰写本文时,Ubuntu软件包安装的是7.8.2版本,而在网站上,您可以下载7.10.5版本。
如果您需要最新的可用代码,您可以随时从主页获取源代码并在本地机器上自行编译。为了自行构建它,您需要构建其他软件包的常用实用程序,例如make、libtool和autoconf。由于大部分代码是用FORTRAN编写的,因此您还需要一个能够编译F90代码的编译器。这将允许您构建ABINIT的基本版本。如果您的系统上可用,您可以包含额外的功能,例如MPI或NetCDF。
运行这些计算的主要可执行文件名为 abinit
。它需要多个输入文件才能进行实际计算。其中一个输入文件实际上是文件列表文件。它是一个包含abinit需要读取的其他输入文件列表的文件。常用的文件名后缀是“.files”。如果您有这个输入文件,您可以使用以下命令运行模拟
abinit < my_input.files >& log
这告诉abinit从标准输入(附加到文件my_input.files)读取输入数据,并将结果写入标准输出(附加到文件log)。日志文件仅捕获写入标准输出流的输出。还有很多其他输出被写入。这些其他输出文件在my_input.files文件中定义。以下列表是对内容的更详细描述
-
ab_in — 主要输入文件。
-
ab_out — 主要输出文件。
-
abi — 其他输入文件的根文件名。
-
abo — 其他输出文件的根文件名。
-
tmp — 临时文件的根文件名。
-
my.psp — 本次运行使用的赝势。
根名称“abi”、“abo”和“tmp”用于为每个部分创建多个文件。
关于输入文件有一些规则,如果您不遵守这些规则,可能会导致问题。第一个是您的输入文件中不能有制表符。因此,请确保您的编辑器在您按下Tab键时使用空格字符。第二个规则与使用负数有关。负号和数字的第一位之间不能有空格。最后一个格式规则是,任何行都不能超过132个字符。如果任何行的长度超过此限制,ABINIT将简单地忽略多余的内容。如果您在尝试运行自己的作业时遇到错误,那么这些是您应该首先检查的几个地方。
有大量的输入变量,允许您控制文件处理、几何结构、结构优化和响应函数等方面的参数。这些输入变量可以按任何顺序排列。在计算开始之前,会解析整个文件。当您开始创建自己的输入文件时,您可能希望能够以某种方式检查它们。幸运的是,您可以使用ABINIT本身来做到这一点。abinit
可执行文件包含一个选项(-d
或 --dry-run
),用于获取您的输入文件并在不启动计算的情况下验证它们。这使您至少可以捕获主要的拼写错误,而不会浪费时间进行部分运行并使其失败。
除了您自己的输入文件(描述几何结构和其他描述性变量)之外,ABINIT还需要输入文件来描述您系统中称为赝势的东西。有不同类型的赝势,例如Troullier-Martins或Hartwigsen-Goedecker-Hutter赝势,可用于不同的情况。幸运的是,ABINIT包含了整个元素周期表的赝势。这意味着您只需通过包含系统中每种不同类型原子的赝势来构建您的分子。虽然在大多数情况下这不是必需的,但如果需要,您可以为某些非常专业的系统创建自己的赝势。
另一件需要注意的是,ABINIT是在GPL许可下发布的。这意味着您可以访问所有源代码,并可以确切地了解计算是如何完成的。在进行基础科学研究时,这可能非常重要。您可能正在尝试在可用算法不再有效的区域进行计算。所有这些计算都进行了假设,以尝试简化计算,使其真正可行,牢记这一点非常重要。但是,通过访问代码,您有机会更改这些算法,以更好地适应对您的问题有效的假设。这种开源代码使您能够基于过去的所有工作进行构建,并将其推向新的研究领域。请记住将这些扩展和改进传递给下一组研究人员,以不断推进我们的理解。
解释ABINIT的输出可能有点困难。有很多输出描述了计算值如何进展,直到它们达到请求的精度以获得实际答案。例如,如果您正在计算分子构型的能量,您可能对能量何时处于最低值感兴趣。这将是这些原子核和电子最稳定的构型。但是,您如何解释此输出?有几种工具可用于获取此输出的几何部分并绘制它,以便您可以看到配置的实际外观。还将有输出描述原子核之间各种连接的强度,您可以使用它来查看您的分子可能有多活跃。
这只是对使用ABINIT所涉及内容的非常基本的介绍。希望您现在感觉更自在地深入研究大量的文档,并使用ABINIT来解决您遇到的任何分子问题。当您准备好时,您可以使用ABINIT中的MPI功能来使用尽可能多的可用机器,从而解决更大的问题。