利用dft的定义计算dft的matlab程序_CP2K教程系列之静态计算(Pymatflow篇)

bbadd92b514ad565494ee1fc93459625.png

本系列CP2K教程是《CP2K菜根谭》的升级版,在旧版基础上添加了如何结合Pymatflow工具简化计算流程的内容。话不多说,本文将为您带来CP2K系列教程中的静态计算部分。

静态计算设置

静态计算是大多数人接触第一性原理计算后第一次运行的计算类型。很多其它类型的计算的参数设置与静态计算参数的设置紧密相关,比如结构优化,AIMD,过渡态搜索等。

只有静态电子结构计算的参数设置合理才能够保证后续的结构优化等步骤有一个坚实的基础。比如有时候,很急冲冲地就想要对体系进行结构优化,但是忽略了电子步DFT参数的设置的合理性,就有可能无法得到好的优化结果。

可见掌握良好合理的单点能计算参数的设置对于进行后续的各种类型的模拟也是至关重要的。

单点能计算的核心也就是进行Kohn-Sham方程的一个自洽求解过程,通常又被称为自洽场(SCF)过程。在CP2K中,这部分的设置主要通过FORCE_EVAL输入模块进行。

完整输入文件

老传统,先给出完整输入文件,再一一进行解释。

&GLOBAL    PROJECT NaCl-Static    RUN_TYPE ENERGY_FORCE    PRINT_LEVEL LOW    FFTW_PLAN_TYPE ESTIMATE&END GLOBAL​&FORCE_EVAL    METHOD QS    &SUBSYS        &KIND Na            BASIS_SET DZVP-MOLOPT-SR-GTH            POTENTIAL GTH-PBE        &END KIND        &KIND Cl            BASIS_SET DZVP-MOLOPT-SR-GTH            POTENTIAL GTH-PBE        &END KIND        &CELL            A 5.691694000 0.000000000 0.000000000            B 0.000000000 5.691694000 0.000000000            C 0.000000000 0.000000000 5.691694000            PERIODIC XYZ        &END CELL        &TOPOLOGY            COORD_FILE_FORMAT xyz            COORD_FILE_NAME nacl.xyz        &END TOPOLOGY    &END SUBSYS    &DFT        BASIS_SET_FILE_NAME BASIS_MOLOPT        POTENTIAL_FILE_NAME GTH_POTENTIALS        &QS            METHOD gpw            EPS_DEFAULT 1e-14        &END QS        &POISSON            PERIODIC XYZ            POISSON_SOLVER PERIODIC        &END POISSON        &MGRID            CUTOFF 100            REL_CUTOFF 60            NGRIDS 4        &END MGRID        &XC            &XC_FUNCTIONAL pbe            &END XC_FUNCTIONAL        &END XC        &KPOINTS            SCHEME monkhorst-pack 3 3 3        &END KPOINTS        &SCF            ADDED_MOS 0            SCF_GUESS ATOMIC            EPS_SCF 1e-06            MAX_SCF 50            &DIAGONALIZATION TRUE                ALGORITHM STANDARD            &END DIAGONALIZATION            &MIXING TRUE                ALPHA 0.4                METHOD BROYDEN_MIXING            &END MIXING        &END SCF        &PRINT        &END PRINT    &END DFT    &PROPERTIES    &END PROPERTIES&END FORCE_EVAL

其中nacl.xyz文件的内容为

8a comment lineNa  0.000000    0.000000    0.000000Na  0.000000    2.845847    2.845847Na  2.845847    0.000000    2.845847Na  2.845847    2.845847    0.000000Cl  0.000000    0.000000    2.845847Cl  0.000000    2.845847    0.000000Cl  2.845847    0.000000    0.000000Cl  2.845847    2.845847    2.845847

(将输入参数文件与坐标文件nacl.xyz放在同一个路径下就可以运行示例)

整个输入文件分为两个大的部分,即&GLOBAL与&FORCE_EVAL。其中GLOBAL比较简单,参数PROJECT用于指定项目名,其会被用来辅助cp2k输出文件的命名,这里不用过多关心。我们需要关心的是设置运行类型,即RUN_TYPE为ENERGY_FORCE,或者也可以设置为ENERGY,两者都是静态计算,不过后者不会计算原子受到的力。另外PRINT_LEVEL决定了程序输出内容的多少,可以为DEBUG、HIGH、LOW、MEDIUM、SILENT五个选项之一。

好了,该轮到重头戏&FORCE_EVAL部分了。下面我们按照出现的顺序依次进行解释。

