![fc83cb95e8d814a6e5f41069212fcc8e.png](https://i-blog.csdnimg.cn/blog_migrate/0a23f973218333918c16bc860d0bf958.jpeg)
之前我们介绍了光子晶体以及如何用comsol计算其能带结构2011 Nat. Mat. 光子晶体随机简并的狄拉克锥和零折射,光子晶体其实只是一个概念,既可以做成一维、二维,也可以做成三维。今天我们要聊的是光子晶体光纤(photonic crystal fiber,pcf),即一种端面为光子晶体微腔,而纵向是无限长的波导结构。这种特种光纤直到1996年才真正制作出来,和传统的单模光纤相比具有很多优势,如无尽单模特性、异常的色散以及高双折射等。这其实也好理解,因为我们在制作pcf预制棒的时候,可以随意挑选玻璃管的尺寸,所以pcf可以实现对模式的tailor。
![3fc180f24d8baaf435ca687648b6ea0c.png](https://i-blog.csdnimg.cn/blog_migrate/6b0b9eea5fe9f05aa02b6d8cb65fe1de.jpeg)
虽然pcf相比于单模光纤有这么多优点,但是我们在对其模式进行求解分析的时候,就会遇到更多的困难和问题,最最让人头痛的就是pcf的基模比较难找。因为pcf的端面太大了,模式太多了。随便求个三五十个模式,都可能见不到基模的影子。有几个网友留言咨询这个难缠的问题有无良策,今天模数哥就教大家一个绝招,如何方便快速地“一键式”地找到光子晶体光纤的基模。
模数哥其实已经多次强调了,Comsol软件有非常强大的前后处理的功能,所以我们可以根据光子晶体光纤基模的模场特点,让comsol“智能”地帮我们找到pcf的基模。概括来说,就是根据基模和无物理意义的高阶数学模的区别,设置一个变量,根据变量将基模挑选出来。
![24303790ea3db3d86c8961c2c75f87fa.png](https://i-blog.csdnimg.cn/blog_migrate/b5711090149c93b7d84789d8fd7aa1bf.jpeg)
如上图所示,真实的pcf基模的模场都是在光纤截面的中心处,而假的数学结果,模场则会发散在四周各处,这是由于pcf的四周一圈是二氧化硅材料,折射率大于空洞的空气,所以在数学上也是可以支持很多模式的。如果我们在几何建模的时候,人为地在光纤中间画出一个矩形区域,我们便可以定义一个能量占比因子:
![e516141e5aea04c40e9383729499d300.png](https://i-blog.csdnimg.cn/blog_migrate/0a0ab9bb388b6ed5202d101c5398549d.jpeg)
即分别对矩形和光纤总截面做归一化电场E的面积分,并求出其比值,很显然基模的ratio是较大的,至少有0.2,即基模至少有20%的能量是在光纤中心的矩形内,而赝模对应的ratio则会很小。
![097e0a5e52f2c8a4f1e057dd10aae1ce.png](https://i-blog.csdnimg.cn/blog_migrate/ee5e93b1108254144b444c44c8db9337.jpeg)
如上图所示,在模型的定义Definitions下面分别添加两个积分耦合算子,并可以修改其Operator Name分别为intop_cen和intop_all,选择的区域分别如下图,即分别对中心矩形区域和整个光纤截面区域做积分:
![2556ee0464d608b7f8cfb22d3d7327f8.png](https://i-blog.csdnimg.cn/blog_migrate/473d166a3da3e8dfd67971367d2d1c51.jpeg)
添加一个变量Variable,按照上述ratio的定义,分别利用两个积分符号来写出其表达式:intop_cen (emw.normE)/intop_all(emw.normE)
模型的前处理便是如此,然后我们就可以设置模式分析求解器Mode Analysis并运行。运行完毕后,我们在后处理Derived Values里面添加Global Evaluation,并设置表达式:real(emw.neff)*(ratio>0.2),如下图:
![194a3f30bc1a7eba9680fdfc1fdd1b51.png](https://i-blog.csdnimg.cn/blog_migrate/8bd4ae934c9f23ba5d44f35cbe8858f5.jpeg)
关于这个表达式多说两句:
1,这是一个逻辑表达式,其中括号内ratio>0.2的值为0或1,所以当满足ratio>0.2时,根据前文的定义,即该模式是基模,表达式的值即为有效折射率的实部,否则为0。
2,表达式中的emw即意味着该物理场为射频模块(Radio Frequency)下面的电磁频域场,Electromagnetic Waves, Frequency Domain(emw)。如果我们换用波动光学(Wave Optics)下面的电磁波频域Electromagnetic Waves, Frequency Domain (ewfd),效果完全一样。模数哥早前介绍过,Comsol软件的早前版本里面并没有专门的光学模块(波动光学和射线光学 Ray of Optics),波动光学的仿真是放在射频模块里面的。
我们可以在结果显示窗口看到如下结果,Comsol已经自动将我们要求的pcf基模区分开来了:
![1fff994f76196a3eacec7da683bfa9f0.png](https://i-blog.csdnimg.cn/blog_migrate/151f66115036b43a77bf6d0e0fb1fc61.png)
很显然1.4128和1.4144就是两个基模,分别是沿着y方向和x方向偏振的基模,而其他所有为0的结果,就都是赝品了。我们再在2D plot中画出这两个模式的电场分布,来做个验证。这时根据上面的表格,我们就不必挨个验证所有有效折射率,而大可放心地直接画出这两个模式:
![0943a9b9c67b341cb9ee944f847b97df.png](https://i-blog.csdnimg.cn/blog_migrate/680a85cf5db0a557a4661f981448e91a.png)
其模场分布如下图所示:
![523079fb17f15fc912eb56412e12ca9c.png](https://i-blog.csdnimg.cn/blog_migrate/9ce44370e2fdeb4bcc23d5bd2ba17380.jpeg)
这里多说几句:
1,如何快速地区分这两个模式的偏振态呢?当然最简单的方法就是在2D plot下面添加一个Arrow Line,分别将emw.Ex和emw.Ey画出来。为了和Rainbow的Color Bar更好地区分开,我建议大家改用白色来画箭头线,结果如下:
![d13acf00723b28a7057cffc3484cf186.png](https://i-blog.csdnimg.cn/blog_migrate/84ae11d9fadb797482868cd8a7b96db0.jpeg)
2,虽然上述方法可以帮我们区分出这两个偏振态,但是模数哥还是那个观点:仿真的作用其实很有限,因为仿真出来的结果应该是你早已知道的,只有这样,你才能判断出你仿真的结果到底对不对(模数哥谈Comsol仿真系列1——仿真有什么用)。所以根据这个光子晶体光纤的截面,我们应该可以判断出x偏振的基模有效折射率大于y偏振态,Please use your Physics sense。
今天的内容就是这么多了,这也只是一个demo,希望大家能有所启发和收获:只要我们清楚地了解Comsol的各种前后处理功能并合理使用,仿真其实并不是一个很枯燥的事情。还有就是有些朋友找到我,说需要咨询Comsol with Matlab的二次开发。模数哥一开始接触Comsol软件的前几年,也经常会做这种二次开发(当时还觉得很高大上),觉得Comsol软件的现有接口经常不能解决我的问题。但是现在回过头来看看那些问题,感觉大都没有二次开发的必要了,利用好Comsol强大的前后处理功能,大部分仿真问题可以直接解决。