介紹
沃拉斯頓棱鏡偏振器包含兩個由單軸晶體構(gòu)成的直角棱鏡,如方解石,它經(jīng)常用于沃拉斯頓棱鏡中。兩塊單軸晶體是定向的,使得晶軸互相垂直。如下圖所示的幾何結(jié)構(gòu),水平偏振光在第一個區(qū)域中以非尋常折射率(ne)傳播,折射到第二個區(qū)域中,以尋常折射率(no)傳播。垂直偏振光經(jīng)過相反的折射,兩個偏振態(tài)就這樣分開了。本文介紹了一個腳本,即wollastonCreator.frs,根據(jù)輸入到基本對話框中的用戶技術(shù)參數(shù)來創(chuàng)建一個沃拉斯頓棱鏡,且允許三個方向上具有不同的尺寸。wollatsonPrismPolarizers.frd這個FRED文件包含兩個使用生成器腳本創(chuàng)建的沃拉斯頓棱鏡— 一個是基于ThorLabs模型,另一個是基于Edmund光學(xué)模型。為了方便起見,沃拉斯頓生成器腳本和雙折射材料生成器腳本已作為嵌入式腳本包含在里面。當(dāng)定義用于沃拉斯頓棱鏡偏振器的雙折射材料時,雙折射材料生成器可能會非常有用。
圖1. 沃拉斯頓棱鏡偏振器的晶軸標(biāo)記為黑色箭頭,水平(x)偏振光向上偏折,垂直(y)偏振方向上下偏折(假定為負(fù)單軸晶體no>ne)。
FRED中的雙折射材料
在使用雙折射材料創(chuàng)建元件之前,理解他們在FRED中如何定義的是很有用的。通過使用“Sampled Birefringent and/or Optically Active Material”作為材料類型,指定若干波長處的尋常和非尋常折射率,單軸晶體的軸向量,我們就定義了一個雙折射材料。通常,晶軸方向是一個矢量,該矢量的指向沿著與全局坐標(biāo)系中非尋常折射率ne相關(guān)的方向。當(dāng)創(chuàng)建一個新的雙折射材料時,包含晶軸方向名字或描述是一個好的習(xí)慣。當(dāng)一個雙折射材料分配到一個表面時,它是置于該表面的父實(shí)體(目標(biāo)實(shí)體)的局部坐標(biāo)系中。當(dāng)使用雙折射材料創(chuàng)建透鏡、反射鏡或棱鏡時,也是同樣的道理。舉個例子,如果一個透鏡是由雙折射方解石制成,且晶體光軸固定在x方向(1 0 0),表面材料的定義是相對于透鏡坐標(biāo)系的。同樣的透鏡如果經(jīng)過旋轉(zhuǎn),它的性能可以保持。注意到與透鏡、反射鏡或棱鏡元件不同,當(dāng)使用雙折射材料定義元件基元時,該材料是停留在全局坐標(biāo)系中的。FRED中有一個實(shí)用工具可以用來修改、檢查并記錄材料的方向,即“Edit/View GRIN/Birefringent Material Position/Orientation”,通過“Tools”頂部菜單或右鍵單擊對象樹中的一個實(shí)體就可以訪問它。如圖2所示,該工具有一個下拉菜單,里面包含雙折射或GRIN材料在內(nèi)的所有表面材料的一個列表。所選材料的坐標(biāo)系顯示在其中,且可以編輯。
圖2. 編輯/查看雙折射材料位置/方向工具
腳本
嵌入式腳本使用一個對話框(見圖3),提示用戶有關(guān)棱鏡名子、描述、材料和尺寸的信息。第一個材料(雙折射材料1)將分配到沃拉斯頓棱鏡的第一個區(qū)域,并且它的晶軸方向沿著x軸(晶矢[1 0 0])。第二個材料(雙折射材料2)應(yīng)該與第一個是同樣的材料,但是晶軸方向沿著y軸(晶矢[0 1 0])。這兩種材料一定是“Sampled Birefringent and/or Optically Active Material”類型的。另外,浸液材料也應(yīng)該指定好。
圖3. 沃拉斯頓棱鏡創(chuàng)建對話框
該腳本首先生成了所有材料的列表,以及本文中提及的雙折射材料,然后從對話框中獲取用戶的輸入并將它們分配給變量。這樣就創(chuàng)建了新的自定義元件實(shí)體,接著按順序定義每一個表面。
樣本模型
FRED文件.frd包含了兩個沃拉斯頓棱鏡模型,由沃拉斯頓棱鏡生成器腳本產(chǎn)生。它們都還含有使用布爾復(fù)合元件創(chuàng)建的粗糙的模型。為了分析該棱鏡,我們定義了多偏振和非偏振光源。除了常規(guī)的分析表面,我們也定義了一個定向分析表面。它可以用來運(yùn)行“Intensity on Polar Grid”分析,來測量正交偏振光束之間的角間距。
圖4. 角間距計(jì)算
例:雙折射率材料創(chuàng)建
雙折射材料包含o光折射率和e光折射率,F(xiàn)RED中有許多種雙折射材料庫,但在FRED中均是o光折射率和e光折射率分開存放的,如何放到一起,我們可以使用如下的VB腳本快速創(chuàng)建,新生成的雙折射材料的類型為"Sampled Birefringent and/or Optically Active Material"。
我們以方解石為例。
1. 在FRED的樹形文件夾中選擇Materials/Add Glass catalog Material/Material catalog:Custom
在列表中找到CaCO3和 CaCO3_extraorinary,分別選中點(diǎn)擊OK。
2. 可在Materials 樹形文件夾下查看CaCO3材料是否已經(jīng)添加進(jìn)去?
3. 在樹形文件夾中選擇:Embedded Scripts /Birefringent material creator右鍵選擇“.Run an Embedded script.
公布腳本代碼如下,用戶不需要對如下腳本做任何的修改。
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) |