首先就是&FORCE_EVAL模块的参数,常见的设置就是QS或者叫QUICKSTEP了。Quickstep是CP2K的DFT计算的核心方法实现。Quickstep基于高斯平面波(GPW)或高斯缀加平面波(GAPW)基组。关于这两种基组的优点可以见文章CP2K 菜根谭之简介。

然后就需要通过&SUBSYS模块来设置计算体系。通过&KIND &END_KIND组合来为体系中所有的类型的元素定义DFT计算中使用的贋势和基组类型,你可以进入你的CP2K安装目录下的data中查看贋势和基组文件。需要注意的是这里通过BASIS_SET和POTENTIAL定义的基组和贋势需要分别出现在后面的通过&DFT中的BASIS_SET_FILE_NAME和POTENTIAL_FILE_NAME定义的基组文件和贋势文件中。

&CELL是用来定义超胞的,而&TOPOLOG被用于定义体系的坐标几何。通过COORD_FILE_FORMAT定义坐标文件的格式,如这里的xyz格式,通过COORD_FILE_NAME定义坐标文件名。得到支持的文件格式包括: cif、crd、g96、pdb、xyz等常见格式。另外除了通过这种引入外部文件的方式来定义体系坐标外,也可以直接通过COORD来进行坐标的定义。比如可以将上面的&TOPOLOGY部分替换为下面的内容:

&COORDNa  0.000000    0.000000    0.000000Na  0.000000    2.845847    2.845847Na  2.845847    0.000000    2.845847Na  2.845847    2.845847    0.000000Cl  0.000000    0.000000    2.845847Cl  0.000000    2.845847    0.000000Cl  2.845847    0.000000    0.000000Cl  2.845847    2.845847    2.845847&END COORD

解析来就是定义DFT计算的一系列参数,其中BASIS_SET_FILE_NAME``和POTENTIAL_FILE_NAME在前面已经有提到过,用来定义基组和贋势文件名。

&QSMETHOD GPWEPS_DEFAULT 1.0E-10&END QS

这部分定义QS方法的一些参数,包括使用的方法,如这里的GPW。以及为所有的能量收敛阈值设置一个默认值EPS_DEFAULT。

&MGRID  CUTOFF 100  REL_CUTOFF 60  NGRIDS 4&END MGRID​

MGRID定义了实空间mutltigrid的一些参数,包括实空间网格的截断值CUTOFF(可以类比为截断能)。使用到的multigrid的数量NGRIDS

&XC  &XC_FUNCTIONAL PBE  &END XC_FUNCTIONAL&END XC

这部分定义了使用的交换关联泛函,如这里使用的是PBE泛函。

&SCF  ADDED_MOS 0  SCF_GUESS ATOMIC  EPS_SCF 1e-05  MAX_SCF 50  &DIAGONALIZATION TRUE  ALGORITHM STANDARD  &END DIAGONALIZATION  &MIXING TRUE      ALPHA 0.4      METHOD BROYDEN_MIXING  &END MIXING  &PRINT  &END PRINT&END SCF

这里定义了SCF自洽过程的相关参数。如ADDED_MOS定义了额外添加到计算中的轨道的数量。SCF_GUESS定义了初始波函数的构造方案。EPS_SCF定义了SCF的收敛阈值。MAX_SCF定义了最大的自洽循环步数。

&DIAGONALIZATION部分表明使用常规的正交化求解KS矩阵。至于CP2K中替代传统正交化方法的OT方法,我们将在后面的文章中进行介绍。

&MIXING部分定义了SCF迭代过程中对密度矩阵进行混合的参数。ALPHA定义了密度矩阵混合的比例,METHOD定义了采取的混合方法,常见的有BROYDEN_MIXING和DIRECT_P_MIXING、PULAY_MIXING。


基本参数的解释到这里就结束了,至于偷偷潜入其中的&PRINT部分,后面在许多地方比如涉及到需要静态计算获取一些物理性质的时候需要用到它们。现在我们暂时忽略。

使用Pymatflow高效完成任务

为了完成上述计算任务,只需使用Pymatflow一条命令即可:

~$ matflow cp2k -r 0 --cutoff 100 --kpoints-scheme "monkhorst-pack 3 3 3" -d nacl-static

上述命令会在当前路径创建nacl-static目录,然后在其下自动生成输入文件并进行作业任务的提交。默认使用PBS作业调度器。

