轻量级ASE计算器包装量子浓缩咖啡。

decaf-espresso的Python项目详细描述


#+标题:无咖啡因浓缩咖啡[[https://github.com/vossjo/ase浓缩咖啡][ase浓缩咖啡]]。我们的目标是制作一个简化版,它允许大多数的非交互功能,而不需要太多ASE浓缩咖啡的冗长。该代码的目的是要简短和分割成逻辑部分,以帮助那些谁是新的量子浓缩咖啡学习更容易。大部分的简化来自于将=io=功能扩展到ase,这也意味着需要维护的代码更少。

*优点:
-输入单位是EV(类似于ASE浓缩咖啡)并自动转换。
-所有输入关键字都与Quantum浓缩咖啡相同,以防混淆。见:[[https://www.quantum-espresso.org/doc/input_pw.html][qe inputs]]。
-自动验证(某些)参数,灵感来自于[[https://github.com/jkitchin/vasp][vaspy]]。
-用于简化文档的默认参数的直接记录。
-自动处理为一般群集(slurm,lsf,pbs/torque)分配计算节点划痕,以防止不必要的磁盘IO。
-自动处理一般群集(slurm,lsf,pbs/torque)和k点并行化(npool)的智能分配。
-特定的可执行设置,用于在slac、sherlock和nersc集群上兼容。(开箱即用)
-具有ASE中尚未提供的后处理功能。
-用Python 3编写
-带有大量文档的干代码。

*缺点:*
-ASE Espresso提供的所有后处理功能尚未实现。
-不支持无效率损失的交互式ASE
-目前并非所有参数都经过验证或测试(如DFT+U参数)。
-python 2中的有限测试,不支持继续进行。

*安装
**PIP安装
Decaf Espresso最容易与pip使用:

在本地使用:



**源代码安装
或者,通过在主目录中运行以下命令,可以通过git安装具有最新提交的版本。

在你的~/.bashrc=文件中添加以下行,将~/decaf espresso=添加到你的=pythonpath=中。

\begin_src sh
export pythonpath=~/decaf espresso:$pythonpath
\end_src

通过运行以下命令安装需求和(如果需要,添加=--user=参数):

我在计算中最常用的参数,但是验证的通用公式很容易被任何人扩展。其基本思想是,如果用户输入参数,则任何在[[/espresso/validate.py][validation module]]中具有类似名称的函数的[[https://www.quantum-espresso.org/doc/input懔pw.html][qunatum espresso input]]都将执行包含的函数。

如果我将计算初始化为:espress的results output org drawero import espresso

calc=espresso(kpts=(1,1,1))
val):
"将k点测试为"gamma"或列出类似于3个值的值。
当前仅支持自动赋值。

https://www.quantum-espresso.org/doc/input_pw.html;idm4592794051696
"
如果val="gamma":
返回
断言IsInstance(val,(tuple,list,np.ndarray))
assert len(val)==3
1))
+end_src

+结果:
:回溯(最近一次调用):
:文件"组织src",第3行,in<;模块>;
:计算=意式浓缩咖啡(kpts=(1,1))
:文件"/home/jboes/research/decaf意式浓缩咖啡/意式浓缩咖啡/意式浓缩咖啡.py",第62行,in u init_
:new val=f(self,val)
:文件"/home/jboes/research/decaf espresso/espresso/validate.py",第226行,在kpts
:assert len(val)==3
:assertonerror

todo:生成一个更有用的验证错误。

**编写验证函数
每个验证函数遵循一个简单的公式:

val):
"有用的docstring。"
在这里断言一个适当的测试


return updated_val optional
+end_src

where=parameter_name=是quantum espresso参数的确切名称,并且=(calc,val)=始终作为参数传递。这里,=calc=是=espresso=calculator对象,可用于所有其他计算器参数,=val=是用户为给定参数定义的值,可以直接对其进行测试。

验证函数还充当更新某些值的双重角色。例如,量子浓缩咖啡的能量单位是里德堡,但电动汽车更常用于表面科学。因此,任何接受rydbergs的验证函数也将返回和=updated_val=这是从ev转换为rydbergs的值,以便用户可以在ev中指定输入。这牺牲了一些可读性,但避免了在已知值类型的额外列表上循环,帮助保持代码干燥。

*示例脚本
计算器的用法如下所示,用于不同的结构类型。


其他示例即将提供。

**分子松弛
下面的示例将使用一些标准标志来松弛H{2}分子。下面是一些使用的标志的有理数。

-=ecutwfc=:一个必需参数,表示波函数的能量截止。

-=conv_thr=:考虑总能量收敛的阈值。dft最多只能精确到0.1ev左右,因此1e-4应该足以满足大多数用例。

-=消磁=:高斯涂抹系数。这是一种非物理贡献,仅用于帮助具有d-带的原子结构正确收敛。对于分子,我们将其设置为小。

"消磁":0.01}


atoms=molecular('h2',vacuum=6)


calc=espresso(atoms,**parameters)
atoms.get_potential_energy()
+end_src



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

推荐PyPI第三方库


热门话题
Java Hibernate@ManyToMany mapping只在一个方向上在数据库中添加记录   java将文件上载到tomcat服务器外部的文件夹   java将摄像头捕获的图像上传到服务器   java如何创建Rest API并为进程添加时间延迟?   springmodulesvalidation0中缺少java注释包。8a源文件   如何在java中打印SOAP头   Spring security中的java自定义消息,包括UserDetailsService实现和异常   java如何使用Htmlunit中的表单数据登录站点   web如何在WildFly上自动运行java文件   java如何从已经使用另一个方法传递的参数的方法中获取返回值?   java我在JFrame上有一个索引越界。setContentPane   java中的循环序列/系列打印   java maven 3 webapp没有要运行的测试吗?   java CORS不允许POST请求   java再次在派生类中的Jackson中添加字段,该字段在基类中被忽略   爪哇坑测试显示仆从由于超时而异常退出   java寻找第10001个素数   java jboss是否更改web应用程序上下文根?