2.2 KiB
2.2 KiB
Fem4 端口激励算例(MeshData2x)
基准模型:COMSOL Fem4.mph → MeshData2x.mat(12444 节点,69093 四面体,z 方向长度 4 μm)。
运行 MATLAB(推荐入口)
cd('三维matlab代码/2023-2-端口激励问题(四面体网格)')
MainFem2x % 求解 + 出图 + 写 OutFile_fem4/
首次或更新网格后,补全 Physic/Material:
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++ 约化系统一致):
cd('三维matlab代码/2023-2-端口激励问题(四面体网格)')
exportAbMatrixFem4 % -> OutFile_fem4_ab/Ai.txt, Aj.txt, Av.txt, Bv_*.txt
无 MATLAB 时可用 Python 复现(已与 MATLAB S 参数一致):
cd "3D opticsfem-master\tools"
python compare_port_full.py
对比 C++ 与 MATLAB/Python 导出:
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