你也可以通过--server指定其它服务器类型,比如吕梁天河二号超算系统请使用--server llhpc参数。如果你只是想在本地单节点运行,请使用一下参数组合: --runopt genrun、--auto 0。

等待计算任务结束后,你可以通过postflow命令来进行部分计算结构的后处理:

~$ postflow cp2k -r 0 -d nacl-static
d5e7f37c54b48a6e1b230b5f3486f099.png

上图为在nacl-static/post-processing目录下得到的静态自洽过程能量的变化。

往期文章

Linux下无法挂载exfat格式的分区

Linux中那些我们赖以为生的Bash别名

如何实现更改Linux终端字体的种类和大小

Linux使用图形界面连接WiFi

Pymatflow是一个用于第一性原理模拟的工作流自动化管理软件,目前支持的计算程序有VASP、Qutum ESPRESSO、Abinit、SIESTA、CP2K。

项目文档地址:

http://pymatflow.readthedocs.org/

中文手册:

https://pymatflow.readthedocs.io/en/latest/manual_cn.html

欢迎关注以获取更多关于Pymatflow和第一性原理计算的精彩内容。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/457875.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微软是如何戏耍程序员们的

2019独角兽企业重金招聘Python工程师标准>>> 别用微软的东西。商业目的性太强,千万别被微软牵着鼻子走,血淋淋的教训。微软推出的垃圾多了去了。它什么都想做,很多都没做好: MFC:Win31时代出生,…

3d立体相册特效html网页代码_新闻类网页正文通用抽取器

项目起源开发这个项目,源自于我在知网发现了一篇关于自动化抽取新闻类网站正文的算法论文——《基于文本及符号密度的网页正文提取方法》这篇论文中描述的算法看起来简洁清晰,并且符合逻辑。但由于论文中只讲了算法原理,并没有具体的语言实现…

字节数组转换为图片_每日一课 | Python 3 TypeError:无法将“字节”对象隐式转换为str...

将Python 2套接字示例转换为Python 3whois.py import sysimport sockets socket.socket(socket.AF_INET, socket.SOCK_STREAM)s.connect(("whois.arin.net", 43))s.send((sys.argv[1] "\r\n").encode())response ""while True: data s.re…

加速度计和陀螺仪数据融合

