antd 给input设置值_LDA+U中U值的计算方法

165a8a7901e0a7135034c03a63e836f8.png

购买请加微信:田洪镇(微信号:buaathz)

PWmat宣传册以及购买须知

背景介绍

DFT(LDA和GGA)对于一般体系的计算结果是令人满意的,尤其是能带结构的计算,这些一般体系主要是金属体系或者是只包含前三周期元素的体系。但是,对于包含d电子或者f电子的体系,特别是过渡金属氧化物或者氮化物,DFT直接计算的结果往往是错误的,所以在金属/绝缘体的判定上常常出错。LDA和GGA往往会低估一些绝缘体或者半导体的带隙,甚至最高占据轨道(VBM或者HOMO)在Fermi面之上,变成金属。对于包含d或者f电子的体系,VBM或者HOMO往往是来自这些金属原子的d电子或者f电子,而DFT无法直接处理d轨道或者f轨道的强关联相互作用,目前广泛采用LDA+U的方法来处理d电子或者f电子的这种强关联相互作用【1】。

LDA+U核心思想是:首先将研究体系的轨道分隔成两个子体系(subsystem),其中一部分是一般的DFT算法(如LSDA,GGA)等可以比 较准确描述的体系,另外是定域在原子周围的轨道如d或者f轨道,这些轨道在标准的DFT计算下不能获得正确的能量与占据数之间的关系(如DFT总是认为分 数占据是能量最小的,而不是整数占据);对于d或者f轨道,能带模型采用Hubbard模型,而其他轨道仍然是按照Kohn-Sham方程求解;d以及f 轨道电子之间的关联能采用一个和轨道占据以及自旋相关的有效U表示;整体计算的时候需要将原来DFT计算过程中已经包含的部分关联能扣除,这部分一般叫 Double Counting part,并且用一个新的U来表示,最终的结果是在DFT计算的基础上新增加一个和d或者f轨道直接相关的分裂势的微扰项,这部分能量可以采用一般微扰理 论计算【2】。

方法介绍

U值计算目前仍然是一个研究的难点和热点,最近PWmat实现了一种用线性响应理论计算U值的方法,下面我们将对这种方法进行详细介绍:

首先U值表示定域轨道电子与电子之间的相互作用,其操作算符如下:

51dc0af8a47aed6ae2ede213994c9e98.png


其中,ak, ai+表示湮灭和产生算符,i,j,k,l是原子轨道基组

0e8282c35b6d4be766991ea5340bc5f3.png

其中V仅仅表示数字,需要注意的是,上式中索引指数i,j,k,l和变量r,r`,需要考虑存在自旋指数σ。

进一步,我们假设φi是相同角动量L内的2L+1原子轨道,对于球谐函数YL,i(降低自旋指数),然后考虑对称性,V的形式可以简化为:

a6213786e41c449cb204b854bc7d8a94.png

其中ah是Klein-Gordon系数,形式如下:

04e60ee1319ad7715cb5684b2a8e43d5.png


只有偶次的Fh不为零,例如F0,F2,F4和F6(f轨道)。人们习惯上假设J=(F2+F4)/14=0(d轨道),定义U=F0。

现在,如果我们插入单个Slater行列式波函数来计算Hint的期望值,并减去重复项,然后整理之后得到:

df4ee450e46353d2f000006a3fabf762.png

I遍历不同的原子,σ是自旋指数,nIσ是一个矩阵,形式如下:

c2da68c31aa695337e8b1f35cb03a62d.png

其中,ψqσ是Kohn-Sham波函数,o(q,σ)是它的占据数。
到目前为止,我们应该如何计算U值呢?我们可以通过下式计算:

d9064cf30235ac7cfba520d6c7f0e06b.png

但是这不包括周围环境对该原子的屏蔽左右,因此计算出来的U值偏大。另外人们也可以通过经验方法估算U值,得到任何我们想要的值。这里我们介绍一种用Koopman`s条件来得到U值【3】。作为原子轨道占据数的函数,在电子数N到N+1的变化时,总能应该是直线。所以我们可以调整U的值,直到最后的总能变成直线。

0e08401db102685218507227126178d9.png

实际上,很难计算所有φi

的占据数。事实证明,进行线性响应计算更容易。另外,决定哪个轨道占据也很困难,因此在线性响应计算中,我们将从所有轨道上获取电荷:

e9979a144b6a73ffb426b07116ed283d.png


我们具有自旋σ的总和,所有最后,我们只有一个U值,而不是两个U,每个自旋一个。我们将通过线性响应计算来确定响应电荷来自哪个轨道(或者多个轨道)。

至此,我们得到一个新的Hamiltonian(线性能量项下的线性响应):

644c0c3d9315fb17e7ab56481cf7ffb5.png


其中,αI仅仅是原子I上的一个数值。
在计算中,可以设置U=0,(从LDA开始),即:

6379e432a248a46b680507371eda7e19.png

对原子I设置一个最终的αI,其他原子的αI设置为零,然后进行SCF计算,现在就有E(αI),移除最后一项,还可以得到ELDA(αI)和ELDA(nI),最后得到U的形式为:

36dfe50728cdc9d58f38e4f1093ec612.png


