Pyabacus 文档一:用户手册

作者:白晨旭

审核:陈默涵

单位:北京大学

最后更新时间:2024-11-15

一、简介

pyabacus 是密度泛函理论软件 ABACUS(原子算筹)的 Python 接口,提供了与 ABACUS 软件交互的 Python API。

该项目基于 pybind11scikit-build-core 构建。

二、模块

pyabacus 当前提供以下模块:

  • iopyabacus 中的输入/输出模块。
  • Cell:用于单元结构的模块,将 Python 中的 ModuleNAO 与用户输入连接。
  • ModuleBase:基本数学函数模块。
  • ModuleNAO:数值原子轨道 (NAO) 模块。
  • hsolver:用于求解哈密顿量的模块。

三、安装

我们建议用户使用 conda 进行安装,conda 是一个开源的软件包管理系统和环境管理系统,可以方便的管理不同版本的 Python 和软件包。用户可以按照以下步骤安装 Pyabacus:

  • 创建一个虚拟环境,并且激活虚拟环境 conda create -n pyabacus python=3.8 & conda activate pyabacus
  • 下载 ABACUS 软件
cd {your_working_directory}
git clone https://github.com/abacusmodeling/abacus-develop.git
cd abacus-develop/python/pyabacus
  • 安装 ABACUS 所需的依赖库
  • 使用 pip install -v . 安装 Pyabacus,或者使用 pip install .[test] 安装 Pyabacus 及其测试环境的依赖库(使用 pip install -v .[test] -i https://pypi.tuna.tsinghua.edu.cn/simple 加速安装过程)。

四、调用

用户可以通过以下代码调用 Pyabacus 的接口:

import pyabacus
s = pyabacus.ModuleBase.Sphbes()
s.sphbesj(1, 0.0)
0.0

上面的代码调用了 ABACUS 的 ModuleBase::Sphbes 模块。

目前,我们移植了下面几个模块:

  • ModuleBase::Sphbes
  • ModuleBase::Integral
  • RadialCollection
  • TwoCenterIntegrator
  • hsolver::dav_subspace 在 Python 中调用这些模块的方法可见 examples 文件夹内示例。

五、示例

examples 文件夹中包含了一些 Pyabacus 的示例脚本,用户可以通过这些示例脚本了解 Pyabacus 的使用方法。

运行 examples 文件夹中的 python vis_nao.py 以可视化数值原子轨道。

$ cd examples/
$ python vis_nao.py

运行 examples 文件夹中的 python ex_s_rotate.py 来检查 S 矩阵。

$ cd examples/
$ python ex_s_rotate.py
norm(S_e3 - S_numer) =  3.341208104032616e-15

运行 examples 文件夹中的 python diago_matrix.py 来对角化一个矩阵

$ cd examples/
$ python diago_matrix.py
eigenvalues calculated by pyabacus: [-0.38440611 0.24221155 0.31593272 0.53144616 0.85155108 1.06950155 1.11142051 1.12462152]
eigenvalues calculated by scipy: [-0.38440611 0.24221155 0.31593272 0.53144616 0.85155108 1.06950154 1.11142051 1.12462151]
error: [9.26164700e-12 2.42959514e-10 2.96529468e-11 7.77933273e-12 7.53686002e-12 2.95628810e-09 1.04678111e-09 7.79106313e-09]

六、测试

Pyabacus 使用 pytest 进行单元测试,用户可以在 abacus-develop/python/pyabacus/tests 目录下使用 pytest -v 命令进行单元测试。

七、结语

以上就是 Pyabacus 的一些基本安装和使用方法,如果读者对进一步交流感兴趣,欢迎登录 ABACUS 的 github 网站进行进一步的交流。

Copyright © mcresearch.gitee.io 2023 all right reserved,powered by Gitbook该文章修订时间: 2024-11-16 16:01:34

results matching ""

    No results matching ""