本帖翻译自 IMU(加速度计和陀螺仪设备)在嵌入式应用中使用的指南。这篇文章主要介绍加速度计和陀螺仪的数学模型和基本算法,以及如何融合这两者,侧重算法、思想的讨论介绍本指南旨在向兴趣者介绍惯性MEMS(微机电系统&a…

循环嵌套练习题

//BOSS://让用户输入一个奇数,打印菱形,最长的行内容个数为用户输入的个数,并且由英文字母拼接而成//比如用户输入了7// A// ABA// ABCBA// ABCDCBA// ABCBA// ABA// A//1、接收并判断用户输入的是不是数字 try{#region 解法一…

python leetcode_leetcode 介绍和 python 数据结构与算法学习资料

for (刚入门的编程)的高中 or 大学生leetcode 介绍leetcode 可以说是 cs 最核心的一门“课程”了,虽然不是大学开设的,但基本上每一个现代的高水平的程序员都修过这门“课程”(或者类似的课程,比如数据结构…

IOS 为UILabel添加长按复制功能

IOS 为UILabel添加长按复制功能 在iOS中下面三个控件,自身就有复制-粘贴的功能: 1、UITextView 2、UITextField 3、UIWebView UIKit framework提供了几个类和协议方便我们在自己的应用程序中实现剪贴板的功能。 1、UIPasteboard:我们可以向其…

navicat 的查询功能

navicat的查询的位置在&#xff1a; 在编辑器界面写代码&#xff0c;代码完成后点左上角的运行。 代码&#xff1a; create&#xff08;创建&#xff09; table&#xff08;一个表&#xff09; <xxx>尖括号内的内容必填——我要创建并查询一个名叫做xxx的表 &#xff08…

c++ sleep函数_Linux 多线程应用中如何编写安全的信号处理函数

关于代码的可重入性&#xff0c;设计开发人员一般只考虑到线程安全&#xff0c;异步信号处理函数的安全却往往被忽略。本文首先介绍如何编写安全的异步信号处理函数&#xff1b;然后举例说明在多线程应用中如何构建模型让异步信号在指定的线程中以同步的方式处理。Linux 多线程…

CoreAnimation (CALayer 动画)

CoreAnimation基本介绍&#xff1a; CoreAnimation动画位于iOS框架的Media层CoreAnimation动画实现需要添加QuartzCore.FrameworkCoreAnimation基本上是LayerAnimationCoreAnimation分类&#xff1a; CoreAnimation作用&#xff1a; CoreAnimation CALayer基本介绍 CALayer的常…

汇编为什么分段执行总是执行不了_iOS汇编教程(六)CPU 指令重排与内存屏障...

系列文章iOS 汇编入门教程(一)ARM64 汇编基础iOS 汇编入门教程(二)在 Xcode 工程中嵌入汇编代码iOS 汇编入门教程(三)汇编中的 Section 与数据存取iOS 汇编教程(四)基于 LLDB 动态调试快速分析系统函数的实现iOS 汇编教程(五)Objc Block 的内存布局和汇编表示前言具有 ARM 体系…

GD32 使用stm32 固件库

1、 系统 1) 晶振起振区别 描述&#xff1a;启动时间&#xff0c;GD32 与STM32 启动时间都是2ms&#xff0c;实际上GD 的执行效率快&#xff0c;所以ST 的HSE_STARTUP_TIMEOUT ((uint16_t)0x0500)是2ms&#xff0c;但是这个宏定义值在GD 上时间就更加短了&#xff0c;所以要加大…

js反混淆还原工具_SATURN反混淆框架

本文为看雪论坛精华文章看雪论坛作者ID&#xff1a;梦野间摘要&#xff1a;近几年&#xff0c;软件的混淆强度一直在不断提升。基于编译器的混淆已经成为业界事实上的标准&#xff0c;最近的一些论文也表明软件的保护方式使用的是编译器级别的混淆。在这篇文章中&#xff0c;我…

python 多线程并发_寻找python大神!!!python如何多线程并发?

不是大神。尝试回答一下。 首先解释下什么叫做线程&#xff0c;什么叫做进程&#xff0c;在解释这两个概念前&#xff0c;我们还需要明白什么叫做GIL全局解释器锁。GIL 全局解释器锁&#xff1a; GIL(全局解释器锁&#xff0c;GIL 只有cpython有)&#xff1a;在同一个时刻&…

Nginx/Apache发大招

导读网站程序的上传目录通常是不需要PHP执行解释权限&#xff0c;通过限制目录的PHP执行权限可以提网站的安全性&#xff0c;减少被攻击的机率。下面和大家一起分享下如何在Apache和Nginx禁止上传目录里PHP的执行权限。 Apache下禁止指定目录运行PHP脚本在虚拟主机配置文件中增…

dmp文件查看表空间_innoDb文件

一&#xff0e;文件总体概述InnoDb文件主要有以下文件1. 参数文件&#xff1a;启动需要的各种参数作2. 日志文件&#xff1a;记录mysql实例某种条件做出的响应而写入的文件&#xff0c;如错误日志、二进制日志、慢查询日志、查询日志等3. Socket文件&#xff1a;连接需要的文件…

论文笔记之:Deep Attention Recurrent Q-Network

Deep Attention Recurrent Q-Network 5vision groups 摘要&#xff1a;本文将 DQN 引入了 Attention 机制&#xff0c;使得学习更具有方向性和指导性。&#xff08;前段时间做一个工作打算就这么干&#xff0c;谁想到&#xff0c;这么快就被这几个孩子给实现了&#xff0c;自愧…

linux c程序中内核态与用户态内存存储问题

Unix/Linux的体系架构 如上图所示&#xff0c;从宏观上来看&#xff0c;Linux操作系统的体系架构分为用户态和内核态&#xff08;或者用户空间和内核&#xff09;。内核从本质上看是一种软件——控制计算机的硬件资源&#xff0c;并提供上层应用程序运行的环境。用户态即上层应…

线程自动退出_C++基础 多线程笔记(一)

join & detachjoin和detach为最基本的用法&#xff0c;join可以使主线程&#xff08;main函数&#xff09;等待子线程&#xff08;自定义的function_1函数&#xff09;完成后再退出程序&#xff0c;而detach可以使子线程与主线程毫无关联的独立运行&#xff0c;当主线程执行…

数组拼接时中间怎么加入空格_【题解二维数组】1123:图像相似度

1123&#xff1a;图像相似度时间限制: 1000 ms 内存限制: 65536 KB【题目描述】给出两幅相同大小的黑白图像(用0-1矩阵)表示&#xff0c;求它们的相似度。说明&#xff1a;若两幅图像在相同位置上的像素点颜色相同&#xff0c;则称它们在该位置具有相同的像素点。两幅图像的…