kwant中如何沿Z方向施加电场
时间: 2024-04-12 20:31:39 浏览: 11
在 Kwant 中,要沿 z 方向施加电场,可以通过在系统的哈密顿量中添加一个与位置有关的势能项来实现。
假设我们希望在 z 方向上施加一个电场 E,可以使用以下代码来定义势能项:
```python
def onsite(site, E):
return site.pos[2] * E
```
这里的 `site` 是 Kwant 中的站点对象,`site.pos[2]` 是站点在 z 方向上的位置坐标。我们将该函数作为参数传递给系统的哈密顿量构造函数。
以下是一个示例代码,演示如何在 Kwant 中沿 z 方向施加电场:
```python
import kwant
# 定义系统参数
L = 10 # 系统长度
W = 5 # 系统宽度
# 定义系统
syst = kwant.Builder()
# 添加站点和连接
lat = kwant.lattice.square()
syst[(lat(x, y) for x in range(L) for y in range(W))] = 0 # 添加站点
syst[lat.neighbors()] = 1 # 添加连接
# 添加势能项
def onsite(site, E):
return site.pos[2] * E
syst[lat(0, 0)] = onsite # 在原点位置添加势能项
# 创建系统哈密顿量
hamiltonian = syst.hamiltonian_submatrix()
# 打印哈密顿量
print(hamiltonian)
```
在上面的代码中,我们使用 `lat(x, y)` 来定义站点的位置,`onsite` 函数根据站点在 z 方向上的位置坐标来定义势能项。通过调整 `E` 的值,可以控制沿 z 方向的电场强度。
希望对你有所帮助!