用户工具

站点工具


atk:quantumatk平面波dft计算引擎介绍

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录前一修订版
后一修订版
前一修订版
atk:quantumatk平面波dft计算引擎介绍 [2019/11/26 20:37] – [介绍] xie.congweiatk:quantumatk平面波dft计算引擎介绍 [2019/11/26 20:57] (当前版本) – [参考] xie.congwei
行 18: 行 18:
  
 ===== 合并 PW 基组 ===== ===== 合并 PW 基组 =====
 +
 +PW 计算器中包含平面波的数量取决于平面波的截断能 $E_\mathrm{cut}$。PW 计算的精确度随平面波数量的增加而增高,但计算成本亦是如此。因此,我们必须通过收敛性研究选择一个计算精度和成本之间的期望权衡。
 +
 +为收敛 PW 基组,我们计算了一系列截断能下的所需性质,本例指的是总能,即为了研究需要多大的 $E_\mathrm{cut}$ 才可以得到足够精确的结果。
 +
 +为实现以上,按照下列步骤:
 +
 +  * 打开 **Builder** {{:atk:builder.png?direct&25|}},点击 Add {{:atk:arrow.png?direct&5|}} From database。
 +  * 输入“copper”,搜索纯铜,选中并按下 {{:atk:plus.png?25|}} 按钮。
 +  * 现在将构型发送到 **Script generator** {{:atk:script_generator.png?direct&25|}}。
 +  * 添加 **New Calculator** {{:atk:calculator.png?direct&25|}} 和  **Total energy** {{:atk:analysis.png?direct&25|}} 模块。
 +  * 打开 **New Calculator**,将其更改为 //ATK-DFT: Plane-wave (beta)//。
 +
 +您的 **New Calculator** 窗口应如下所示:
 +
 +{{ :atk:screenshot-pw-calculator-20191126.png?750 |}}
 +
 +  * 点击 //OK//,利用 {{:atk:sendto.png?direct&20|}} 按钮将脚本发送到 **Editor** {{:atk:editor.png?direct&25|}}。
 +
 +我们现在需要对 PW 截断创建循环。在脚本顶部,指定编码之后插入以下行,计算截断能在 10-100 Hartree 范围内的总能:
 +
 +<code python>  
 +e_cut_list = range(20,110,10)*Hartree
 +
 +for e_cut in e_cut_list:
 +</code>
 +
 +您还需要在这些行之后缩进所有内容。
 +
 +<WRAP center tip 100%>
 +=== 提示 ===
 +您可以通过选中它们并按下 ''Tab'' 键快速在编辑器中缩进多行。
 +</WRAP>
 +
 +最后,我们需要更改 ''for'' 循环中使用的变量截断值。找到定义密度网格截断的所在行,这里应该是第 37 行,并将其替换为以下内容:
 +
 +<code python>  
 +   density_mesh_cutoff=e_cut*4,
 +</code>
 +
 +找到定义计算器的代码行,输入 ''wave_function_cutoff=e_cut'',如下所示:
 +
 +<code python>  
 +    calculator = PlaneWaveCalculator(
 +        wave_function_cutoff=e_cut,
 +        numerical_accuracy_parameters=numerical_accuracy_parameters,
 +        )
 +</code>
 +
 +<WRAP center important 100%>
 +=== 注意 ===
 +默认网格截断是 PW 截断的 4 倍,可以确保没有精度损失和不必要的计算费用。
 +</WRAP>
 +
 +
 +您的脚本应该像这样:[[https://docs.quantumatk.com/_downloads/e-cut-conv.py|↓ e-cut-conv.py]],然后运行它。在现代的笔记本电脑上耗时少于半小时,如果使用 MPI 并行则会大幅缩短时间。
 +
 +<WRAP center tip 100%>
 +=== 提示 ===
 +我们计划在 2018 年添加一个允许您从 Script Generator 设置此过程的新功能。
 +</WRAP>
 +
 +
 +在某些情况下,如果要重复之前的计算,但需要采用较大的 PW 截断,则重启计算会非常有用。以这种方式设置脚本稍微复杂一些,但在我们的例子中,它会使计算运行得更快,所需时间大约减少 2 倍。脚本示例可以在这里下载:[[https://docs.quantumatk.com/_downloads/restart-e-cut-conv.py|↓ restart-e-cut-conv.py]]。
 +
 +运行脚本后,我们现在可以绘制系统总能量与 PW 截断值的关系图。您可以使用这个简单脚本绘制数据:[[https://docs.quantumatk.com/_downloads/plot-e-cut-conv.py|↓ plot-e-cut-conv.py]]。它将生成两个图,一个采用了截断的所有值,另一个图省略了第一个值以使收敛区域的图像更清晰。第二个图应如下所示:
 +
 +{{ :atk:e-cut-conv-7k-zoom-20191126.png?600 |}}
 +
 +上图显示截断值为 50 Hartree 时,总能量已经收敛到每个原子 10 meV 以内,而 70 Hartree 需要将能量收敛至所选参考值截断值 100 Hartree 时的 1 meV 内。参考和收敛标准的选择由用户基于所需精度决定,且与计算成本相平衡。本例中,我们最感兴趣的是快速计算,因此我们选择 50 Hartree 的截断值。
 +
 +<WRAP center tip 100%>
 +=== 提示 ===
 +所需的截断值很大程度上取决于元素和特定的赝势,因此在使用新的赝势时应始终测试收敛。
 +</WRAP>
 +
 +
 +
 +
 +
 +
  
  
 ===== 性质计算 ===== ===== 性质计算 =====
  
 +现在我们已经为可以令人满意的精度找到了所需的 PW 截断值,能够计算一些块体 Cu 的性质了。我们将做晶格常数和能带结构的简单计算。返回 Script Generator 窗口。
  
-===== 其他分析模块 =====+  * 添加 **OptimizeGeometry** {{:atk:optimization.png?direct&25|}} 和 **Bandstructure** {{:atk:analysis.png?direct&25|}} 模块。 
 +  * 移动模块,使 {{:atk:optimization.png?direct&25|}} 正好在 {{:atk:calculator.png?direct&25|}} 之后。 
 +  * 打开 **New Calculator** 模块,更改截断至我们测试后选择的 50 Hartree。 
 +  * 打开 **OptimizeGeometry** 模块,不勾选 //Constrain Lattice Vectors//。 
 +  * 发送脚本至 **Job Manager** 并运行。脚本应如此:[[https://docs.quantumatk.com/_downloads/cu-bulk.py|↓ cu-bulk.py]]。
  
 +在 8 核的计算机上使用 8 个 MPI 进程运行脚本大约需要 10 分钟,因此如果在笔记本电脑上运行,则可能需要几个小时。
 +
 +
 +<WRAP center tip 100%>
 +=== 提示 ===
 +ATK-PW 计算器会使用对称性来减少必须计算 k 点的数量,并且在减少的 k 点上并行化。为了获得最有效的并行,您应该在 Script Generator 中检查减少的数量,并使用尽可能接近这个数字除数的多个 MPI 进程。
 +</WRAP>
 +
 +您现在可以检查日志文件 ''Copper.log'' 和数据文件 ''Copper.hdf5'',验证我们在应力和力优化后得到铜的晶格常数 3.660650 Å,总能量为 -4968.92 eV 以及放大费米能级周围的区域得到以下的能带结构。
 +
 +{{ :atk:bandstructure-zoom-20191126.png?650 |}}
 +
 +
 +
 +
 +===== 其他分析模块 =====
  
 +在 QuantumATK 2017.0 中,并非所有的 QuantumATK 分析模块都支持 PW 计算器,因为它仍处于测试阶段。但是 **Script Generator** 了解这一事实,并将删除任何不支持的分析模块,并在生成实际脚本并将其发送到 Editor 或 Job Manager 时忽略它们。如果脚本是手动创建的,QuantumATK 会在遇到不支持平面波计算器的分析模块时给出错误消息。
 ===== 参考 ===== ===== 参考 =====
  
 +  * 英文原文:https://docs.quantumatk.com/tutorials/pw_intro/pw_intro.html
atk/quantumatk平面波dft计算引擎介绍.1574771874.txt.gz · 最后更改: 2019/11/26 20:37 由 xie.congwei

© 2014-2022 费米科技(京ICP备14023855号