|
|
¡ï Сľ³æ: ½ð±Ò+0.5, ¸ø¸öºì°ü£¬Ð»Ð»»ØÌû
ÀÏʦ£¬ÇëÎÊÄܲ»ÄܰïÎÒ½â¾öÒ»ÏÂpythonµÄÎÊÌ⣿
¿¼ÂÇÒ»¸öÈý²ã¶Ô³ÆÆ½°å²¨µ¼£¬°ü²ã²ÄÁÏΪ¶þÑõ»¯¹è£¬Ð¾²ã²ÄÁÏΪ¹è¡£¼ÆË㲨µ¼TE»ùĤµÄÄ£³¡¿í¶È£¨E³¡µÄ°ë¸ßÈ«¿í£©Ë沨µ¼ºñ¶È±ä»¯µÄÇ÷ÊÆÇúÏß¡£
ÕâÊÇÎÒдµÄ£¬Ï£ÍûÖ¸µã¡£¡£¡£¡£¡£
from camfr import *
from matplotlib.pyplot import *
from numpy import *
set_lambda(1.55)
set_N(1)
set_polarisation(TE)
sio2=Material(1.45)
silicon=Material(3.46)
air=Material(1.0)
w2=arange(0.01,6,0.8)
transmission=[]
for tw in w2:
slab=Slab(sio2(4.995)+silicon(0.01)+sio2(4.995))
slab=Slab(sio2(5-w2/2)+silicon(w2)+sio2(5-w2/2)
x=arrange(0,tw,0.8)
field1=[slab.mode(0).field((coord(tx,0,0).E1() for tx in x]
field2=[slab.mode(0).field((coord(tx,0,0)).E1()*(slab.n(Coord(tx,0,0)))**2 for tx in x]
index=[slab.n((coord(tx,0,0)) for tx in x]
M=max(field)
y=M/2
[m,n]=find(abs(M-y)<0.00001)
Q=m-n
plot(x,real(Q))
plot(x,absolute(index))
show() |
|