PseudoTimePINN-BackwardFacingStep

1 downloads 0 likes on ModelScope updated

Model card

PseudoTimePINN-BackwardFacingStep

模型介绍

PseudoTimePINN-BackwardFacingStep 复现 Re=800 后向台阶稳态不可压缩流实验,使用自适应伪时间步进的物理信息神经网络预测速度和压力。

论文:When PINNs Go Wrong: Pseudo-Time Stepping Against Spurious Solutions

模型描述

模型在后向台阶计算域内采样 Navier-Stokes 方程点,以解析边界条件和方程残差训练,不用 SU2 参考流场更新参数。参考场只用于误差评估和绘图。本模型包对应论文 Table 1 的 Re=800 adaptive pseudo-time 实验。

适用场景

场景 说明
后向台阶流动 近似求解分离、回流与再附着流场
工业仿真验证 比较 PINN 求解结果与数值参考场

使用说明

1. OneCode 使用

可通过 OneCode 在线环境体验智能化一键式 AI4S 编程:

点击体验智能化一键式 AI4S 编程

2. 手动安装使用

硬件要求

  • 推荐使用 GPU 或 DCU 完整训练。本次在 1 张 DCU 上完成 100000 步,耗时约 6 小时 13 分钟。
  • 默认配置要求在 Slurm 计算节点训练,不要在登录节点运行完整训练。

下载模型包

从 ModelScope 下载模型包:

pip install 'modelscope[datasets]'
modelscope download --model OneScience/PseudoTimePINN-BackwardFacingStep --local_dir ./PseudoTimePINN-BackwardFacingStep
cd PseudoTimePINN-BackwardFacingStep

安装运行环境

DCU环境

# 请首先激活DTK及CONDA
conda create -n onescience311 python=3.11 -y
conda activate onescience311
# 支持uv安装
pip install onescience[cfd-dcu] -i http://mirrors.onescience.ai:3141/pypi/simple/ --trusted-host mirrors.onescience.ai
pip install -r requirements.txt

GPU环境

# 请首先激活CONDA
conda create -n onescience311 python=3.11 -y libstdcxx-ng=12 libgcc-ng=12 gcc_linux-64=12 gxx_linux-64=12
conda activate onescience311
# 支持uv安装
pip install onescience[cfd-gpu] -i http://mirrors.onescience.ai:3141/pypi/simple/ --trusted-host mirrors.onescience.ai
pip install -r requirements.txt

训练数据介绍

训练点在计算域中生成,不需要外部训练样本。评估使用作者公开仓库的 SU2 参考场 flow.vtu,包含 31265 个网格点。模型包配置默认读取 data/flow.vtu;该文件已单独整理到 OneScience/BackwardFacingStep-SU2-Re800。

modelscope download --dataset OneScience/BackwardFacingStep-SU2-Re800 --local_dir ./data

下载后应存在 data/flow.vtu;SHA256 为 004f10b2b9ce1e38542537da648c1221730308310f1f7fa675dc7a92b4900d8a。flow.vtu 只用于误差评估与绘图,不参与梯度更新。

训练

在已分配 GPU/DCU 的 Slurm 计算节点、模型包根目录中运行:

python scripts/train.py

默认训练 100000 步,按独立的无标签物理验证分数保存最佳权重。若在非 Slurm 环境中训练,需按实际设备修改 config/config.yaml 的 training.device 和 training.require_slurm。

训练权重

weight/best_model.pth 来自第 47200 步,大小 23,853,777 bytes,SHA256 为 02dfccc279625bce6f796d405b83ec0d2db719700a2eecc74d874ddb4bd775f6。另保留 weight/last_model.pth 供默认推理脚本比较训练末步结果,不推荐用它代替最佳权重。

推理

python scripts/inference.py

推理分别加载最佳权重和最后一步权重,在原始 SU2 网格上计算速度误差;结果保存至 results/。

评估和可视化

python scripts/result.py

本次最佳权重的 u 相对 L2 为 0.003582,论文 Table 1 为 0.002320;本次高 0.001262,约为论文值的 1.544 倍。最后一步权重的误差为 0.093482,因此应用时应选择最佳权重。详细训练曲线、误差和流场图见 results/。

OneScience 官方信息

平台 OneScience 主仓库 Skills 仓库
Gitee https://gitee.com/onescience-ai/onescience https://gitee.com/onescience-ai/oneskills
GitHub https://github.com/onescience-ai/OneScience https://github.com/onescience-ai/oneskills

引用与许可证