張曉燕
(華北科技學(xué)院理學(xué)院 北京市 101601)
近30年來,計算機(jī)已經(jīng)發(fā)展成為現(xiàn)代技術(shù)的基礎(chǔ)構(gòu)件,Python 以其簡潔和面向生態(tài)的設(shè)計理念得到廣泛認(rèn)同,形成了全球范圍最大的單一語言編程社區(qū)[1]。Python 能夠?qū)?shù)學(xué)、自然科學(xué)、工程基礎(chǔ)和專業(yè)知識用于解決復(fù)雜工程問題,能夠基于科學(xué)原理和科學(xué)方法設(shè)計實(shí)驗(yàn)、分析解釋數(shù)據(jù)、描繪圖像,學(xué)科與編程的結(jié)合成為了應(yīng)對科學(xué)挑戰(zhàn)的重要橋梁[2]。
近年來人工超材料表現(xiàn)出負(fù)折射、旋光性、逆多普勒效應(yīng)等獨(dú)特性質(zhì)[3],引起了學(xué)術(shù)界的積極關(guān)注。由于各向異性材料的介電常數(shù)和磁導(dǎo)率在各方向上是不同的,所以能實(shí)現(xiàn)更多電磁特性,具有更廣泛的應(yīng)用[4],如電磁隱身、波導(dǎo)、偏振轉(zhuǎn)換等。單色平面波在各向異性材料中的色散方程隨介電常數(shù)和磁導(dǎo)率的符號不同會有不同的形式,我們使用Python3.8 編程,調(diào)用Matplotlib 庫畫出不同參數(shù)對應(yīng)的三維色散曲面圖。某些情況下波矢量和坡印廷矢量會出現(xiàn)負(fù)折射現(xiàn)象,我們畫出了二維情形下的色散曲面和波矢量、坡印廷矢量的折射方向,使得折射性質(zhì)更形象的體現(xiàn)出來。
圖2:雙雙曲面型色散關(guān)系
表1:單雙色散曲面對應(yīng)參數(shù)符號
表2:雙雙色散曲面對應(yīng)參數(shù)符號
表3:橢球色散曲面對應(yīng)參數(shù)符號
圖3:橢球曲面型色散關(guān)系
然后調(diào)用Matplotlib 數(shù)據(jù)庫畫出三維曲面(圖1),涉及到的數(shù)值計算和公式表達(dá)用到了NumPy 庫,用meshgrid 函數(shù)使兩個坐標(biāo)軸上的點(diǎn)在平面上畫網(wǎng)格,從而形成三維曲面圖。使用ax.plot_surface 函數(shù)形成著色圖,用rstride 和cstride 參數(shù)控制網(wǎng)格線的數(shù)量,用cmap 參數(shù)配色。
圖1:單雙曲面型色散關(guān)系
Smith 等人把各向異性材料分為四種類型:Cutoff、Antcutoff、Never cutoff和Always cutoff。依據(jù)我們上面(9)(10)式的結(jié)論,我們將四種材料對應(yīng)的波矢量和坡印廷矢量的折射性質(zhì)列于表4 中,并依據(jù)(9)式計算結(jié)果為實(shí)數(shù)可以得出全反射條件。依據(jù)(9)(10)式,在45°入射角的情況下可以算出透射方波矢量和坡印廷矢量的折射角。我們通過調(diào)用Matplotlib 庫畫出了三種各向異性材料的色散曲線和波矢量和坡印廷矢量的折射情況(如表5)。其中二維色散曲線主要使用了Matplotlib 的plot 功能,帶箭頭的入射和折射光線主要應(yīng)用了annotate 函數(shù)。圖4 是表5 中εy、μz>0,μx<0 參數(shù)下的圖像對應(yīng)的主要程序代碼,其它圖像的程序與之類似,只是變換了annotate 函數(shù)中的起點(diǎn)和終點(diǎn)坐標(biāo)。
表4:各向異性材料波矢量和坡印廷矢量折射性質(zhì)及全反射條件
表5:各向異性材料色散關(guān)系及波矢量和坡印廷矢量的折射
圖4:Ant-cutoff 材料色散曲線及波矢量和坡印廷矢量折射圖的部分python 代碼(參數(shù)εy=0.7,μz=0.8,μx=-1.1)
現(xiàn)階段Python 已經(jīng)成為社會各個領(lǐng)域重要的編程語言,它擁有強(qiáng)大的第三方庫,使用時可以直接調(diào)用,從而能簡單、準(zhǔn)確的完成計算和繪圖工作。同時它免費(fèi)、開源,容易掌握,是一門終身受益的編程語言。上面我們用Python 畫出了各向異性材料中的三維色散關(guān)系,描繪了二維情形下TE 波在各向異性材料中的色散曲線、波矢量和坡印廷矢量的折射方向,使得各向異性材料中的特異現(xiàn)象更形象的表現(xiàn)出來,體現(xiàn)了Python 用于科學(xué)計算的優(yōu)越性。