TDDFT计算软件Octopus学习笔记(五):介电函数和吸收谱(ZnO)
本文进行光学性质的计算,以ZnO的介电函数为例。Octopus以时间依赖密度泛函理论(TDDFT)为理论基础,对材料施加一定的外界扰动,通过一定时间的传播,搜集相应的响应数据,进而得出各种光学性质。
整个计算同样是分为两步,首先计算基态(gs),再计算时间传播(td)。
基态计算的inp文件如下:
CalculationMode = gs
FromScratch = yes
PeriodicDimensions = 3
ParKPoints = auto
BoxShape = parallelepiped
ExperimentalFeatures=yes
PseudopotentialSet = pseudodojo_pbe # 使用pbe赝势%Spacing # 单位 Bohr0.20 | 0.20 | 0.20
%%LatticeVectors # 相应晶格参数可从 https://materialsproject.org/ 网站上得到1.0 | 0.0 | 0.0-0.5 | sqrt(3)/2 | 0.00.0 | 0.0 | 1.0
%a = 3.289*angstrom
b = 5.307*angstrom
%LatticeParametersa | a | b
%%ReducedCoordinates"O" | 1/3 | 2/3 | 0.379214"O" | 2/3 | 1/3 | 0.879214"Zn" | 1/3 | 2/3 | 0.000000"Zn" | 2/3 | 1/3 | 0.500000
%%KPointsGrid8 | 8 | 6
%
KPointsUseSymmetries = yes
%SymmetryBreakDir1 | 0 | 0
%DFTULevel = dft_u_empirical # 使用DFT+u 来扩展带隙
%Species"Zn" | species_pseudo | hubbard_l | 2 | hubbard_u | 12.8*eV"O" | species_pseudo | hubbard_l | 1 | hubbard_u | 5.29*eV
%# DFT+u 理论参数取自文献: Luis A. Agapito, Stefano Curtarolo, and Marco Buongiorno Nardelli.
#Reformulation of DFT+u as a pseudohybrid hubbard density functional
#for accelerated materials discovery. Phys. Rev. X, 5:011006, Jan 2015.
然后进行时间传播的计算
CalculationMode = td # td计算
FromScratch = yes
PeriodicDimensions = 3
ParKPoints = auto #自动分配k点以进行并行计算
ExperimentalFeatures=yes #使用实验特性
PseudopotentialSet = pseudodojo_pbe #使用pbe赝势
BoxShape = parallelepiped #模拟盒形状为平行正六面体%Spacing #单位为Bohr0.2 | 0.2 | 0.2
%%LatticeVectors1.0 | 0.0 | 0.0-0.5 | sqrt(3)/2 | 0.00.0 | 0.0 | 1.0
%a = 3.289*angstrom
b = 5.307*angstrom
%LatticeParametersa | a | b
%
%ReducedCoordinates #约化坐标"O" | 1/3 | 2/3 | 0.379214"O" | 2/3 | 1/3 | 0.879214"Zn" | 1/3 | 2/3 | 0.000000"Zn" | 2/3 | 1/3 | 0.500000
%
%KPointsGrid8 | 8 | 6
%
KPointsUseSymmetries = yes #k点的设置,对称性和对称性破坏方向均需要与gs设置相同
%SymmetryBreakDir1 | 0 | 0
%DFTULevel = dft_u_empirical #理论等级修正为DFT+U
%Species"Zn" | species_pseudo | hubbard_l | 2 | hubbard_u | 12.8*eV"O" | species_pseudo | hubbard_l | 1 | hubbard_u | 5.29*eV
%%GaugeVectorField #施加外界扰动电磁场,以速率规范(velocity gauge)的形式给出
1|0|0 #单位为Hartree
%TDPropagator = aetrs #传播子算法
TDTimeStep = 0.02 #时间步长,单位是 hbar/Hartree, 选择方法在“注1”中
TDPropagationTime = 200 #总传播时间TDExponentialMethod = lanczos
TDExpOrder = 16PropagationSpectrumDampMode = polynomial
PropagationSpectrumMaxEnergy = 5*eV
计算结束后,相应信息储存在 ./td.general 文件夹下的 gauge_field 文件中。 Octopus自带小程序来处理这个文件,只需要在含有inp文件的目录下(即 ./ 目录)运行 oct-dielectric-function 命令,小程序自动运行,就会在 ./td.general 文件夹中生成 “dielectric_function”, “inverse_dielectric_function” 和 “chi” 这3个文件。 其中 “dielectric_function” 文件即包含有介电函数的信息。其文件内部结构如下:
# energy Re x Im x Re y Im y Re z Im z
共7列,分别是:能量,介电函数在x方向的实部,虚部,在y方向实部,虚部,z方向实部,虚部。
使用画图小软件gnuplot,简单画图,即可看x方向虚部。
gnuplot
plot "dielectric_function" u 1:3 w l
还可以通过介电函数实部和虚部来计算吸收谱:
注1:时间步长的确定
时间步长的选择十分重要,太大的步长会导致计算发散,太小的步长又会浪费计算时间。合理的选择思路如下:在不施加外界微扰的情况下进行时间传播计算,传播两百步左右,由于未施加扰动,系统始终处于基态,所以在第一步的总能量和第二百步的总能量应该相同,但是实际计算中,如果时间步长太大,起点和终点的总能量会略有不同,更大的时间步长甚至会导致总能量发散,出现NaN字样,即 Not A Number。但是,起点和终点的总能量调节至完全相同需要很小的步长,会浪费计算时间,所以,选择一个好的步长是十分重要的。
TDDFT计算软件Octopus学习笔记(五):介电函数和吸收谱(ZnO)相关推荐
- TDDFT计算软件Octopus学习笔记(四):带隙优化方法
密度泛函理论是一种基态的理论,然而能带结构和带隙属于物质的激发态特性.因此DFT的固有缺点就是会低估带隙能量.这一缺点可以通过不同的方式加以修正.本文介绍两种方法. (一) DFT+U方法 (以ZnO ...
- TDDFT计算软件Octopus学习笔记(三):能带结构(ZnO)
本文以氧化锌ZnO为例,计算其能带结构.能带结构的计算需要两个步骤,第一步,进行基态(gs)计算,第二步,进行非占据态(unocc)计算. 基态计算的inp文件如下: CalculationMode ...
- 软件调试学习笔记(五)—— 软件断点内存断点
软件调试学习笔记(五)-- 软件断点&内存断点 调试的本质 软件断点 软件断点的执行流程 分析INT 3执行流程 实验:处理软件断点 内存断点 内存断点的执行流程 实验:处理内存断点 调试的本 ...
- python函数是一段具有特定功能的语句组_Python学习笔记(五)函数和代码复用
本文将为您描述Python学习笔记(五)函数和代码复用,具体完成步骤: 函数能提高应用的模块性,和代码的重复利用率.在很多高级语言中,都可以使用函数实现多种功能.在之前的学习中,相信你已经知道Pyth ...
- 【软考中级】软件设计师学习笔记
软件设计师学习笔记 计算机系统知识 程序语言设计 数据结构 操作系统 软件工程基础知识 结构化开发方法 创建型设计模式 行为型设计模式 结构型设计模式: 算法设计与分析 数据库技术基础 网络与信息安全 ...
- Python学习笔记五:控制语句
Python学习笔记五:控制语句 Pycharm 开发环境的下载安装配置_项目管理 控制语句 Pycharm 开发环境的使用 Pycharm 下载和安装 激活和选择不同UI 风格 创建项目和初始化配置 ...
- 吴恩达《机器学习》学习笔记五——逻辑回归
吴恩达<机器学习>学习笔记五--逻辑回归 一. 分类(classification) 1.定义 2.阈值 二. 逻辑(logistic)回归假设函数 1.假设的表达式 2.假设表达式的意义 ...
- 《计算广告》学习笔记(二)
<计算广告>学习笔记(二) 第三章:在线广告产品概述 3.1商业产品的设计原则 3.2广告系统的产品接口 第四章:合约广告 4.1广告位合约 4.2受众定向 4.2.1受众定向方法概览 4 ...
- JAVA学习笔记五---函数
JAVA学习笔记五---函数 5.1 方法的学习 编写一个程序,求圆的周长和面积. package practice; /*** 编写一个程序,求圆的周长和面积.* @author iszhangyo ...
最新文章
- iOS项目预处理器环境变量设置
- 嵌入式LED驱动程序
- Oracle 原理:序列
- python内置数据结构字符串
- 诗与远方:无题(十八)
- 运行原理_JMeter运行原理
- ORACLE表空间使用量查询SQL
- 宾利为什么卖这么贵?
- mac 安装 PyAudio
- 误格式化硬盘数据怎么恢复好
- $.extend中探索深拷贝和浅拷贝
- 【FPGA入门教程】(七)FSM(Finite State Machine,有限状态机)设计
- 移动硬盘坏了数据可以恢复吗 移动硬盘坏了怎么导出数据
- 2022河南萌新联赛第(二)场:河南理工大学 补题题解(A、B、C、F、J、L)
- 普及!cmnet、cmiot还傻傻分不清楚?APN设置看看这一篇就够了!!
- tinyproxy王卡免流配置_大王卡tiny免流模式
- 新浪张俊林:大语言模型的涌现能力——现象与解释
- leetcode908
- 05 - Protege OWL API 的使用 - 本科毕设整理
- Python获取全部基金前十大持仓股并进行选股分析