paw-dft波函数数值分析的并行c/python软件包

pawpyseed的Python项目详细描述


pawpyseed

https://kylebystrom.github.io/pawpyseed/

警告:pawpyseed仍处于早期开发阶段:某些功能尚未经过彻底测试。 对重叠算子的评估进行了测试,但有些特性仍需要更深入的测试。 此外,安装仅在几个系统(所有Linux)上进行过测试。

pawpyseed是一个并行的python和c工具,用于读取和 优化的频带结构和波函数分析 VASP DFT计算。代码是为paw编写的 由P.E.Blochl开发并实现的形式主义 在Vasp.

安装

安装pawpyseed唯一棘手的部分是链接到英特尔数学内核库 (MKL)。在配置文件的帮助下,有很多方法可以做到这一点。做你自己的, 在主目录中创建一个名为.pawpyseed site.cfg的文件。此文件允许您 自定义pawpyseed的配置设置。使用python读取 configparser模块https://docs.python.org/3/library/configparser.html。如果你不 要了解配置文件选项,请跳到"简单方法"以快速完成此操作。

可定制的方式

选项(默认设置)如下:

[compiler]
# Name of the compiler to be used. By default, let's the setup script choose this.
compiler_name = <no default> # Examples: icc or gcc
# Name of the linker to be used. By default, let's the setup script choose this.
# NOTE: Don't forget the -shared tag for icc or gcc!
# NOTE: If compiler_name is set and linker_name is not,
#       linker_name is set to compiler_name with the -shared tag appended.
linker_name = <no default> # Examples: icc -shared or gcc -shared

[mkl]
# MKL installation directory. <root>/lib or <root>/lib/intel64 must contain
# the MKL shared object libraries, while <root>/include must containn the MKL headers.
# Many systems have the environment variable
# MKLROOT set for this, so you can set this to the output of:
#       echo $MKLROOT
# If you pip install mkl-devel, this goes to /usr or /usr/local.
# If you pip install mkl-devel --user, this goes to ~/.local
# (or the equivalents for your system).
root = <no default>
# Don't change this. Might be used in the future but currently has no effect.
interface32 = True
# Whether to compile with the single dynamic library libmkl_rt.so.
# If you are having installation/performance problems, try setting sdl=True,
# pip installing mkl-devel with the --user option, set root=~/.local,
# and set the environment variable MKL_THREADING_LAYER=sequential
# when using pawpyseed.
sdl = False

[threading]
# Whether to use omp_loops. If False, pawpyseed doesn't do any parallelization
# on its own, though its calls to MKL, BLAS, LAPACK, etc might be
# threaded by MKL.
omp_loops = True
# Whether to use threading for MKL. OVERRIDDEN if sdl=True, in which case
# MKL is threaded by default and you can run sequentially by
# setting the environment variable MKL_THREADING_LAYER=sequential
# when using pawpyseed.
# NOTE: ONLY SET THIS TRUE IF COMPILING WITH icc (OR gcc with omp_loops=False),
# and only if you are very concerned about speed. This is because gcc
# cannot do nested parallelism with MKL
threaded_mkl = False

# NOTE: Do not link to icc-compiled MKL libraries when compiling the C
# extension with gcc or vice versa. Use like type compilers.

简单的方法

英特尔简易方法

如果您有icc,请在~/.pawpyseed site.cfg中设置compiler=icc,然后 将根目录设置为mkl安装目录。设置sdl=true。你的MKL发行版也必须 已使用英特尔编译器编译。运行setup.py脚本或pip install pawpyseed

GNU简易方法

首先,在本地安装中安装mkl-devel

pip install mkl-devel --user

site.cfg.default从pawpyseed存储库复制到~/.pawpyseed site.cfg。 打开它并在[mkl]标题下设置root=<;您的主目录>;/.local 并通过移除来取消注释。然后运行< /P>

python setup.py build
python setup.py install

或者使用pip

pip install pawpyseed

这已经在科学Linux 7和Linux Mint 18上测试过了, 但它应该适用于 包和环境变量定义如下。

