介紹
沃拉斯頓棱鏡偏振器(qì)包含兩個(gè)由單軸晶體(tǐ)構成的直角棱鏡,如方解石,它經常用于沃拉斯頓棱鏡中。兩塊單軸晶體(tǐ)是定向的,使得(de)晶軸互相垂直。如下圖所示的幾何結構,水(shuǐ)平偏振光在第一個(gè)區(qū)域中以非尋常折射率(ne)傳播,折射到第二個(gè)區(qū)域中,以尋常折射率(no)傳播。垂直偏振光經過相反的折射,兩個(gè)偏振态就這樣分開(kāi)了。本文介紹了一個(gè)腳本,即wollastonCreator.frs,根據輸入到基本對話(huà)框中的用戶技(jì)術(shù)參數(shù)來(lái)創建一個(gè)沃拉斯頓棱鏡,且允許三個(gè)方向上(shàng)具有(yǒu)不同的尺寸。wollatsonPrismPolarizers.frd這個(gè)FRED文件包含兩個(gè)使用生(shēng)成器(qì)腳本創建的沃拉斯頓棱鏡— 一個(gè)是基于ThorLabs模型,另一個(gè)是基于Edmund光學模型。為(wèi)了方便起見,沃拉斯頓生(shēng)成器(qì)腳本和(hé)雙折射材料生(shēng)成器(qì)腳本已作(zuò)為(wèi)嵌入式腳本包含在裏面。當定義用于沃拉斯頓棱鏡偏振器(qì)的雙折射材料時(shí),雙折射材料生(shēng)成器(qì)可(kě)能會(huì)非常有(yǒu)用。
圖1. 沃拉斯頓棱鏡偏振器(qì)的晶軸标記為(wèi)黑(hēi)色箭頭,水(shuǐ)平(x)偏振光向上(shàng)偏折,垂直(y)偏振方向上(shàng)下偏折(假定為(wèi)負單軸晶體(tǐ)no>ne)。
FRED中的雙折射材料
在使用雙折射材料創建元件之前,理(lǐ)解他們在FRED中如何定義的是很(hěn)有(yǒu)用的。通(tōng)過使用“Sampled Birefringent and/or Optically Active Material”作(zuò)為(wèi)材料類型,指定若幹波長處的尋常和(hé)非尋常折射率,單軸晶體(tǐ)的軸向量,我們就定義了一個(gè)雙折射材料。通(tōng)常,晶軸方向是一個(gè)矢量,該矢量的指向沿着與全局坐(zuò)标系中非尋常折射率ne相關的方向。當創建一個(gè)新的雙折射材料時(shí),包含晶軸方向名字或描述是一個(gè)好的習慣。當一個(gè)雙折射材料分配到一個(gè)表面時(shí),它是置于該表面的父實體(tǐ)(目标實體(tǐ))的局部坐(zuò)标系中。當使用雙折射材料創建透鏡、反射鏡或棱鏡時(shí),也是同樣的道(dào)理(lǐ)。舉個(gè)例子,如果一個(gè)透鏡是由雙折射方解石制(zhì)成,且晶體(tǐ)光軸固定在x方向(1 0 0),表面材料的定義是相對于透鏡坐(zuò)标系的。同樣的透鏡如果經過旋轉,它的性能可(kě)以保持。注意到與透鏡、反射鏡或棱鏡元件不同,當使用雙折射材料定義元件基元時(shí),該材料是停留在全局坐(zuò)标系中的。FRED中有(yǒu)一個(gè)實用工具可(kě)以用來(lái)修改、檢查并記錄材料的方向,即“Edit/View GRIN/Birefringent Material Position/Orientation”,通(tōng)過“Tools”頂部菜單或右鍵單擊對象樹(shù)中的一個(gè)實體(tǐ)就可(kě)以訪問它。如圖2所示,該工具有(yǒu)一個(gè)下拉菜單,裏面包含雙折射或GRIN材料在內(nèi)的所有(yǒu)表面材料的一個(gè)列表。所選材料的坐(zuò)标系顯示在其中,且可(kě)以編輯。
圖2. 編輯/查看雙折射材料位置/方向工具
腳本
嵌入式腳本使用一個(gè)對話(huà)框(見圖3),提示用戶有(yǒu)關棱鏡名子、描述、材料和(hé)尺寸的信息。第一個(gè)材料(雙折射材料1)将分配到沃拉斯頓棱鏡的第一個(gè)區(qū)域,并且它的晶軸方向沿着x軸(晶矢[1 0 0])。第二個(gè)材料(雙折射材料2)應該與第一個(gè)是同樣的材料,但(dàn)是晶軸方向沿着y軸(晶矢[0 1 0])。這兩種材料一定是“Sampled Birefringent and/or Optically Active Material”類型的。另外,浸液材料也應該指定好。
圖3. 沃拉斯頓棱鏡創建對話(huà)框
該腳本首先生(shēng)成了所有(yǒu)材料的列表,以及本文中提及的雙折射材料,然後從對話(huà)框中獲取用戶的輸入并将它們分配給變量。這樣就創建了新的自定義元件實體(tǐ),接着按順序定義每一個(gè)表面。
樣本模型
FRED文件.frd包含了兩個(gè)沃拉斯頓棱鏡模型,由沃拉斯頓棱鏡生(shēng)成器(qì)腳本産生(shēng)。它們都還(hái)含有(yǒu)使用布爾複合元件創建的粗糙的模型。為(wèi)了分析該棱鏡,我們定義了多(duō)偏振和(hé)非偏振光源。除了常規的分析表面,我們也定義了一個(gè)定向分析表面。它可(kě)以用來(lái)運行(xíng)“Intensity on Polar Grid”分析,來(lái)測量正交偏振光束之間(jiān)的角間(jiān)距。
圖4. 角間(jiān)距計(jì)算(suàn)
例:雙折射率材料創建
雙折射材料包含o光折射率和(hé)e光折射率,FRED中有(yǒu)許多(duō)種雙折射材料庫,但(dàn)在FRED中均是o光折射率和(hé)e光折射率分開(kāi)存放的,如何放到一起,我們可(kě)以使用如下的VB腳本快速創建,新生(shēng)成的雙折射材料的類型為(wèi)"Sampled Birefringent and/or Optically Active Material"。
我們以方解石為(wèi)例。
1. 在FRED的樹(shù)形文件夾中選擇Materials/Add Glass catalog Material/Material catalog:Custom
在列表中找到CaCO3和(hé) CaCO3_extraorinary,分别選中點擊OK。
2. 可(kě)在Materials 樹(shù)形文件夾下查看CaCO3材料是否已經添加進去?
3. 在樹(shù)形文件夾中選擇:Embedded Scripts /Birefringent material creator右鍵選擇“.Run an Embedded script.
公布腳本代碼如下,用戶不需要對如下腳本做(zuò)任何的修改。
Dim biref As T_BIREFSAMPLE
Dim matlist() As String
Dim matOrdId As Long, matExtraId As Long, id As Long
Dim wavStart As Double, wavEnd As Double, wavSteps As Double, wav As Double
Dim axis_x As Double, axis_y As Double, axis_z As Double
Dim newName As String
Sub Main
'Generate list of materials
ReDim matlist(GetMaterialCount()-1)
For i = 0 To GetMaterialCount()-1
matlist(i)=GetMaterialName(i)
Next i
Begin Dialog UserDialog 660,266,"Birefringent Material Creator" ' %GRID:10,7,1,1
GroupBox 430,7,220,105,"Select Wavelength Range",.GroupBox2
Text 440,84,80,14,"Total Steps:",.TextSteps
Text 480,28,40,14,"Start:",.TextStart
GroupBox 10,7,410,168,"Select Materials",.GroupBox1
ListBox 220,49,180,112,matlist(),.ListBoxMat2
Text 220,28,180,14,"Extraordinary axis material:",.TextMat2
ListBox 30,49,180,112,matlist(),.ListBoxMat1
Text 30,28,180,14,"Ordinary axis material:",.TextMat1
TextBox 530,28,90,21,.TextBoxStart
TextBox 530,84,90,21,.TextBoxSteps
Text 480,56,40,14," End: ",.TextEnd
TextBox 530,56,90,21,.TextBoxEnd
Text 20,182,140,14,"New material name:",.TextNewMat
TextBox 20,203,390,21,.TextBoxNewMat
OKButton 150,238,90,21
CancelButton 370,238,90,21
GroupBox 430,119,220,105,"Crystal Axis Vector",.GroupBox3
Text 500,140,30,14,"X:",.Text1
TextBox 530,140,90,21,.TextBoxX
Text 500,168,20,14,"Y:",.Text2
Text 500,196,20,14,"Z:",.Text3
TextBox 530,196,90,21,.TextBoxZ
TextBox 530,168,90,21,.TextBoxY
End Dialog
Dim dlg As UserDialog
'Insert default values
dlg.TextBoxStart="0.4"
dlg.TextBoxEnd="0.7"
dlg.TextBoxSteps="101"
dlg.TextBoxNewMat="Birefringent Material"
dlg.TextBoxX = "0"
dlg.TextBoxY = "0"
dlg.TextBoxZ = "1"
'Run dialog
ok = Dialog (dlg)
If ok=0 Then 'cancel button was pressed
Print "Execution cancelled."
End
End If
'Assign values from dialog
matOrdId = FindMaterial(matlist(dlg.ListBoxMat1))
matExtraId = FindMaterial(matlist(dlg.ListBoxMat2))
wavStart = CDbl(dlg.TextBoxStart)
wavEnd = CDbl(dlg.TextBoxEnd)
wavSteps = CDbl(dlg.TextBoxSteps)
newName = dlg.TextBoxNewMat
axis_x = CDbl(dlg.TextBoxX)
axis_y = CDbl(dlg.TextBoxY) |