该公式可以理解为,当我们添加额外LDA+U项EU时,该项的二阶导数将抵消LDA项的二阶导数,从而使得最终结果成为nI的线性函数(Koopmans`s 条件),即

c380dbfb405e44d2fe728cffa8ac93f2.png


最终U的形式为:

8bd20a8cc102bb1d6db375df02b96da7.png


事实证明,由于上述过程中nI的变化,总电荷是守恒的(实际上并未在原子I上增加一个额外的电荷),因此存在一个人为引入的项

a9de89b1e0e3c2f250ac9fd6d510a47a.png

。该项对应于SCF计算前αI下nI的变化(无库伦相互作用),必须从上述U的计算公式中减掉,所有我们可以得到:

c42675f74ddcb805d42824c47b023cb9.png


这里,偏导数应该理解为只有该原子具有nI的变化,其他原子没有变化,所以有:

79ac8f9ed63860710c8f22e65dd83d7f.png

其中,当我们将一个αI放在一个原子上,而将其他原子的αI设为零,ΔαI和ΔnI是从上述计算中得到的数值。但是其他原子上的ΔnI不为零。

为了计算

0fa7efc97dc702c4618e4b7de8d66c23.png

,我们首先计算:

0b6fc4f7f5a426e92e268db068027cb2.png

然后得到:

cbff9965a942504f312b1bbc63ab93e1.png

Eq.(1)

注意,对于Koopmans条件,这实际上是在假设,当存在一个ΔnI时,所有其他ΔnI应该为零。实际上,也可以避免这种情况,也就是说,当存在一个ΔnI(有一个外部ΔαI和变化引起)时,在SCF响应中,其他原子的ΔnI时,所有其他可以是任意值。此时,U可以被定义为:

504fac55dba4920b474cd0271d415c4a.png

Eq.(2)

实例演示

2ddbb1ba810bfbd9b9878adf1fb8277e.png

c40842ed981829a2a3b64e6d1f16bc8e.png

143fa6114c974dfacdd3b6f6daee7158.png

4e6cc880bba6f627a13dfd55ae9373fb.png

8db66e210fa95e5be4b71edbde59b8ad.png

595424db42e3dd9ca79647de4f4c0510.png

总结

1.计算给定系统的U值的核心思想是U值取决于局域环境(与其他轨道的杂化以及U的局域屏蔽)。

2.如果存在几种不同类型的原子,所有原子都需要不同的U,则需要在这些不同的原子上添加LDAU_lambda(αI)。 使用Eq.(2),可以直接计算,这些U可以一次计算一个。 使用Eq.(1),必须使用对称性等来获得所有具有U的原子的χ矩阵,然后将其求逆。 注意,χ矩阵不包含不需要加U的原子。

3.严格来说,也可以得到具有自旋依赖性的U,例如,在etot.input中设置:“ LDAU_PSP1 = 2,U1,U2”,添加扰动,请使用LDAU_lambda_1和lambad_2(在atom.config的LADU_lambda部分中)。

4.在某些情况下,可能难以决定要使用哪个系统来计算U。例如,在水分解催化中,是使用裸露的过渡金属(TM),还是使用连接了OH或O的过渡金属系统。 人们可以为这些系统计算不同的U,但是使用不同的U计算其相对能量将很危险(可能是错误的)。 因此,要么使用平均值U进行以后的计算,要么使用裸露的U(也许)。

参考文献:

【1】http://blog.sina.com.cn/s/blog_553461e901013xx1.html

【2】http://blog.sina.com.cn/s/blog_6a8a6ba40100pvfb.html

【3】M. Cococcioni, S. de Gironcoli, “Linear response approach to the calculation of the effective interaction Parameters in the LDA+U method”, Phys. Rev. B, 71, 035105 (2005).

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用 Ant Design Vue 的表格树组件,您需要先安装和导入 Table 和 TreeSelect 组件。 在表格,您需要使用 `customExpandIcon` 属性来自定义展开/折叠图标,并使用 `customRow` 属性来自定义行的渲染。 以下是一个示例代码: ```vue <template> <a-table :columns="columns" :data-source="data" :custom-row="customRow" :custom-expand-icon="customExpandIcon"> <template slot="name" slot-scope="{ record }"> {{ record.name }} </template> </a-table> </template> <script> import { Table, TreeSelect } from 'ant-design-vue'; export default { components: { Table, TreeSelect, }, data() { return { columns: [ { title: 'Name', dataIndex: 'name', key: 'name', scopedSlots: { customRender: 'name' }, }, { title: 'Age', dataIndex: 'age', key: 'age', }, { title: 'Address', dataIndex: 'address', key: 'address', }, ], data: [ { key: '1', name: 'Parent 1', age: 30, address: 'New York No. 1 Lake Park', children: [ { key: '1-1', name: 'Child 1-1', age: 12, address: 'New York No. 2 Lake Park', }, { key: '1-2', name: 'Child 1-2', age: 13, address: 'New York No. 3 Lake Park', }, ], }, { key: '2', name: 'Parent 2', age: 32, address: 'London No. 1 Lake Park', children: [ { key: '2-1', name: 'Child 2-1', age: 11, address: 'London No. 2 Lake Park', }, { key: '2-2', name: 'Child 2-2', age: 16, address: 'London No. 3 Lake Park', }, ], }, ], }; }, methods: { customExpandIcon({ record, onExpand }) { if (record.children) { return ( <a onClick={onExpand}> {record._expanded ? <a-icon type="minus-square" /> : <a-icon type="plus-square" />} </a> ); } return null; }, customRow(record, index, indent, expanded) { return { class: `custom-row-${record.key}`, on: { click: () => { console.log(record); }, }, }; }, }, }; </script> ``` 在上面的代码,您可以看到我们自定义了展开/折叠图标和行的渲染,以及使用了插槽 `scopedSlots` 来渲染名称列。您还可以根据您的需求来添加其他自定义的组件或插槽。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值