格林函数计算的总态密度在能量积分上的确定性
创作时间:
作者:
@小白创作中心
格林函数计算的总态密度在能量积分上的确定性
引用
1
来源
1.
https://www.guanjihuan.com/archives/45681
在凝聚态物理和材料科学中,态密度(DOS)是一个重要的物理量,它描述了在给定能量范围内可占据的量子态数量。然而,在实际计算中,由于数值稳定性和物理效应的考虑,往往需要在能量上引入虚部。本文通过具体的代码示例和运行结果,验证了格林函数计算的总态密度在能量积分上的确定性,并讨论了虚部大小对计算结果的影响。
在真实体系中,态密度(DOS)的严格数学定义是一个无展宽的分布(如 δ 函数求和),但在实际计算或实验中,由于物理效应和测量限制,总会存在一定的能量展宽。数值计算中引入的虚部 η 正是为了模拟这些展宽效应,同时也可以确保数值计算的稳定性。
在引入能量虚部后,态密度在能量上存在一定的展宽。展宽越宽,态密度的峰值越低;展宽越窄,态密度的峰值越高。这导致了计算的结果除了归一化后的分布具有一定的意义,而具体数值并不代表任何含义。本篇主要做数值验证,并指出:虽然在某个能量或者某个空间位置的具体态密度数值没有意义,但是其在能量维度上的积分是具有确定性的,即为体系的总状态数。
同样以方格子为例,代码为:
"""
This code is supported by the website: https://www.guanjihuan.com
The newest version of this code is on the web page: https://www.guanjihuan.com/archives/45681
"""
import numpy as np
def hamiltonian(width=2, length=2): # 方格子哈密顿量
h = np.zeros((width*length, width*length))
# y方向的跃迁
for x in range(length):
for y in range(width-1):
h[x*width+y, x*width+y+1] = 1
h[x*width+y+1, x*width+y] = 1
# x方向的跃迁
for x in range(length-1):
for y in range(width):
h[x*width+y, (x+1)*width+y] = 1
h[(x+1)*width+y, x*width+y] = 1
return h
def total_DOS_for_Fermi_energy_array(Fermi_energy_array, h, broadening):
dim_energy = Fermi_energy_array.shape[0]
dim = h.shape[0]
total_DOS_array = np.zeros((dim_energy))
i0 = 0
for Fermi_energy in Fermi_energy_array:
green = np.linalg.inv((Fermi_energy+broadening*1j)*np.eye(dim)-h)
total_DOS = -np.trace(np.imag(green))/np.pi # 通过格林函数求得总态密度
total_DOS_array[i0] = total_DOS
i0 += 1
return total_DOS_array
def main():
plot_precision = 0.0001 # 画图的精度/积分的精度
Fermi_energy_array = np.arange(-5, 5, plot_precision)
h = hamiltonian()
for broadening in [0.5, 0.1, 0.01, 0.001, 0.0001]:
total_DOS_array = total_DOS_for_Fermi_energy_array(Fermi_energy_array, h, broadening)
sum_up = np.sum(total_DOS_array)*plot_precision
print(f'Broadening为{broadening}时的积分结果:{sum_up}')
if __name__ == '__main__':
main()
运行结果(plot_precision = 0.0001 # 画图的精度/积分的精度):
Broadening为0.5时的积分结果:3.722565274835012
Broadening为0.1时的积分结果:3.944231849213829
Broadening为0.01时的积分结果:3.9944220100670997
Broadening为0.001时的积分结果:3.9994421998396357
Broadening为0.0001时的积分结果:4.014911712780062
运行结果(plot_precision = 0.001 # 画图的精度/积分的精度):
Broadening为0.5时的积分结果:3.72256527200912
Broadening为0.1时的积分结果:3.9442318486167713
Broadening为0.01时的积分结果:3.994422009997701
Broadening为0.001时的积分结果:4.014409692612366
Broadening为0.0001时的积分结果:13.148488227594502
运行结果(plot_precision = 0.01 # 画图的精度/积分的精度):
Broadening为0.5时的积分结果:3.7225649903254823
Broadening为0.1时的积分结果:3.944231789945488
Broadening为0.01时的积分结果:4.009389496911136
Broadening为0.001时的积分结果:13.147986206850222
Broadening为0.0001时的积分结果:127.36578383963219
结论:
- 格林函数计算的总态密度在能量积分上具有确定性,为体系的总状态数,这里状态数为 4。
- 当 broadening 太小时,这时候需要比较高的积分精度才可以算到准确的数值。
- 当 broadening 太大时,即使有比较高的积分精度也算不到准确的数值,这是因为不同能级的展宽之间出现交叠,具体参考:用格林函数计算态密度时费米能中虚部的取值。
- 在实际计算中,可以把这个总态密度在能量上积分结果作为判断能量虚部 η 大小选取的合理性。
热门推荐
意外怀孕了吃叶酸还来得及吗
学西点摆盘技巧,早餐新风尚,摆盘美感与制作详解(附图片教程)
公司发行债券的程序和注意事项
碧螺春怎样分辨好坏
如何进行ELISA的优化?
命理八字流年运势预测:准确性揭秘
氟替美维吸入粉雾剂为什么不建议长期使用
离职信中的离职原因如何表述最合适:建议与实践
屏风:家居空间的艺术分隔
急性咽喉炎有哪些症状?这些注意事项请收好
冻梨的储存技巧与品质保持
嗓子有痰咳不出来怎么办
二手房购买全攻略:从选购到验房的九大要点
如何确诊易栓症
40岁+的“姐姐”不要再扮嫩了,这样穿减龄且大气,谁穿谁爱
如何将 Microsoft Word 文档保存为 PDF
痛风患者可以吃橘子吗?专家解读低嘌呤饮食指南
笔记本与台式机优缺点全解析:性能与可升级性的终极对决
外卖塑料真相①|每年产生168万吨塑料垃圾,和每个人都有关
八卦的基本含义及其在现代生活中的应用
再生铜行业深度解析:政策驱动下的市场现状与未来趋势
球如其名的仙人球属狂风丸Echinopsis ferox
震撼!苏格兰与希腊对决,谁将成为欧国联的新王?
如何在租房过程中合理管理费用?这种管理需要注意哪些事项?
一觉醒来脚后跟疼是怎么回事?
春季,大鱼大肉一边站,这菜要每周吃,营养全面,大人孩子都爱吃
自带“青霉素”的菜,医生建议:春天经常吃,助力增强免疫少生病
2024南宁青秀山风景区开放时间及游玩指南
苏州眼科医生排名解析:专业案例与医院医生盘点报告(2025版)
宠物行业市场分析的主要步骤是什么?