如果在运行时使用此方法获得链接问题,请尝试设置 sdl=true在配置文件中,然后设置环境 变量mkl_threading_layer=顺序

依赖关系

所有依赖项指示测试的最低版本。 pawpyseed在早期版本中可能工作得很好,但是 官方不支持使用旧版本。

python要求:

Python>=3.5
numpy>=1.14
scipy>=1.0
pymatgen>=2018.2.13
sympy>=1.1.1
matplotlib>=0.2.5

c要求:

icc >= 16.0.4 OR gcc >= 4.8.5
Intel Math Kernel Library >= 11.3.4

如果您不想pip安装intel mkl, 它可以免费安装在各种平台上。 大多数计算集群都有intel mkl,您可以安装它 在您的桌面(或您有根访问权限的任何系统)上执行以下操作 相关说明见以下网址: https://software.intel.com/en-us/articles/free-ipsxe tools and libraries

理论和输入

PAW

投影增强波(paw)方法是一种技术 用于平面波密度泛函理论的简化 核附近波函数的描述 一个系统。原子附近的强大库仑力 原子核产生快速振荡的波函数 平面波不能很好地描述 大基集,所以引入了"伪势" 在原子核附近 平面波很好地描述了"伪波函数"。这个 完整的波函数可以通过lin恢复耳变换 关于伪波函数。paw方法需要 三组功能:投影仪功能 投影伪波函数来探测它们的特性; 描述原子价态的全部分波 由真势和伪偏波导出, 它们是由全部分波和 赝势。

文件

投影仪的功能和部分波是独一无二的 存储在potcar文件中的每个元素 用于VASP计算。伪波函数 是在DFT中优化的波函数的一部分 计算并存储在WaveCar输出文件中 在VASP。pawpyseed解析两个文件以检索 全部kohn-sham波函数的所有部分。

代码

pawpyseed的主要目的是评估重叠 kohn-sham波函数之间的算子 结构,这不是由标准的平面波dft码来完成的。 这样的功能对于分析组合很有用 固体中的缺陷水平,这是其主要应用 代码当前处于焦点。

实施

  • python接口
  • c中计算密集型任务
  • 与openmp并行化

当前功能

  • 读取伪波函数
  • 从vasp potcar中读取投影仪和部分波
  • 计算频带之间的重叠运算符, 包括当波段属于不同结构时 具有相同的晶格
  • 将点缺陷水平投射到批量价上 传导带
  • 方便的PYCDT接口
  • 点缺陷计算的扰动外推校正
  • 读取非共线伪波函数并构造所有电子波函数(非共线数据无重叠算符计算)

未来功能

  • 用scdm-k定位轨道
  • 用于电荷修正和其他应用的原子hartree-fock和gga-dft数据库
  • 将paw波函数转换为nc波函数(用于gw计算)
  • 对所有电子波函数执行一般算符期望值

致谢

