XIAN-FEM-2026June/3D opticsfem-master/PPT更新建议_阶段三.md

7.6 KiB
Raw Blame History

OpticsFEM 3D PPT 更新建议(阶段三 · PBC 周期边界)

对应原稿:yh -3D OpticsFEM.pptx9 页2026-06-09
当前进度:阶段 2PEC/ELE+ 阶段 3PBC 单/双周期)已完成
配套图片目录:ppt_assets/


一、现有 PPT 结构 vs 当前进度

页码 现有内容 与现状的差距
1 封面2026.6.9 日期、副标题需更新
23 背景、软件框架 基本可用,可小幅补充 PBC 模块
4 三维拓展总览表(图片) 需标绿阶段 2/3 已完成项
5 SBC 散射 + 本征 FemType 4/5 缺 PBC 算例说明
6 散射 |E| 结果SBC 立方体) 仅有 SBC缺 PBC 结果图
7 后续工作一PBC 仍列在待做) 应改为「已完成 + 新待做」
8 后续工作二(.em 接口) 可保留,基本不变
9 工作总结 未体现 PEC/ELE、PBC

3D光学仿真扩展实施计划.md,当前进度:

阶段0 工程基础 ──→ 阶段1 本征频率 ──→ 阶段2 PEC/ELE ✅ ──→ 阶段3 PBC ✅
                                                              ↓
                                                        阶段4 BELE/源项(下一步)

二、建议「就地修改」的页面

1. 第 1 页 · 封面

  • 时间改为 2026 年 6 月 23 日(或汇报当天)
  • 副标题可改为:
    「一阶 Nedelec · SBC/PEC/PBC 边界 · 散射与本征矩阵组装」

2. 第 4 页 · 三维拓展总览表

建议在表格或模块图中标注:

模块 状态 说明
体积分 + SBC 已有 原内容
PEC/ELE阶段 2 新增 Assemble_PEC_ELE(),边 DOF 消元
PBC 单/双周期(阶段 3 新增 GetIndexOfPBC + Assemble_PBC + PBC_Util
BELE/MAG/SCD 等 阶段 4 仍待做
.em 接口 接口层 第 8 页内容

3. 第 5 页 · 三维算例验证

在现有 FemType 4/5 下方,增加 PBC 算例块

单周期 PBC 散射

  • 配置:singlePBC_scatter.json + singlePBC_mesh.dat
  • 方程A·x = b约束矩阵 P^T A PBloch 相位 φ)
  • 求解n ≈ 22751|r| ≈ 3.9×10⁻¹³

双周期 PBC 散射

  • 配置:doublePBC_scatter.jsonpbc + pbc2 两组)
  • 难点:角点 DOF 重叠合并(mergeDoublePbcPairs
  • 约束对数PBC1=819PBC2=813合并后 1570 对

本征 FemType=5 + PBC

  • Assemble_EigenFreq_Boundary.cppAssemble_PEC_PBC() 已接入

4. 第 7 页 · 后续工作一(重点改写)

建议拆成两段:

【阶段 23 已完成】

  • PEC/ELE 边 DOF 约束组装
  • 单周期 / 双周期 PBC 边配对与 Bloch 相位
  • Mesh_3D::GetIndexOfPBC()PBC_Util.cpp
  • 与 MATLAB main_singlePBC.massembly_pbc_double.m 对齐

【阶段 4 及以后 — 仍待做】

  • BELE / MAG / SCD / MPD / EPD 源项
  • PML 吸收层、Port 端口
  • 二阶 Nedelec、3D 本征模式FemType=6
  • 各向异性材料

原来写「PBC 待接入」的表述应全部删除或改为「已完成」。

5. 第 9 页 · 工作总结

在「已完成」中补充:

⑥ 阶段23D 散射 PEC/ELE 边界组装Assemble_PEC_ELE
⑦ 阶段3单/双周期 PBC 完整实现C++ vs MATLAB normE 相对误差 ~1.1×10⁻⁶相关系数 1.0

「后续方向」改为:阶段 4 源项边界 → 阶段 5 PML/Port → .em 接口


三、建议「新增」的页面(插在 6 页之后)

新页 A · 「阶段三:周期边界 PBC 原理与实现」

建议内容:

  • 物理Bloch 定理 E(r+R) = E(r)·e^(jk·R)
  • 实现流程
PBC 面域 → GetIndexOfPBC 边配对 → 构建约束矩阵 P → A_proj = P^H A P
  • 关键文件Mesh_Find.cppPBC_Util.cppAssemble_Scatter_3D_Boundary.cpp
  • JSON 配置示例pbc / pbc2srcIndex、dstIndex、phiR/I、pbcWaveVec

新页 B · 「PBC 数值验证C++ vs MATLAB

可直接用的数据(tools/compare_double_pbc.py 输出):

指标 数值
双 PBC 矩阵 max|diff| / rel ~500 / 1.1×10⁻⁶
normE L2 相对误差 1.1×10⁻⁶
normE 相关系数 1.0
单 PBC 求解残差 3.9×10⁻¹³

推荐配图ppt_assets/pbc_faces_domain2_domain5.pngdomain 2 + domain 5 周期面 |E| 对比)

