文章目录
- 一、Cassiopee 的主要功能
- 二、安装方法
- 三、基本使用示例
- 1. 读取并可视化网格
- 2. 网格操作:合并两个区域
- 3. 插值流场数据
- 四、典型应用场景
- 五、相关资源
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 通道(如有)condainstall-c conda-forge -c onera cassiopee或者从源码编译(需先安装 CGNS、HDF5、Tk 等):
gitclone https://git.onera.fr/occigene/cassiopee.gitcdcassiopee python setup.pyinstall⚠️ 注意:官方推荐在 Linux 或 macOS 上使用;Windows 支持有限,可能需要 WSL。
三、基本使用示例
1. 读取并可视化网格
importCassiopeeasCimportConverterasCGimportGeneratorasG# 读取 CGNS 网格a=C.convertFile2PyTree('mesh.cgns')# 显示网格结构C.convertPyTree2File(a,'output.vtk')# 转为 VTK 供 ParaView 查看# 或直接用内置查看器(需 Tk 支持)C.display(a)2. 网格操作:合并两个区域
importCassiopeeasCimportConnectorasX t1=C.convertFile2PyTree('zone1.cgns')t2=C.convertFile2PyTree('zone2.cgns')# 自动匹配连接t=X.connectMatch([t1,t2])C.convertPyTree2File(t,'merged.cgns')3. 插值流场数据
importPostasP# 假设 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/目录)。