物理光学3 电磁波的折射与反射
物理光学3 电磁波的折射与反射
- 用麦克斯韦方程推导边界条件
- 从边界条件到折射与反射定律
- Fresnel方程
当电磁波从介质(ϵ1,μ1)(\epsilon_1,\mu_1)(ϵ1,μ1)传播到介质(ϵ2,μ2)(\epsilon_2,\mu_2)(ϵ2,μ2)中时,电磁波传播的方向、电磁波的振幅、相位等都可能发生变化,这一讲的目标是回顾这些变化与电磁波的物理性质与几何性质之间的关系。
用麦克斯韦方程推导边界条件
在界面两侧取一个非常小的Ampere loop,沿界面外法线方向n^\hat nn^的宽度为δh\delta hδh,用麦克斯韦方程
∇×E⃗+∂B⃗∂t=0\nabla \times \vec E + \frac{\partial \vec B}{\partial t}=0∇×E+∂t∂B=0
计算∇×E⃗\nabla \times \vec E∇×E在Ampere loop中的面积分,并用Stokes公式化简可以得到
n^×(E⃗2−E⃗1)=0\hat n \times (\vec E_2 - \vec E_1)=0n^×(E2−E1)=0
同样的计算技巧用于
∇×H⃗−∂D⃗∂t=0\nabla \times \vec{H} -\frac{\partial \vec{D}}{\partial t} =0∇×H−∂t∂D=0
可以得到
n^×(H⃗2−H⃗1)=0\hat n \times (\vec H_2-\vec H_1)=0n^×(H2−H1)=0
在边界上取Gauss surface,并对
∇⋅D⃗=0,∇⋅B⃗=0\nabla \cdot \vec D=0,\nabla \cdot \vec B = 0∇⋅D=0,∇⋅B=0
取积分用Gauss定理可以得到
n^⋅(D⃗2−D⃗1)=0n^⋅(B⃗2−B⃗1)=0\hat n \cdot (\vec D_2-\vec D_1)=0 \\ \hat n \cdot (\vec B_2-\vec B_1)=0n^⋅(D2−D1)=0n^⋅(B2−B1)=0
这里构造边界条件的方法与静磁学问题中找边界条件的方法一样。
从边界条件到折射与反射定律
假设界面为{(x,y,z):z=0}\{(x,y,z):z=0\}{(x,y,z):z=0},其中yyy是垂直纸面向外的方向,x⃗\vec xx表示入射波与界面的交点的位移;上文的边界条件中,下标为1表示入射端,下标为2表示出射端,另外,下标i,r,ti,r,ti,r,t分别表示入射、反射、折射波,则
E⃗1=E⃗i+E⃗rE⃗2=E⃗t\vec E_1 = \vec E_i+\vec E_r \\ \vec E_2 = \vec E_tE1=Ei+ErE2=Et
因此
n^×(E⃗i+E⃗r)=n^×E⃗t\hat n \times (\vec E_i+\vec E_r) = \hat n \times \vec E_tn^×(Ei+Er)=n^×Et
这个等式对任意ttt与x⃗\vec xx均成立。代入三处电场的表达式:
n^×(E⃗i0ei(k⃗i⋅x⃗−wit)+E⃗r0ei(k⃗r⋅x⃗−wrt))=n^×E⃗t0ei(k⃗t⋅x⃗−wtt)\hat n \times (\vec E_{i0}e^{i(\vec k_i \cdot \vec x-w_it)}+\vec E_{r0}e^{i(\vec k_r \cdot \vec x-w_rt)})=\hat n \times \vec E_{t0}e^{i(\vec k_t \cdot \vec x-w_tt)}n^×(Ei0ei(ki⋅x−wit)+Er0ei(kr⋅x−wrt))=n^×Et0ei(kt⋅x−wtt)
要使这个式子对任意ttt成立,需要
wi=wr=wtw_i = w_r=w_twi=wr=wt
要使这个式子对任意x⃗\vec xx成立,需要
k⃗i⋅x⃗=k⃗r⋅x⃗=k⃗t⋅x⃗\vec k_i \cdot \vec x = \vec k_r \cdot \vec x = \vec k_t \cdot \vec xki⋅x=kr⋅x=kt⋅x
这个式子蕴含电磁波传播的三条规律,也是几何光学中重要的三条规律:
- 反射光与折射光与入射光共面,称这个平面为入射平面(plane of incidence)
- 反射定律:θi=θr\theta_i=\theta_rθi=θr
- Snell定律:n1sinθi=n2sinθtn_1\sin \theta_i = n_2 \sin \theta_tn1sinθi=n2sinθt
先说明第一条:
(k⃗i−k⃗r)⋅x^=0(k⃗i−k⃗r)⋅x^=0(\vec k_i - \vec k_r) \cdot \hat x = 0 \\ (\vec k_i - \vec k_r) \cdot \hat x = 0(ki−kr)⋅x^=0(ki−kr)⋅x^=0
这两个等式说明k⃗i−k⃗r,k⃗i−k⃗t\vec k_i - \vec k_r,\vec k_i - \vec k_tki−kr,ki−kt与法线平行,因为这两个向量起点相同,因此它们与法线共面,所以反射光与折射光与入射光共面;
然后说明第二条:根据k⃗i⋅x⃗=k⃗r⋅x⃗\vec k_i \cdot \vec x = \vec k_r \cdot \vec xki⋅x=kr⋅x以及wi=wrw_i=w_rwi=wr,可以得到θi=θr\theta_i=\theta_rθi=θr
最后说明一下第三条:根据k⃗r⋅x⃗=k⃗t⋅x⃗\vec k_r \cdot \vec x = \vec k_t \cdot \vec xkr⋅x=kt⋅x以及wi=wtw_i=w_twi=wt,可以得到
n1sinθi=n2sinθtn_1\sin \theta_i = n_2 \sin \theta_tn1sinθi=n2sinθt
其中nnn是折射率,
n=μϵn=\sqrt{\mu \epsilon}n=μϵ
Fresnel方程
现在我们确定电场的表达式,用入射平面作为参考,把电场分为平行于入射平面于垂直于入射平面的两个方向,分别用下标P与S表示,记w=wi=wr=wtw=w_i=w_r=w_tw=wi=wr=wt;
先计算S波的折射与反射,
E⃗iS=E⃗i0Se(k⃗i⋅x⃗−wt),E⃗i0S=Ei0Sy^E⃗rS=E⃗r0Se(k⃗r⋅x⃗−wt),E⃗r0S=Et0Sy^E⃗iS=E⃗t0Se(k⃗t⋅x⃗−wt),E⃗t0S=Et0Sy^\vec E_{iS} = \vec E_{i0S}e^{(\vec k_i \cdot \vec x - wt)}, \vec E_{i0S}=E_{i0S}\hat y \\ \vec E_{rS} = \vec E_{r0S}e^{(\vec k_r \cdot \vec x - wt)} ,\vec E_{r0S}=E_{t0S}\hat y\\ \vec E_{iS} = \vec E_{t0S}e^{(\vec k_t \cdot \vec x - wt)},\vec E_{t0S}=E_{t0S}\hat yEiS=Ei0Se(ki⋅x−wt),Ei0S=Ei0Sy^ErS=Er0Se(kr⋅x−wt),Er0S=Et0Sy^EiS=Et0Se(kt⋅x−wt),Et0S=Et0Sy^
其中未知量只有E⃗r0S,E⃗t0S\vec E_{r0S},\vec E_{t0S}Er0S,Et0S。根据界面上电场的连续性
Ei0S+Er0S=Et0SE_{i0S}+E_{r0S}=E_{t0S}Ei0S+Er0S=Et0S
以及磁场的连续性(磁场的方向由右手定则确定)
−Hi0Scosθi+Hr0Scosθr=−Ht0Scosθt-H_{i0S}\cos \theta_i+H_{r0S} \cos \theta_r = -H_{t0S}\cos \theta_t−Hi0Scosθi+Hr0Scosθr=−Ht0Scosθt
代入折射定律与反射定律,以及
H0=ϵμE0H_0 = \sqrt{\frac{\epsilon}{\mu}}E_0H0=μϵE0
联立可以得到
Er0SEi0S,Et0SEi0S\frac{E_{r0S}}{E_{i0S}},\frac{E_{t0S}}{E_{i0S}}Ei0SEr0S,Ei0SEt0S
称这两个值为反射系数与折射系数,记为rS,tSr_S,t_SrS,tS;类似地可以推导rT,tSr_T,t_SrT,tS。
物理光学3 电磁波的折射与反射相关推荐
- UA PHYS515A 电磁理论V 电磁波与辐射4 反射与折射
UA PHYS515A 电磁理论V 电磁波与辐射4 反射与折射 假设平面z=0z=0z=0是两种不导电介质的交界面,z<0z<0z<0的空间中介质的介电常数与磁导率为ϵ1,μ1\ep ...
- Unity shader实现水效果(折射,反射,波浪,1.菲尼尔,深度颜色)
虽然是AV画质,但是大概还是可以看的 整个实现过程,包括水面的UV流动,折射,反射,根据深度进行透明值处理等等 转载于:https://www.cnblogs.com/ubanck/p/9606626 ...
- Unity 3D 海水的实现2 折射与反射 离屏相机的渲染
版本:unity 5.4.1 语言:C# 在上节博文实现后,我添加了一些场景的元素,海水的效果大概是这个样子的: 接下来的目标是实现海水的折射和反射,书中使用的Unity应该是4.x时代的,Unit ...
- python实现光线追迹(下):折射与反射的实现
文章目录 折射与反射 平面反射 平面折射 python实现 弧面问题 折射与反射 光线与光学元件相互作用,无非只有两件事,反射和透射.而就目前看来,我们所常用的光学元件,也无非有两种表面,即平面和球面 ...
- matlab模拟反射,光线的折射和反射 Matlab源程序 动画演示
CODE: %% 光线的折射和反射 % 特性:光的折射与光的反射一样都是发生在两种介质的交界处, % 只是反射光返回原介质中,而折射光线则进入到另一种介质中. % 由于光在两种不同的物质里传播速度不同 ...
- shader 反射 水面_【Unity Shader】模拟水面包含折射与反射与波浪动画
最近研究了一下Unity官方的BoatAttack案例,他们模拟的海浪效果很厉害,用的是Gerstner波来模拟水面起伏和波峰的白浪还有浮力系统,还做加入了焦散效果(Caustics)和平面反射(Pl ...
- Unity3D shader——水的折射与反射
水的折射与反射原理其实差不多,只是一个用ComputeGrabScreenPos(o.pos)来取得贴图,一个用ComputeScreenPos(o.pos)来取得贴图.另外还需要两个脚本,一个是工具 ...
- CSharpGL(43)环境映射(Environment Mapping)-天空盒(Skybox)反射(Reflection)和折射(Refraction)...
CSharpGL(43)环境映射(Environment Mapping)-天空盒(Skybox)反射(Reflection)和折射(Refraction) 开始 如图所示,本文围绕GLSL里的sam ...
- UE4 Material 101学习笔记——23-29 水涟漪/水深/折射反射/Gerstner海浪/波光焦散/泡沫/FlowMap
UE4 Material 101学习笔记--23-29 水涟漪/水深/折射反射/Gerstner海浪/波光焦散/泡沫/FlowMap Lec23 水的表面涟漪 Water Ripples Shader ...
- 3D渲染技术分享:实时3D水面渲染(反射、折射、水深与水岸柔边)
一.开篇 自从上次写了**<用实时反射Shader增强画面颜值>** 后,不少开发者开始尝试用它来渲染水面,但效果都差强人意. 这是因为,水面除了反射,还有许多细节需要考虑. 在此之前,也 ...
最新文章
- python中字符串的操作
- Oracle 11G R2 RAC中的scan ip 的用途和基本原理【转】
- Linux1:Linux概述
- 软件项目管理0710:招标文件准备【求助】
- Jquery----实现抽奖效果(根据姓名抽奖)
- html中水印影响文字复制,HTML中文字水印的清除方法_HTML教程
- php 显示对像编码,PHP面向对象之旅:类型提示
- DOM 元素以及内容的增删改
- 【Python成长之路】装逼的一行代码:快速共享文件【华为云分享】
- 师妹问我:有哪些新手程序员不知道的小技巧?
- 获取虚拟机的唯一标识_JVM笔记:Java虚拟机的类加载机制(附详细思维导图)...
- 变量可以存储在堆中,栈中,方法区中。哪里都可以啊。对象只能存储在堆中...
- 2004-6-22+ 用vs.net做的留言板
- (day 52 - 约舍夫环问题 ) 剑指 Offer 62. 圆圈中最后剩下的数字
- 金山毒霸2011“可信云安全”的本土化优势
- 可爱的拼音加加输入法^_^
- 【数字IC验证】1-systemverilog数据类型
- 云原生背景看这一篇就够了
- 教父三部曲观后感总结
- XAI Explainable AI 模型可解释性(3)