PawPyseed中的代码基于以下几种算法和代码 这里,

  1. : paw法是由p.e.blochl于1994年发展起来的。他的论文提出了这种方法 有助于我得到发展所需的形式主义的扩展 这个代码。
    • P.E.布洛赫。投影增强波法。Phys。牧师。B,50:179531994年。
  2. VASP: pawpyseed主要用于读取和处理vasp计算的输出。 pawpyseed读取paw波函数并使用算法计算重叠算子 源于VASP和其他平面波编码,因此以下引用是必要的。 最后一个引文是专门为paw方法和潜力。查看VASP网站 有关信息,请访问http://community.hartree.stfc.ac.uk/wiki/site/admin/vasp.html" rel="nofollow">http://community.hartree.stfc.ac.uk/wiki/site/admin/vasp.html。 引用特定的功能。
    • 克雷塞和哈夫纳。液态金属的从头算分子动力学。Phys。牧师。B,47:5581993年。
    • 克雷塞和哈夫纳。锗中液态金属-非晶半导体转变的从头算分子动力学模拟。Phys。牧师。B,49:142511994年。
    • 克雷塞和弗特米勒。用平面波基组从头计算金属和半导体总能量的效率。计算机。垫子。科学,1996年6:15。
    • 克雷塞和弗特米勒。利用平面波基组进行从头算总能量计算的有效迭代格式。Phys。牧师。B,54:111691996年。
    • 克雷塞和朱伯特。从超软赝势到投影增强波法。Phys。牧师。B,59:17581999。
  3. numbt numbt是j.d.talman编写的代码,它实现了一个算法 计算o(nlogn)时间内的球面贝塞尔变换(sbt)。 当归 采用在numsbt中实现的high-k变换算法 计算 具有不同位置或元素的重叠增强球体。 它还用于从声发射部分滤除高频成分 波,它允许从伪波函数到ae部分 在真实空间中执行的波,是 代码。 numbt是在标准的cpc许可下分发的,算法是 在以下文件中开发:
    • 《计算机物理通信》2009,180,332–338。
  4. 波形变换器: reader.c和reader.h,它们从vasp输出读取wavecar文件, 是基于fortran程序wavetrans编写的 卡内基物理系的R.M.Feenstra和M.Widom 梅隆大学。为了看原作, 请访问https://www.andrew.cmu.edu/user/feenstra/wavetrans/" rel="nofollow">https://www.andrew.cmu.edu/user/feenstra/wavetrans/
  5. 强效氧: doxygen是一个文档生成器,我用它为pawpyseed构建文档。 它是一个极好的工具,允许清理,最新的文件 这很容易制作和导航。请访问http://www.stack.nl/%7edimitri/doxygen/" rel="nofollow">http://www.stack.nl/~dimitri/doxygen/
  6. < > >

    引用

    如果您发现pawpyseed有用,请通过 引用您研究中的以下论文:

    @ARTICLE{2019arXiv190411572B,
           author = { {Bystrom}, Kyle and {Broberg}, Danny and {Dwaraknath}, Shyam and
             {Persson}, Kristin A. and {Asta}, Mark},
            title = "{Pawpyseed: Perturbation-extrapolation band shifting corrections for point defect calculations}",
          journal = {arXiv e-prints},
         keywords = {Condensed Matter - Materials Science},
             year = "2019",
            month = "Apr",
              eid = {arXiv:1904.11572},
            pages = {arXiv:1904.11572},
    archivePrefix = {arXiv},
           eprint = {1904.11572},
     primaryClass = {cond-mat.mtrl-sci},
           adsurl = {https://ui.adsabs.harvard.edu/abs/2019arXiv190411572B},
          adsnote = {Provided by the SAO/NASA Astrophysics Data System}
    }
    
    

    您可以在这里查看本文:https://arxiv.org/abs/1904.11572

    问题和评论

    找到虫子了吗?不清楚记录的代码区域?其他问题?随时联系 kyle bystrom,网址为kylebystrom@gmail.com,主题为"pawpyseed:<;topic>;" 和/或在github页面上创建一个问题,网址为https://github.com/kylebystrom/pawpyseed" rel="nofollow">https://github.com/kylebystrom/pawpyseed

    欢迎加入QQ群-->: 979659372 Python中文网_新手群

    推荐PyPI第三方库


热门话题
java如何将字符串转换为自定义对象   java如何从socket方法获取数据?   Java中的soap读取回车和新行   java在单击时替换图像   java推荐的使用RXJava执行异步任务的方法   java MySql连接器JDBC驱动程序不支持连接池吗?   java将活动堆栈清理到顶部   java计数用户输入的数量   java从webservice下载大文件导致应用程序性能问题   JavaLocalDate。EPOCH不可用   java如何在使用Selenium等待一定时间后,在页面无法加载(get(url))时自动刷新页面   java Calendar setLenient方法不允许检查年份字段的健全性   java Eclipse和intelliJ 安卓 SDK问题   java为什么我可以在没有super关键字的情况下调用父方法?   java iText的PDF格式不好