100个实用小工具8-deepCFD二维流场神经网络 - 详解

DeepCFD GUI 技术文档

在这里插入图片描述

1. 项目概述

DeepCFD GUI 是一个基于 PySide6 和 DeepCFD 的图形用户界面应用程序,专门用于计算流体力学(CFD)的深度学习仿真。该工具支持数据加载、模型训练和结果可视化等核心功能。

1.1 主要特性

  • STL几何模型导入与处理
  • CFD数据集生成
  • 深度学习模型训练(支持FNO2d、UNet、ResNet等架构)
  • 仿真结果可视化(几何信息、速度场、压力场等)
  • 直观的图形用户界面

1.2 技术栈

  • GUI框架: PySide6 (Qt for Python)
  • 科学计算: NumPy, SciPy
  • 机器学习: PyTorch
  • 数据可视化: Matplotlib
  • 3D几何处理: numpy-stl
  • 数据序列化: Pickle

2. STL处理模块

STL处理模块负责将三维STL几何模型转换为DeepCFD可用的输入数据格式。

2.1 核心功能

STL文件加载
  • 支持标准STL文件格式(ASCII和二进制)
  • 解析网格顶点和面片信息
  • 提供模型基本信息统计(顶点数、面数等)
3D模型可视化
  • 三维模型渲染显示
  • 支持保存可视化图像
2D SDF转换

将3D STL模型转换为二维符号距离函数(SDF):

  1. 选取模型XY平面的中间截面
  2. 计算截面轮廓的符号距离函数
  3. 支持规则几何体的解析方法(立方体、球体等)
  4. 提供通用方法处理任意几何形状
CFD数据集生成

基于几何信息生成完整的CFD训练数据集:

  • 输入数据:几何信息(SDF格式)
  • 输出数据:流场信息(速度场Ux、Uy和压力场)
  • 支持生成多个样本以丰富训练数据

2.2 支持的几何体类型

  • 立方体:使用解析方法生成精确的SDF
  • 球体:通过投影生成圆形SDF
  • 圆柱体:通过截面生成圆形SDF
  • 翼型:简化模型的近似SDF
  • 自定义几何体:通用处理方法

2.3 类接口说明

class STLProcessor:
def load_stl(self, stl_file_path):
"""加载STL文件"""
def visualize_stl(self, save_path=None):
"""可视化STL模型"""
def convert_to_2d_sdf(self, nx=128, ny=64, save_path=None):
"""将3D STL模型转换为2D符号距离函数"""
def generate_cfd_dataset(self, stl_file_path, output_dir="./cfd_data", num_samples=5):
"""生成完整的CFD数据集"""

3. 可视化模块

可视化模块提供对CFD仿真结果的图形化展示功能,包括几何信息、真实数据和预测数据的对比显示。

3.1 核心功能

数据可视化
  • 几何信息显示(SDF格式)
  • 流场数据可视化(速度场、压力场)
  • 真实数据与预测数据对比显示
  • 支持多种物理量切换显示
交互操作
  • 样本切换(上一个/下一个样本)
  • 物理量选择(水平速度、垂直速度、压力)
  • 实时更新显示
多视图展示
  • 三列布局同时显示几何信息、真实数据和预测数据
  • 自动调整颜色映射以突出数据特征
  • 添加颜色条便于数值解读

3.2 可视化组件

主要视图
  1. 几何信息视图:显示障碍物的符号距离函数(SDF)
  2. 真实数据视图:显示CFD求解器计算的真实流场数据
  3. 预测数据视图:显示深度学习模型预测的流场数据
控制元素
  • 样本导航按钮(上一个/下一个)
  • 物理量选择下拉框
  • 颜色条和坐标轴

3.3 可视化类接口

主窗口集成可视化

在主窗口中内嵌的可视化组件:

def create_visualization_tab(self):
"""创建可视化标签页"""
posted on 2026-01-16 22:30  ljbguanli  阅读(0)  评论(0)    收藏  举报