Anti Reflection 初始code碼模擬如下,
可定義成 fuction 型式 作為之後針對變數計算趨勢
import numpy as np
import math
#### 入射角及波長
qi=0
qi=qi/57.3
wi=1.3
wl=1.3
#### 層數
n=1
#### 薄膜厚度與光學厚度
ni=1.5
nf=2.4
subindex=3.5
index=[ni,nf,subindex]
ot=[0,wl/(4*nf),0]
k=len(ot)
sineff=[index[0]*np.sin(qi)]
coseff=[]
rs=[]
Ph=[]
bs=[]
for ii in range(1,n+2):
sineff.append(index[0]/index[ii]*np.sin(qi))
for jj in range(0,n+2 ):
coseff.append((1-sineff[jj]**2)**0.5)
rs.append(index[jj]*coseff[jj])
Ph.append((2*math.pi/wi)*index[jj]*ot[jj]*coseff[jj])
bs.append(np.array([
[np.cos(Ph[jj]),complex(0,np.sin(Ph[jj])/rs[jj])],
[complex(0,np.sin(Ph[jj])*rs[jj]),np.cos(Ph[jj])]
]))
for ii in range(1,n+1):
if ii==1:
bseff=bs[1]
else:
bseff=bseff.dot(bs[ii])
yss=np.array([1,rs[-1]])
yb =np.array([1,0])
yc =np.array([0,1])
Fms=bseff.dot(yss)
B=yb.dot(Fms)
C=yc.dot(Fms)
Y=C/B
Rs=abs(((rs[0]-Y)/(rs[0]+Y))**2)
dB=10*math.log(Rs,10)
Ts=(4*rs[0]*(rs[-1]).real/((rs[0]*B+C)*np.conj(rs[0]*B+C))).real
print(Fms)
print(B)
print(C)
print(Rs)
print(dB)
print(Ts)
print(Ts+Rs)
留言列表