[问题] 限制定义域的计算和作图

楼主: brains (不认识)   2014-11-11 07:16:36
各位好, 现在在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
作者: flarehunter (Range)   2014-11-11 12:26:00
楼主: brains (不认识)   2014-11-11 22:01:00
Thx, 我已先用简单方法解决了.

Links booklink

Contact Us: admin [ a t ] ucptt.com