JCMsuite布局描述提供了许多设置复杂几何图形的方法。例如,在多核光子晶体光纤示例中,我们使用晶格副本来创建固体核光子晶体光纤的空气孔的排列。然而,在某些应用中,可能需要描述几何图形,这些图形不能用简单的圆、平行四边形等表示,或者类似物体的复杂阵列非周期排列在规则网格中,需要晶格复制来实现。在这种情况下,通常需要用任意边界曲线来描述几何对象,即一般多边形。这就是本例的情况,其中光子晶体包层的内部孔和中心孔形成复杂的形状。其几何结构为中空光子晶体光纤,如下图所示:
显然,这个描述很难“手工”完成,输入所有点的坐标。相反,在JCMsuite的Matlab®接口的帮助下,建立一个复杂的几何图形和模拟运行完成。 JCMsuite的Matlab®接口允许使用所谓的模板文件生成这样复杂的文件。因此,可以将JCMsuite语句和Matlab语句进行混合,例如,计算孔隙的点位置。Matlab循环允许在位移位置或修改形状生成多个对象。关于该机制的完整描述可以在Matlab®Interface中找到,并且超出了本例的范围,本例仅用于演示嵌入式脚本的能力。这个例子的project.jcmp、 layout.jcm 和 materials.jcm文件包含了模板文件 ,就要添加一个“t”作为对应模板的后缀。模板被设计成这样一种方式,只需要定义几个用户定义的参数,如圆角、周期、包层环的数量等,就可以生成复杂的布局描述。这些主要的输入参数是在run_project中设置的。m脚本。当它在Matlab中执行时,命令:results = jcmwave_solve('project.jcmp', keys);在run_project.m脚本内将模板转换为常规的JCMsuite输入文件,网格划分并布局,并运行模拟。此外,脚本将结果结构中存储的特征值写入控制台。
计算得到的空心模式是双重简并的。下图显示了计算得出的模态强度(第一行)和相应的向量场分布(第二行)。