你是否曾想过自主开发一款工业级CAE仿真软件?面对商业软件高昂的授权费用或功能限制,一个开放、可扩展的底层平台显得尤为重要。MxSimLab 正是一个为此而生的开源增量集成式全数字仿真引擎系统。
该项目在国家级研发计划的支持下,旨在为开发者和工程师提供一个高性能基础框架。你可以基于此平台,轻松集成第三方求解器或嵌入自研算法,快速构建出满足特定工程分析需求的定制化仿真软件。
项目目录结构一览
了解项目结构是上手的第一步:
data/:存放几何文件、着色器文件和样式文件等资源。
example/:提供可执行的程序案例,供学习和参考。
external/:集成了外部依赖子模块,如 glad、glfw、imgui 等,开箱即用。
python/:Python 相关的接口或脚本代码。
src/:平台的核心源代码。
tests/:各类测试文件。
如何在 Windows 上构建与安装?
支持平台与必备工具
目前,项目已在 Windows 10 平台上测试通过,可成功编译安装。你需要准备以下工具和环境:
- IDE:Visual Studio 2019 或更高版本。
- 构建工具:CMake,建议使用最新版本。
- GPU 加速:CUDA(测试版本为 11.4,也兼容其他旧版本)。
依赖库详解
项目依赖分为图形、界面和功能扩展库几类。
场景图与图形依赖(已集成)
以下库已作为子模块集成在 external/ 目录中,无需单独安装:
- glad:用于加载 OpenGL 函数。
- glfw:负责窗口创建与上下文管理。
- imgui:一个高效的即时模式 GUI 工具库。
必要库(需手动安装)
这两个库是启动图形界面的基础,必须安装:
- Qt:用于构建图形用户界面。未安装将导致 GUI 无法启动。
- Boost:C++ 基础库,建议版本 ≥ 1.79.0。
可选功能库(按需安装)
为扩展软件功能,你可以选择性地安装以下库:
| 库名 |
用途说明 |
| VTK |
提供强大的科学数据渲染与可视化支持。 |
| OCCT |
用于几何建模与处理,是实现 CAE 前处理功能的关键。 |
| MKL |
Intel 数学核心库(需 ≤ 2017 版本),流固耦合分析所必需。 |
| Alembic |
支持动画与复杂场景数据的交换格式。 |
| Imath |
OpenEXR 图像格式的配套数学库。 |
| Gmsh |
可集成其脚本,实现自动网格生成功能。 |
| MxSim |
平台默认集成的结构仿真求解器。 |
从零开始的下载与构建指南
1. 克隆项目仓库
第一步是获取源代码。使用 --recursive 参数可以自动拉取所有子模块依赖。
git clone --recursive https://gitee.com/caiyong_GPU/mx-sim-lab.git
注:external/ 目录下的依赖(如 glad, glfw, imgui)已通过此命令一并下载。
2. 配置关键环境变量
请确保你的系统中已正确设置以下环境变量,以便 CMake 能够找到它们:
CUDA 相关路径
Qt 的安装路径
Boost 库的根目录
3. CMake 配置选项说明
使用 CMake 生成项目时,以下选项需要特别关注。
必选配置
- Qt 支持:务必勾选
PERIDYNO_Qt5_GUI 选项。
- Boost 路径:正确设置
Boost_INCLUDE_DIR 变量,指向 Boost 的头文件目录。
前处理模块(可选)
如果你需要启用 CAE 前后处理功能(如几何导入、网格划分、结果云图显示),请进行如下操作:
- 勾选
MXSIMLAB_LIBRARY_PREPOSTPROCESS。
- 配置以下库的路径:
MXSIMLABDEP_OCC_INC:OCCT 的头文件目录。
MXSIMLABDEP_OCC_LIBDIR:OCCT 的库文件目录。
MXSIMLABDEP_VTK_INC:VTK 的头文件目录。
MXSIMLABDEP_VTK_LIBDIR:VTK 的库文件目录。
流体/流固耦合插件(可选)
当前流体动力学相关功能以插件形式提供:
- 勾选
PERIDYNO_LIBRARY_PLUGIN 以启用插件支持。
- 将官方提供的插件文件放入构建目录下的
./build/plugin/ 文件夹中。
4. 执行编译
推荐在命令行中完成 CMake 配置,然后使用 Visual Studio 进行编译。
cd mx-sim-lab
mkdir build && cd build
cmake ..
执行完 cmake .. 后,使用 Visual Studio 打开生成的 .sln 解决方案文件进行编译即可。
如果尚未安装 CMake,请前往其官网下载安装。
核心功能模块
MxSimLab 平台集成了多个仿真模块,为复杂工程问题提供解决方案:
| 模块类别 |
功能说明 |
| 前后处理 |
支持几何模型导入、自动/手动网格生成、仿真结果的可视化与分析。 |
| 通用结构分析模块 |
适用于典型的机械结构仿真,例如汽车转向连杆的应力应变分析。 |
| 流体求解模块 |
提供计算流体动力学(CFD)仿真能力。 |
| 流固耦合模块 |
用于分析流体与固体结构之间相互作用的复杂物理现象。 |
软件界面与交互体验
平台的用户界面基于 Qt + ImGui 构建,兼顾了传统桌面应用的稳定性和即时模式GUI的灵活性。


在可视化方面,它深度融合了 OpenGL 与 VTK,能够高质量地进行 3D 场景渲染。

用户可以在界面上实时查看仿真计算结果,并动态调整参数,实现了交互式分析与调试。


获取源码与社区
项目源代码托管在 Gitee 平台,完全开源:
MxSimLab 致力于打造一个开放、可扩展的高性能 CAE 仿真开发生态。无论你是希望研究仿真引擎的底层原理,还是急需一个可靠的框架来集成自己的专业算法,它都提供了一个绝佳的起点。我们欢迎更多开发者加入,基于此平台进行二次开发与创新实践。
对于想深入探索 C++ 高性能计算和图形学的朋友,可以到云栈社区的对应板块,与更多同行交流构建此类复杂系统的实践经验。