基于 Syslab 的二维热传导高性能数值模拟与可视化案例

本案例基于 Syslab MCP 和 Syslab Julia 运行时,实现二维瞬态热传导方程的显式有限差分求解、性能对比和结果可视化。案例同时提供基础版和优化版求解器,用于展示 Syslab 在科学计算、性能优化和图形输出方面的一体化能力。

案例目标

  • 构建可运行的二维热传导数值模拟程序
  • 用基础版与优化版实现同一模型,形成性能对比
  • 生成初始、中间、最终温度场图像与性能对比图
  • 输出可复现的 CSV 结果和案例说明文档

数学模型

求解二维热传导方程:

[
\frac{\partial T}{\partial t}=
\alpha\left(\frac{\partial^2 T}{\partial x^2}+\frac{\partial^2 T}{\partial y^2}\right)+Q(x,y)
]

其中:

  • T(x,y,t) 为温度场
  • alpha 为热扩散系数
  • Q(x,y) 为位于区域中心附近的高斯热源

本案例采用正方形区域、全域常温初值、中心局部热源以及固定温度边界条件。

文件结构

syslab_high_performance_visualization_case/
├── README.md
├── run_case.jl
├── src/
│   ├── common.jl
│   ├── heat2d_basic.jl
│   ├── heat2d_optimized.jl
│   ├── benchmark.jl
│   └── visualization.jl
├── results/
│   ├── benchmark_results.csv
│   ├── initial_temperature.png
│   ├── mid_temperature.png
│   ├── final_temperature.png
│   ├── performance_comparison.png
│   └── run_summary.txt
└── docs/
    └── case_report.md

运行方法

在 Syslab Julia 环境中执行:

include("run_case.jl")

或在当前案例目录下用 Syslab MCP 运行该脚本。

参数说明

主案例默认参数位于 run_case.jl

  • 网格:200 x 200
  • 空间区域:1.0 x 1.0
  • 热扩散系数:alpha = 0.01
  • 终止时间:0.03
  • 初始温度:20.0
  • 热源强度:850.0
  • 热源尺度:0.09
  • 边界条件:固定温度边界 :dirichlet

结果说明

运行完成后,results/ 目录会生成:

  • 初始温度场图
  • 中间时刻温度场图
  • 最终温度场图
  • 基础版与优化版性能对比图
  • 基准测试结果 CSV
  • 运行摘要文本

性能对比结论

本案例对 100x100200x200400x400 三组网格进行基础版和优化版对比。优化版使用矩阵切片、广播向量化和预分配数组,减少了显式双重循环与重复内存分配,通常可获得明显加速。

当前实测结果如下:

网格规模 基础版耗时 优化版耗时 加速比
100x100 0.0198 s 0.0009 s 22.21x
200x200 0.0311 s 0.0194 s 1.61x
400x400 0.5824 s 0.4197 s 1.39x

其中 100x100 的加速比偏高,主要因为基础版刻意保留了“每步重新分配工作数组”的教学式实现,分配开销在小网格下占比较大;200x200400x400 更能反映数值内核本身的收益。

可视化结果说明

三张温度场图展示了局部热源驱动下热量逐步扩散的过程,性能图展示了不同网格规模下两种实现的耗时差异。该案例既能用于教学演示,也适合展示 Syslab 在数值模拟与可视化一体化工作流上的能力。

主案例 200x200 网格运行结果显示:

  • 时间步数:52
  • 时间步长:0.0005769230769230769
  • 稳定性上限:0.0006312971894649125
  • 最终温度范围:20.044.5976

适合展示的亮点总结

  • 使用 Syslab 原生 Julia 运行时完成数值求解和结果输出
  • 同一个模型同时覆盖基础实现与高性能实现
  • 用 TyPlot 直接生成图像文件,形成完整可视化闭环
  • 通过稳定性检查、NaN/Inf 检查和结果落盘提升案例可复现性
  • 适合作为 MWORKS / Syslab 科学计算能力展示 demo

版本说明

V0.0.1,2026-05-26 10:25

  • 初始版本

使用许可

本模型库版权由MoHub版权所有,未经许可,不得用于商业用途。