各位好, 現在在x-y平面上面要計算一函數Epsk(x,y),
但是x,y只能定義在一個特殊的六角形裡面.
A_____B
/ \
F/ \C
\ /
E\_____/D
A=(-2*pi/3, 2*pi/sqrt(3))
B=( 2*pi/3, 2*pi/sqrt(3))
C=( 4*pi/3, 0 )
D=( 2*pi/3,-2*pi/sqrt(3))
E=(-2*pi/3,-2*pi/sqrt(3))
F=(-4*pi/3, 0 )
若一開始用np.linspace建構x, y向量, 其座標範圍涵蓋這個六角形,
請問如何用python特殊寫法限制(x,y)在此六角形裡面呢?
例如一維的情形可用 Z = [a for a in LIST if CONDITION]來構造Z.
但這裡二維的情況該如何寫呢?
==================================
#!/usr/bin/python3
import numpy as np
Lk = 100
t0 = 1
t1 = 1
mu = 0
x = np.linspace(-4.*np.pi/3.,4.*np.pi/3.,Lk)
y = np.linspace(-2.*np.pi/np.sqrt(3.),2.*np.pi/np.sqrt(3.),Lk)
# 限制x,y於六角形內?
Epsk = - 2.*t1*np.cos(kx/2.)
- 4.*t0*np.cos(kx/2.)*np.cos(ky*np.sqrt(3.)/2.) + mu