新页 C可选· 「分阶段路线图与进度」

推荐配图ppt_assets/roadmap_stage_progress.png

阶段 内容 状态
0 Test_Main、JSON 导出
1 本征频率闭环 ⚠️ 矩阵已对齐Run/Post 待接
2 PEC/ELE
3 PBC 单/双周期
4 BELE/源项
5 PML/Port
6 本征模式/二阶

四、第 6 页散射结果的微调

不必删原 SBC 结果,建议改为 三算例并列

  1. SBC 立方体原有z=0.5 切面)
  2. 单周期 PBCOutFile/normEOutFile_single_on_double
  3. 双周期 PBCOutFile_double/normE

每图下方一行标注算例名、DOF 数、残差或相对误差。


五、更新后的推荐页序(约 12 页)

1.  封面(更新日期/副标题)
2.  项目背景与目标
3.  软件整体框架(+ PBC 模块)
4.  三维拓展总览(标绿阶段 2/3
5.  算例验证总览SBC + 本征 + PBC      ← 改
6.  SBC 散射结果展示                      ← 保留
7.  【新】阶段三 PBC 原理与实现
8.  【新】PBC 数值验证C++ vs MATLAB    ← 用 pbc_faces_domain2_domain5.png
9.  【新/可选】分阶段路线图               ← 用 roadmap_stage_progress.png
10. 后续工作(阶段 4+,删 PBC 待做)       ← 原第 7 页改
11. 后续工作二:.em 接口                  ← 原第 8 页
12. 工作总结 + 谢谢                        ← 原第 9 页改

六、配套图片清单

文件名 用途 来源
ppt_assets/pbc_faces_domain2_domain5.png PBC 面 2+5 合并在同一坐标系C++/MATLAB 对比) plot_domain_faces.py --combined
ppt_assets/face_domain2.png domain 2 单独(可选) --domains 2
ppt_assets/face_domain5.png domain 5 单独(可选) --domains 5
ppt_assets/roadmap_stage_progress.png 分阶段进度路线图 make_ppt_assets.py
ppt_assets/pbc_validation_metrics.png PBC 验证指标柱状图 make_ppt_assets.py
ppt_assets/module_status_stage3.png 模块完成状态表 make_ppt_assets.py

生成命令:

cd "3D opticsfem-master"
# 合并 domain 2+5同一坐标系类似 COMSOL 切面)
python tools/plot_domain_faces.py --mesh build/Release/PBCmesh.dat `
  --outdir build/Release/OutFile `
  --mat-outdir "..\三维matlab代码\matlab 3D一阶基+散射边界条件+单周期边界\OutFile" `
  --domains 2 5 --combined `
  --output ppt_assets/pbc_faces_domain2_domain5.png

# 或一键生成全部 PPT 素材
python ppt_assets/make_ppt_assets.py

若 C++ OutFile/normE 顶点数与 PBCmesh.dat 不一致,请先在 build/Release 下运行:
OpticsFEM.exe pbc3d_sbc.json


七、汇报叙事建议

  1. 先讲已有成果2D→3D 框架、SBC 散射闭环、本征矩阵对齐
  2. 重点讲阶段三PBC 是光学周期结构仿真的关键,双周期角点合并是技术难点
  3. 用数字收尾normE 相关系数 1.0、相对误差 ~10⁻⁶说明实现可靠
  4. 下一步一笔带过:阶段 4 源项、.em 接口,与第 1011 页呼应

文档生成日期2026-06-23