学习中心

复制并重复使用边界模式的分析结果


使用 波束包络电磁波频域 接口的时候,经常会有多个具有相同结构但在空间中位置不同的 端口 边界条件。这种情况经常发生,尤其是在光学和光子学模型中,这些端口存在多种不同的模式,且需要进行数值计算。但我们可以仅使用一个 数值 类型的 端口 边界条件来计算出所有关注的模式,并将这些解复制到其他端口,通过 用户自定义端口 来重复使用。

下图中显示的沿长度方向形状不变的光脊波导就是这样一个示例。在波导中传播一个特定偏振模式,但由于部分衬底存在各向异性,因此可能存在其他模式。本例中要考察的是前两种传播模式。

A schematic of a uniform waveguide with two ports (labeled) and the different modeling domains shown in blue and orange.

支持多种模式的带有两个端口的均匀波导。

预计算波导的所有模式

这种方法首先需要定义一个 数值端口,用于计算所有关注模式。由于在最终分析中不会直接使用该 端口,为了便于区分,我们将其设为 端口 0。然后,添加其他 端口 边界条件以描述波导。对于光波导,应确保包层区域的宽度足够大,以使场衰减到接近零。

A screenshot of the Port Settings window, with the Boundary Selection, Port Properties, and Port Mode Settings sections expanded.
设置一个数值端口。

设置一个包含边界模式分析的研究来求解该 端口 的模式。在本示例中,我们只关注前两个模式,因此将 所需模式数设为 2,并将 模式搜索基准值 设为有效模式折射率 3.5,这是波导结构中的最高折射率。然后,计算出该波导结构在此频率下支持的前两个模式。

A screenshot of the Settings window for a boundary mode analysis, with the Port name, Mode analysis frequency, Desired number of modes, and Search for modes around options in the Study Settings section highlighted.
计算所有关注模式的求解器设置。

求解完成后,绘制边界模式电场图有助于验证计算出的模式。这些电场后续将被用于定义一组用户定义的端口。

A side-by-side visualization of the two modes of interest for the model of the waveguiding structure, visualized in a red–white color gradient with black streamline arrows.

两种关注模式的可视化结果。

理解和使用边界模式分析的输出结果

边界模式总电场包含两个正交分量,即,边界的切向和法向电场。总电场表示为,

,

其中,切向分量代表边界面内的矢量,法向分量则是标量场,而法矢 是从模拟域指向外的矢量,代表传出信号的方向。

对于端口 0,切向场的分量为 ewbe.tEbm0x、ewbe.tEbm0y 以及 ewbe.tEbm0z,法向分量则为 ewbe.nebm0,向外法矢的分量为 ewbe.nx、ewbe.ny 和 ewbe.nz,因此边界模式的总电场为:

ewbe.tEbm0x-ewbe.nx*ewbe.nebm0

ewbe.tEbm0y-ewbe.ny*ewbe.nebm0

ewbe.tEbm0z-ewbe.nz*ewbe.nebm0

端口 0 所算得的两个模式各含有不同的切向和法向分量,以及传播常数 ewbe.beta_0。为了调用这些变量,可以使用 withsol 算子,其语法原型为:withsol('sol1',Ex_total, setind(lambda,M1))

上式中,第一个变元代表解的标记,可引用任意解(参见 withsol 算子典型示例)。第二个变元表示调用解中的变量表达式,而第三个变元使用了 setind 算子,其中使用一个参数通过取值 M1=1M2=2 来分别引用通过 边界模式分析 步骤所算得的两个模式。因此,这个表达式用于重用这些预计算的解。

接下来,端口 0 算得的场映射到其他需要这些结果的边界,这可以通过 广义拉伸 算子按照如下截图所示的设置来实现。输入和输出端口具有完全相同的 xy 坐标,因此无需修改其映射表达式。其中,将 z 的表达式设置为* z-Length,这是因为输出边界在 z 方向上存在由全局参数 *Length 定义的偏移。通过这个算子,可以将算得的数据从输入边界映射到输出边界。如需了解更多使用 广义拉伸 算子的详情(包括旋转场),请查阅:广义拉伸算子的典型示例

The Model Builder with the General Extrusion operator selected and the corresponding Settings window showing the source and destination map settings.
广义拉伸 算子的设置窗口,用于将一个边界的结果映射到其他边界。注意: 定义 下的 变量 节点,其中使用 withsol 算子和 广义拉伸 算子定义 端口 1 4 的模式场和传播常数。

这个算子(默认名称 genext1)的用法是,在其他端口边界,使用 genext1() 算子来封装所需的表达式。例如,第一个模式的总电场映射到出射边界的形式为:

genext1(withsol('sol1',ewbe.tEbm0x,setind(lambda,M1)))-ewbe.nx*genext1(withsol('sol1',ewbe.nebm0,setind(lambda,M1)))

genext1(withsol('sol1',ewbe.tEbm0y,setind(lambda,M1)))-ewbe.ny*genext1(withsol('sol1',ewbe.nebm0,setind(lambda,M1)))

genext1(withsol('sol1',ewbe.tEbm0z,setind(lambda,M1)))-ewbe.nz*genext1(withsol('sol1',ewbe.nebm0,setind(lambda,M1)))

注意,广义拉伸 算子并未应用到法矢分量,因为在相反边界会有不同的分量。实际上,可以创建一组变量来简化其语法。

将预计算模式应用于完整模型

首先在定义 端口 0 的同一组边界上定义激励 端口 1,以定义所有需要这些预计算模式作为波导模式的端口边界。将 端口类型 设为用户定义,然后在 端口模式设置 栏使用上面定义的这些在这四个端口的总电场和传播常数变量。

The Model Builder with Port selected and the corresponding Settings window.
设置端口条件,在相同边界上重用之前算得的电场和传播常数。

重复上述步骤,在同一组边界上定义 端口 2。这是一个无激励的端口,用于监测回到第二模式的反射。将波激励设置为关闭,并使用变量 P2ExP2EyP2Ez 表示电模式场,以及 betap2 表示传播常数。依此类推,在远端再定义两个端口表示出射信号。

请注意,所有 端口 边界上的网格必须完全相同。一般情况下可以通过 相同网格 特征自动满足这一条件,如下图所示。

The Model Builder with the Identical Mesh feature selected and the corresponding Settings window.
使用 相同网格 特征来确保输入/输出端口的网格完全相同。

关于这种特殊情况的网格划分,在截面和沿长度方向的网格必须足够细化。由于各向异性基底区域和各向同性区域的支撑模式略有差异,因此必须研究沿长度方向的网格细化。如需了解更多此类模型的网格和求解的指南,请查阅 定向耦合器 模型。

求解时,可以使用一个可选的 研究引用 在求解三维模型之前重新计算 端口 0 的模式。此外,如下图所示,在 波长域 研究步骤的 物理场和变量选择 栏禁用端口 0。

The Model Builder with the Wavelength Domain study step selected and the corresponding Settings window showing the Physics and Variables Selection settings.
设置 窗口的截图显示,在对模型内部场进行求解计算时, 端口 0 被禁用。


请提交与此页面相关的反馈,或点击此处联系技术支持