深入解析:CFD: Cassiopee前后处理网格可视化工具
Cassiopee 是一个由法国航空航天研究院(ONERA)开发的开源 Python 库,主要用于 CFD(计算流体力学)前处理、后处理、网格操作与可视化。它尤其擅长处理结构化和非结构化网格,并支持多种主流 CFD 格式(如 CGNS、VTK、SU2、Plot3D 等),广泛应用于科研和工程领域。
一、Cassiopee 的主要功能
网格读写与转换
- 支持格式:CGNS、VTK、SU2、Plot3D、FLUENT、FAST、Tecplot 等。
- 可在不同格式之间转换(如 CGNS ↔ VTK)。
网格操作
- 网格合并、切割、变形、重编号、体素化。
- 生成边界层、插值、网格光顺(smoothing)。
- 支持结构化(structured)与非结构化(unstructured)网格。
前处理
- 定义边界条件(通过 zone names 或 BC tags)。
- 设置区域属性、分区(domain decomposition)。
后处理与可视化
- 计算气动系数(如 Cl, Cd)、积分量。
- 提取流场剖面、等值面、流线。
- 与 Tecplot、ParaView 或内置 Tk 图形界面集成。
脚本化与自动化
- 完全基于 Python,支持批量处理、参数化研究。
- 可与 NumPy、SciPy、Matplotlib 无缝集成。
并行支持(MPI)
- 通过
Converter.PyTree模块支持分布式内存并行(基于 MPI)。
- 通过
二、安装方法
Cassiopee 依赖于 Python(通常 3.7+)和一些底层 C/Fortran 库(如 CGNS、HDF5)。推荐使用 Conda 安装:
# 添加 conda-forge 和 ONERA 通道(如有)
conda install -c conda-forge -c onera cassiopee
或者从源码编译(需先安装 CGNS、HDF5、Tk 等):
git clone https://git.onera.fr/occigene/cassiopee.git
cd cassiopee
python setup.py install
⚠️ 注意:官方推荐在 Linux 或 macOS 上使用;Windows 支持有限,可能需要 WSL。
三、基本使用示例
1. 读取并可视化网格
import Cassiopee as C
import Converter as CG
import Generator as G
# 读取 CGNS 网格
a = C.convertFile2PyTree('mesh.cgns')
# 显示网格结构
C.convertPyTree2File(a, 'output.vtk') # 转为 VTK 供 ParaView 查看
# 或直接用内置查看器(需 Tk 支持)
C.display(a)
2. 网格操作:合并两个区域
import Cassiopee as C
import Connector as X
t1 = C.convertFile2PyTree('zone1.cgns')
t2 = C.convertFile2PyTree('zone2.cgns')
# 自动匹配连接
t = X.connectMatch([t1, t2])
C.convertPyTree2File(t, 'merged.cgns')
3. 插值流场数据
import Post as P
# 假设 a 包含流场(如 Density, Momentum 等)
# 在点集上插值
points = [[0.1, 0.2, 0.0], [0.3, 0.4, 0.0]]
result = P.extractPoint(a, points)
print(result) # 返回插值后的流场变量
四、典型应用场景
- CFD 前处理流水线:从 CAD 导出 → 网格生成 → 格式转换 → 边界条件设置。
- 多解耦合:将不同 CFD 求解器(如 elsA、Alya、SU2)的结果进行对比或插值。
- 参数化研究:自动批量修改几何、运行仿真、提取性能指标。
- AMR(自适应网格)支撑:与 ONERA 的 elsA 求解器配合用于复杂流动模拟。
五、相关资源
- 官方网站(法语/英语):https://cassiopee.onera.fr
- 文档:https://cassiopee.onera.fr/doc
- GitHub 镜像(非官方):部分代码可在 GitLab 或 GitHub 上找到(主仓库为 ONERA 内部 Git)。
- 教程:官方提供 Jupyter Notebook 示例(如
Examples/目录)。
浙公网安备 33010602011771号