aiida工作流和源代码引擎的cp2k插件。

aiida-cp2k的Python项目详细描述


aiida cp2k

aiida工作流和源代码引擎的cp2k插件。

logo

安装

如果使用pip,则可以将其安装为:

pip install aiida-cp2k

功能

遵循“启用而不妨碍”的原则,此插件通过一组经过良好测试的功能提供对cp2k所有功能的访问:

params = {'FORCE_EVAL': {'METHOD': 'Quickstep', 'DFT': { ... }}}
calc.use_parameters(ParameterData(dict=params))
  • 节参数作为键_存储在字典中:
xc_section = {'XC_FUNCTIONAL': {'_': 'LDA'}}
  • 重复部分存储为列表:
kind_section = [{'_': 'H', 'BASIS_SET': 'DZVP-MOLOPT-GTH', 'POTENTIAL': 'GTH-LDA'},
                {'_': 'O', 'BASIS_SET': 'DZVP-MOLOPT-GTH', 'POTENTIAL': 'GTH-LDA'}]
  • 大多数数据文件(基集、伪势、vdw等)都是从cp2k的data directory中自动发现的。
dft_section = {'BASIS_SET_FILE_NAME': 'BASIS_MOLOPT', ...}
  • 其他数据文件可以添加为aiida singlefiledata(example):
water_pot = SinglefileData(file="/tmp/water.pot")
calc.use_file(water_pot, linkname="water_pot")
  • 起始几何图形可以提供为aiida structuredata(example):
atoms = ase.build.molecule('H2O', vacuum=2.0)
calc.use_structure(StructureData(ase=atoms))
  • 或者,起始几何图形可以包含在cp2k输入(example)中:
coord_section = {' ': ['H    2.0   2.0   2.737166',
                       'H    2.0   2.0   2.000000']},
  • 要重新启动计算,可以附加父文件夹(example):
calc2.use_parent_folder(calc1.out.remote_folder)
  • 默认情况下,仅检索输出和重新启动文件(如果存在)。根据请求检索其他文件(example):
settings = {'additional_retrieve_list': ["*.cube"]}
calc.use_settings(ParameterData(dict=settings))
  • 最后的几何图形从重新启动文件(如果存在)中提取并存储在aiida中(example):
print(calc.out.output_structure)
  • 从cp2k输出中,只解析警告和最终能量(example):
print(calc.res.nwarnings, calc.res.energy, calc.res.energy_units)
  • 如果找不到警告(example),则认为计算失败。

  • aiida和cp2k之间的几何转换精度至少为1e-10_ngstróm(example)。

  • python代码符合Flake8编码约定。

测试

每个提交和拉取请求都由TravisCI自动测试。

要在本地运行测试,请安装Docker并执行以下命令:

git clone https://github.com/cp2k/aiida-cp2k
docker build -t aiida_cp2k_test aiida-cp2k
docker run -it --init aiida_cp2k_test

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

推荐PyPI第三方库


热门话题
java集合属性值   java字符串==运算符是否比较引用?   java是否存在过太多的ListView或适配器?   json获取java中类路径中下载的文件   我可以用java代码解决数据库并发问题吗?   在多个线程中使用forEach()或使用forEach()和lambdas进行java集合迭代   java输出JFrame中的整个循环   java禁用高度详细的日志记录   java在没有特定属性的对象中访问模型的值   java Smack xmpp建立连接   处理过时域对象引起的并发问题的java策略(Grails/GORM/Hibernate)   java从ObservableList中提取元素   使用图像进行java相似图像搜索   java ListView和图像:我快疯了   在Java中,如何从毫秒时间戳中提取一天的周期?   java我需要这样的设计,但我面临两个问题   java如何获取JGoodies FormLayout中的单元格大小   Spring引导生成的java War文件未部署到Weblogic 12c