本文进行光学性质的计算,以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)相关推荐

  1. TDDFT计算软件Octopus学习笔记(四):带隙优化方法

    密度泛函理论是一种基态的理论,然而能带结构和带隙属于物质的激发态特性.因此DFT的固有缺点就是会低估带隙能量.这一缺点可以通过不同的方式加以修正.本文介绍两种方法. (一) DFT+U方法 (以ZnO ...

  2. TDDFT计算软件Octopus学习笔记(三):能带结构(ZnO)

    本文以氧化锌ZnO为例,计算其能带结构.能带结构的计算需要两个步骤,第一步,进行基态(gs)计算,第二步,进行非占据态(unocc)计算. 基态计算的inp文件如下: CalculationMode ...

  3. 软件调试学习笔记(五)—— 软件断点内存断点

    软件调试学习笔记(五)-- 软件断点&内存断点 调试的本质 软件断点 软件断点的执行流程 分析INT 3执行流程 实验:处理软件断点 内存断点 内存断点的执行流程 实验:处理内存断点 调试的本 ...

  4. python函数是一段具有特定功能的语句组_Python学习笔记(五)函数和代码复用

    本文将为您描述Python学习笔记(五)函数和代码复用,具体完成步骤: 函数能提高应用的模块性,和代码的重复利用率.在很多高级语言中,都可以使用函数实现多种功能.在之前的学习中,相信你已经知道Pyth ...

  5. 【软考中级】软件设计师学习笔记

    软件设计师学习笔记 计算机系统知识 程序语言设计 数据结构 操作系统 软件工程基础知识 结构化开发方法 创建型设计模式 行为型设计模式 结构型设计模式: 算法设计与分析 数据库技术基础 网络与信息安全 ...

  6. Python学习笔记五:控制语句

    Python学习笔记五:控制语句 Pycharm 开发环境的下载安装配置_项目管理 控制语句 Pycharm 开发环境的使用 Pycharm 下载和安装 激活和选择不同UI 风格 创建项目和初始化配置 ...

  7. 吴恩达《机器学习》学习笔记五——逻辑回归

    吴恩达<机器学习>学习笔记五--逻辑回归 一. 分类(classification) 1.定义 2.阈值 二. 逻辑(logistic)回归假设函数 1.假设的表达式 2.假设表达式的意义 ...

  8. 《计算广告》学习笔记(二)

    <计算广告>学习笔记(二) 第三章:在线广告产品概述 3.1商业产品的设计原则 3.2广告系统的产品接口 第四章:合约广告 4.1广告位合约 4.2受众定向 4.2.1受众定向方法概览 4 ...

  9. JAVA学习笔记五---函数

    JAVA学习笔记五---函数 5.1 方法的学习 编写一个程序,求圆的周长和面积. package practice; /*** 编写一个程序,求圆的周长和面积.* @author iszhangyo ...

最新文章

  1. iOS项目预处理器环境变量设置
  2. 嵌入式LED驱动程序
  3. Oracle 原理:序列
  4. python内置数据结构字符串
  5. 诗与远方:无题(十八)
  6. 运行原理_JMeter运行原理
  7. ORACLE表空间使用量查询SQL
  8. 宾利为什么卖这么贵?
  9. mac 安装 PyAudio
  10. 误格式化硬盘数据怎么恢复好
  11. $.extend中探索深拷贝和浅拷贝
  12. 【FPGA入门教程】(七)FSM(Finite State Machine,有限状态机)设计
  13. 移动硬盘坏了数据可以恢复吗 移动硬盘坏了怎么导出数据
  14. 2022河南萌新联赛第(二)场:河南理工大学 补题题解(A、B、C、F、J、L)
  15. 普及!cmnet、cmiot还傻傻分不清楚?APN设置看看这一篇就够了!!
  16. tinyproxy王卡免流配置_大王卡tiny免流模式
  17. 新浪张俊林:大语言模型的涌现能力——现象与解释
  18. leetcode908
  19. 05 - Protege OWL API 的使用 - 本科毕设整理
  20. Python获取全部基金前十大持仓股并进行选股分析

热门文章

  1. java面试宝典下部
  2. AppStore技术支持网站
  3. 8位、16位、32位操作系统的区别
  4. 跟涛哥一起学嵌入式 第02集:工作还是考研?
  5. 手机python3.8.5软件_Python|Python v3.8.7 for Linux下载_网站源码_站长下载
  6. SPSS Modeler 图形可视化之散点图一(指南 第六章)
  7. web前端学习(三)——HTML 超链接、列表
  8. 计算机毕设源码网站基于SpringBoot的阳光线上交友系统
  9. 搭建本地OpenStack源
  10. 图形设计六字诀影叠置断悖质优漫动