作者hiro920463 (hiro)
看板Physics
標題Re: [問題] 雙軸晶體的雙折射 biaxial birefringence
時間Sat Sep 13 18:50:02 2014
以前修課的時候從 kx(kxE)=ω^2μεE=0 出發去解(畫)
ε_x 0 0
ε= 0 ε_y 0 的兩條光軸,要有 nontrival solution
0 0 ε_z
就會得到一個由變數 k_x, k_y, k_z, ε_x, ε_y, ε_z 組成的 determinant
必須等於零(Optical Wave in Crystal, Yariv&Yeh, eq4.2-5~4.2-8 最後就會導出
Fresnel Eq ), 在 k-space 中獨力的 k 其實只有兩個 (因為 sum k_i^2=k^2)
所以那個 det 可以改寫成 k 的二次式, 重根的地方就是光軸, 畫出來的圖
大概像
https://flic.kr/p/pcdZMb equation
https://flic.kr/p/oULCWC 斜視+ x-y, y-z, x-z 截面
紅線就是光軸, matlab code 附在下面
(不過有點錯,大概某個系數寫錯還是畫圖函式搞錯, 會得到一個奇怪的圖
https://www.flickr.com/photos/35756331@N06/3346400883/sizes/o/
上課報告時候唬爛一下還真的所有人都相信了,因為光軸是對的
後來把這個 case 改成範例拿來教大一生寫程式時才修成前面的正確版)
原則上就是把 k 改寫成球坐標換成 theta 跟 phi 兩個變數去掃描硬解出
滿足前式 det 為零的重根, 又知道這兩個點會過零點所以直接延長得到光軸
--------------Matlab code--------------
nx=3;
ny=2;
nz=1;
cx=zeros(size(4));
cy=zeros(size(4));
cz=zeros(size(4));
counter=0;
caxis=0;
X1=ones(size(8192));
Y1=ones(size(8192));
Z1=ones(size(8192));
X2=ones(size(8192));
Y2=ones(size(8192));
Z2=ones(size(8192));
for i=0:64
theta=i*pi/64;
for k=0:128
phi=k*pi/64;
counter=counter+1;
B=-sin(theta)^2*cos(phi)^2*(1/nx^2+1/nz^2)-sin(theta)^2*sin(phi)^2*
(1/nz^2+1/nx^2)-cos(theta)^2*(1/nx^2+1/ny^2);
C=sin(theta)^2*cos(phi)^2/(ny^2*nz^2)+sin(theta)^2*sin(phi)^2/(nz^2*nx^2)+
cos(theta)^2/(nx^2*ny^2);
root1=0.5*(-B-sqrt(B^2-4*C));
root2=0.5*(-B+sqrt(B^2-4*C));
X1(counter)=sqrt(root1)*sin(theta)*cos(phi);
Y1(counter)=sqrt(root1)*sin(theta)*sin(phi);
Z1(counter)=sqrt(root1)*cos(theta);
X2(counter)=sqrt(root2)*sin(theta)*cos(phi);
Y2(counter)=sqrt(root2)*sin(theta)*sin(phi);
Z2(counter)=sqrt(root2)*cos(theta);
if
((root1-root2<=0.00000000001)&(root1-root2>=-0.000000000001)&
(sqrt(root1)*sin(theta)*cos(phi)>=0))
cx(1)=sqrt(root1)*sin(theta)*cos(phi);;
cy(1)=sqrt(root1)*sin(theta)*sin(phi);
cz(1)=sqrt(root1)*cos(theta);end
if
((root1-root2<=0.00000000001)&(root1-root2>=-0.000000000001)&
(sqrt(root1)*sin(theta)*cos(phi)<=0))
cx(2)=sqrt(root1)*sin(theta)*cos(phi);;
cy(2)=sqrt(root1)*sin(theta)*sin(phi);
cz(2)=sqrt(root1)*cos(theta);end
end
end
t=-1.5:0.01:1.5;
hold on;
plot3(X1,Y1,Z1);
plot3(X2,Y2,Z2);
plot3(cx(1)*t,cy(1)*t,cz(1)*t);
plot3(cx(2)*t,cy(2)*t,cz(2)*t);
--------end--------
※ 引述《ed78617 (雞爪)》之銘言:
: birefrigence 又稱 double refraction
: 指的是光在anisotropic crystal行進時,會看見不同的折射率
: 其中這樣的crystal又可分為單軸(uniaxial)及雙軸(biaxial)晶體
: http://en.wikipedia.org/wiki/Birefringence
: 上面wikipedia的連結最底下有推導過程,(8)式清楚給出單軸晶體的正交曲面方程式
: 為一球面及一橢球面,故可繪製如下圖:
: http://ej.iop.org/images/0143-0807/34/5/1263/Full/ejp471398f2_online.jpg
: 但雙軸晶體(nx、ny及nz都不同時)的正交曲面圖,就不知道如何繪製了
: http://imgur.com/NVbHcOQ
: 曾請教過他人,說要從Fresnel's equation下手 (Jackson的problem7.16),
: 用方向餘弦化簡,會求得兩解,但小弟資質駑鈍以致無法領悟
: 懇請精通這塊領域的版友幫幫忙,謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.150.132.171
※ 文章網址: http://www.ptt.cc/bbs/Physics/M.1410605407.A.52C.html
推 ed78617: 謝謝你喔^^ 09/14 16:09