77 lines
2.2 KiB
Markdown
77 lines
2.2 KiB
Markdown
# 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
|
||
```
|