You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
|
# IGATrimGauss
|
|
|
|
|
|
|
|
|
|
等几何分析(IGA)中裁剪 NURBS 曲面上的高斯积分点计算。在裁剪曲面上生成背景网格并计算高精度数值积分规则,用于 IGA 有限元装配。
|
|
|
|
|
|
|
|
|
|
## 功能
|
|
|
|
|
|
|
|
|
|
- 裁剪 NURBS 曲面的读取与处理
|
|
|
|
|
- 裁剪区域背景网格生成
|
|
|
|
|
- 裁剪单元上的高斯积分点计算
|
|
|
|
|
- 多种稀疏线性求解器(CHOLMOD、Eigen)
|
|
|
|
|
|
|
|
|
|
## 依赖
|
|
|
|
|
|
|
|
|
|
- **libigl**:几何处理与可视化(GLFW)
|
|
|
|
|
- **Eigen3**:线性代数
|
|
|
|
|
- **SuiteSparse**:CHOLMOD 稀疏求解器
|
|
|
|
|
- **spdlog**:日志输出
|
|
|
|
|
- **fmt**:字符串格式化
|
|
|
|
|
- **MshIO**:网格文件读写
|
|
|
|
|
|
|
|
|
|
## 编译
|
|
|
|
|
|
|
|
|
|
```shell
|
|
|
|
|
mkdir build && cd build
|
|
|
|
|
cmake -DCMAKE_BUILD_TYPE=Release ..
|
|
|
|
|
make
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## 目录结构
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
.
|
|
|
|
|
├── src/
|
|
|
|
|
│ ├── main.cpp # 主程序入口
|
|
|
|
|
│ ├── readnurbs.cpp # NURBS 曲面读取
|
|
|
|
|
│ ├── Config.cpp # 配置参数
|
|
|
|
|
│ ├── CreateBgMesh.cpp # 背景网格生成
|
|
|
|
|
│ ├── drawstuff.cpp # 可视化(OpenGL)
|
|
|
|
|
│ └── LinSysSolver/ # 线性求解器(CHOLMOD、Eigen)
|
|
|
|
|
├── cmake/
|
|
|
|
|
├── external/
|
|
|
|
|
│ ├── glm/ # OpenGL 数学库
|
|
|
|
|
│ └── MshIO/ # 网格 IO
|
|
|
|
|
└── CMakeLists.txt
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## 相关方向
|
|
|
|
|
|
|
|
|
|
- 等几何分析(Isogeometric Analysis, IGA)
|
|
|
|
|
- 裁剪曲面数值积分
|
|
|
|
|
- NURBS 几何处理
|
|
|
|
|
|
|
|
|
|
## 作者
|
|
|
|
|
|
|
|
|
|
李采月
|