# Fem4 端口激励算例(MeshData2x) 基准模型:**COMSOL Fem4.mph** → `MeshData2x.mat`(12444 节点,69093 四面体,z 方向长度 4 μm)。 ## 运行 MATLAB(推荐入口) ```matlab cd('三维matlab代码/2023-2-端口激励问题(四面体网格)') MainFem2x % 求解 + 出图 + 写 OutFile_fem4/ ``` 首次或更新网格后,补全 `Physic`/`Material`: ```matlab load('MeshData2x.mat','Mesh'); [Physic,Material,~,~] = configPhysicMaterialFem4(); save('MeshData2x.mat','Mesh','Physic','Material','-v7.3'); ``` 有 COMSOL LiveLink 时可用 `MakeData2x.m` 从 `Fem4.mph` 重新导出网格。 ## 输出 | 路径 | 内容 | |------|------| | `OutFile_fem4/normE` | 顶点 \|E\|(C++ 同格式) | | `OutFile_fem4/S_params.txt` | S11、S21、powerCoef、neff | | Figure 1–5 | 端口模场 + 全场/端口面场 | ## 与旧脚本关系 | 脚本 | 网格 | 说明 | |------|------|------| | `MainFem2.m` | `MeshData2.mat` | Fem2,L=1 μm,**未改动** | | `MainFemx.m` | `MeshDatax.mat` | 大模型 Fem5,**未改动** | | **`MainFem2x.m`** | **`MeshData2x.mat`** | **Fem4 基准,本算例** | ## 导出 A/b 矩阵(与 C++ OutFile 对比) 在 MATLAB 中(PEC 消元后、symrcm 之前,与 C++ 约化系统一致): ```matlab cd('三维matlab代码/2023-2-端口激励问题(四面体网格)') exportAbMatrixFem4 % -> OutFile_fem4_ab/Ai.txt, Aj.txt, Av.txt, Bv_*.txt ``` 无 MATLAB 时可用 Python 复现(已与 MATLAB S 参数一致): ```powershell cd "3D opticsfem-master\tools" python compare_port_full.py ``` 对比 C++ 与 MATLAB/Python 导出: ```powershell python compare_ab_matrix.py "..\..\三维matlab代码\2023-2-端口激励问题(四面体网格)\OutFile_fem4_ab" "..\port\Release\OutFile" ``` python 3D opticsfem-master/tools/build_port_mesh_from_mat.py # → port/Release/Portmesh.dat ``` 3D 端口矩阵组装(`Assemble_Port`)尚在实施计划阶段 5.2;当前以 **MATLAB `MainFem2x` 为金标准**。 ## 参考结果(MeshData2x 一次运行) - `neff ≈ 2.623` - `|S11| ≈ 0.024` - `|S21| ≈ 0.42` 与 COMSOL 对比:将 COMSOL 导出 `normE` 放到 `OutFile_comsol/normE`,运行: ```powershell python 3D opticsfem-master/port/Release/compare_normE_comsol.py ```