24小时热门版块排行榜    

CyRhmU.jpeg
查看: 2045  |  回复: 26
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

fo3mt2

金虫 (小有名气)


[交流] 电导率计算求助

大家好,

我想向大家请教一个用kubo方法计算电导率的问题。我是用下面的这个公式计算电导率的。

σ_xx=e^2 * ℏ /4π  1/A ∑_ktr[v_x * (g^r-g^a ) * v_x * (g^r-g^a )]
其中,v_x是速度算符(dh/dkx);g^r和g^a是延迟和超前格林函数:g^r=1/(e_f-h+i*gamma); g^a=1/(e_f-h+i*gamma)。

假设我的hamiltonian是一个2乘2的矩阵,其对应的本征矢也是两个分别为2乘1的向量(|ϕ_n>)。对于迹部分的计算我想用下面的两种方式计算。

第一种计算方式,设o= v_x * (g^r-g^a ) * v_x * (g^r-g^a ),tr[v_x * (g^r-g^a ) * v_x * (g^r-g^a )]=tr(o)=<ϕ_11|o_11|ϕ_11>+<ϕ_21|o_22|ϕ_21>,其中o_11和o_22分别是这个2乘2矩阵的第1行第1列元素和第2行第2列元素。|ϕ_11>和|ϕ_21>分别是本征矢的第1行第1列元素和第2行第1列元素。

第二种计算方式,是把格林函数中的hamiltonian矩阵转化为hamiltonian的本征值。
σ_xx=e^2 * ℏ /4π*1/a * ∑_ktr[v_x * (g^r-g^a ) * v_x * (g^r-g^a )]=e^2 * ℏ /4π*1/a * ∑_k∑_n<ϕ_n|[v_x * (g^r-g^a ) * v_x * (g^r-g^a )]|ϕ_n>=e^2 * ℏ /4π*1/a * ∑_k∑_n∑_m<ϕ_n|[v_x * (g^r-g^a ) *|ϕ_m><ϕ_m|* v_x * (g^r-g^a )]|ϕ_n>=e^2 * ℏ /4π*1/a * ∑_k∑_n,m<ϕ_n|v_x|ϕ_m> * (g^r_m-g^a_m) * <ϕ_m|v_x|ϕ_n> * (g^r_n-g^a_n)。
其中,g^r_n=1/(e_f-e_n+i*gamma); g^a_n=1/(e_f-e_n+i*gamma);e_n是hamiltonian的本征值。也就是说这里把格林函数由一个矩阵转化成一个数。而迹的部分也就变成列下面的计算组合。
∑_n,m<ϕ_n|v_x|ϕ_m> * (g^r_m-g^a_m) * <ϕ_m|v_x|ϕ_n> * (g^r_n-g^a_n)=<ϕ_1|v_x|ϕ_1> * (g^r_1-g^a_1) * <ϕ_1|v_x|ϕ_1> * (g^r_1-g^a_1)+<ϕ_1|v_x|ϕ_2> * (g^r_2-g^a_2) * <ϕ_2|v_x|ϕ_1> * (g^r_1-g^a_1)+<ϕ_1|v_x|ϕ_1> * (g^r_1-g^a_1) * <ϕ_1|v_x|ϕ_2> * (g^r_2-g^a_2)+<ϕ_2|v_x|ϕ_2> * (g^r_2-g^a_2) * <ϕ_2|v_x|ϕ_2> * (g^r_2-g^a_2)
这里的|ϕ_1>和|ϕ_2>分别是hamiltonian的第1个和第2个本征矢,g^r_1=1/(e_f-e_1+i*gamma)和g^r_2=1/(e_f-e_2+i*gamma);而e_1和e_2分别是hamiltonian的第1个和第2个本征值。

1. 请问这两种方法是否都正确呢?是否彼此对等呢?我是指最终计算出的结果是否一样呢?如果不正确,要如何修改呢?

2. 这两种方法,我都需要在对k点求和的时候乘以dk_x和dk_y。假设我的第一布里渊区被划分成500乘500的k网格,dk_x=b1/499;dk_x=b2/499,其中b1和b2分别是倒格矢空间中元胞的基矢。因为每个基矢都被这500个k点分割成了499份。

我的这种理解是否正确呢?

3. 因为1/A ∫(dk_x * dk_y)/(4π^2 )=1/N;其中a和n分别是实空间中晶胞的面积和倒格矢空间中的k点总数(N=500*500)。这样一来,帖子一开始的电导率计算公式也可以写成下面的形式。
σ_xx=e^2 * ℏ /4π*1/N * ∑_ktr[v_x (g^r-g^a ) v_x (g^r-g^a )]或者σ_xx=e^2 * ℏ /4π*1/N * ∑_k∑_(n,m)⟨ϕ_n│v_x│ϕ_m ⟩ * ⟨ϕ_m│v_x│ϕ_n ⟩ * (g^r_n -g^a_n ) * (g^r_m - g^a_m)

我的这种理解是否正确呢?

4. 因为周期性的因素,倒格矢空间中每一行的第1个和第500个k格点上的hamiltonian应该是完全相同的。这样一来,我在计算电导率加和的时候,是不是只需要把从第1个k点到第499个k点上的电导率相加就行了,而不需要再加入第500个k点上的电导率。

我的这种理解是否正确呢?

我在用fortran写了两个电导率计算的程序。一个是基于第1种计算方式,另一个是基于第2种计算方式。可是都出了问题。我想可能错误出在上面的4点问题上,能否请这方面的专家给些建议和答案呢?如果可以,我可以把我的代码发给你们看下的。多谢啦。
回复此楼

» 猜你喜欢

» 抢金币啦!回帖就可以得到:

查看全部散金贴

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

danghaha

新虫 (文坛精英)



fo3mt2(金币+1): 谢谢参与
3楼2020-03-09 17:55:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 27 个回答

霸气侧漏的鱼

新虫 (小有名气)



fo3mt2(金币+1): 谢谢参与
电阻率不是直接测出的吗
13楼2020-03-18 10:49:25
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

tsglss

铁杆木虫 (著名写手)



fo3mt2(金币+1): 谢谢参与
电导率是手动算吗?

发自小木虫Android客户端
14楼2020-04-11 17:25:26
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
简单回复
tzynew4楼
2020-03-09 17:56   回复  
fo3mt2(金币+1): 谢谢参与
8 发自小木虫Android客户端
danghaha10楼
2020-03-12 19:54   回复  
普通表情 高级回复(可上传附件)
信息提示
请填处理意见