67 lines
1.9 KiB
Markdown
67 lines
1.9 KiB
Markdown
# 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 安装)
|
||
|
||
### 编译
|
||
|
||
```powershell
|
||
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.exe`
|
||
- `build/Release/complex/complexsolver.exe`(CMake 自动编译)
|
||
|
||
### 运行 sbc3d 算例
|
||
|
||
```powershell
|
||
# 复制输入文件到 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](./OpticsFEM_完整使用说明与代码介绍.md) — 模块说明、JSON 字段、FemType=4 专章
|
||
- [compare/README.md](./compare/README.md) — 与 COMSOL 的 normE 切面对比
|
||
|
||
## 仓库说明
|
||
|
||
- 只需上传**源码**;`build/` 由 CMake 本地生成,不必提交。
|
||
- 散射算例(FemType=4)的 `complexsolver.exe` 可由 CMake 从 `complex/complexsolver.cpp` 编译,无需单独 PETSc 版求解器。
|