|
|
||
|---|---|---|
| .. | ||
| Eigen | ||
| Interface | ||
| common | ||
| compare | ||
| complex | ||
| function | ||
| kernel | ||
| material | ||
| mesh | ||
| nlohmann | ||
| parser | ||
| phy | ||
| post | ||
| solver | ||
| test | ||
| tools | ||
| .gitignore | ||
| CMakeLists.txt | ||
| CMakeSettings.json | ||
| OpticsFEM_完整使用说明与代码介绍.md | ||
| README.md | ||
| SBCmesh.dat | ||
| sbc3d.json | ||
README.md
OpticsFEM3D
三维矢量有限元光学电磁仿真程序(一阶 Nedelec 边元)。
支持的问题类型
| FemType | 说明 | 网格 | 状态 |
|---|---|---|---|
| 0–3 | 二维问题(本征/散射) | Mesh_2D |
遗留接口,与 2D 版相同 |
| 4 | 三维一阶散射(SBC) | Mesh_3D |
当前主算例 |
快速开始(FemType = 4)
环境
- Windows 10/11 x64
- Visual Studio 2026(18),工作负载:使用 C++ 的桌面开发
- CMake ≥ 3.8(随 VS 安装)
编译
cd "3D opticsfem-master"
# 若 cmake 不在 PATH 中,追加 VS 2026 自带 CMake
$env:Path += ";C:\Program Files\Microsoft Visual Studio\18\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin"
mkdir build
cd build
cmake .. -G "Visual Studio 18 2026" -A x64
cmake --build . --config Release
产物:
build/Release/OpticsFEM.exebuild/Release/complex/complexsolver.exe(CMake 自动编译)
运行 sbc3d 算例
# 复制输入文件到 exe 同目录
Copy-Item ..\sbc3d.json, ..\SBCmesh.dat -Destination Release\
cd Release
.\OpticsFEM.exe
结果输出到 Release/OutFile/:Ex、Ey、Ez、normE。
输入文件
| 文件 | 说明 |
|---|---|
sbc3d.json |
算例配置,FemType 必须为 4 |
SBCmesh.dat |
三维四面体网格(顶点、四面体、边、三角边界等) |
详细文档
- OpticsFEM_完整使用说明与代码介绍.md — 模块说明、JSON 字段、FemType=4 专章
- compare/README.md — 与 COMSOL 的 normE 切面对比
仓库说明
- 只需上传源码;
build/由 CMake 本地生成,不必提交。 - 散射算例(FemType=4)的
complexsolver.exe可由 CMake 从complex/complexsolver.cpp编译,无需单独 PETSc 版求解器。