# heatTransfer-serial **Repository Path**: xiaowei.guo/heat-transfer-serial ## Basic Information - **Project Name**: heatTransfer-serial - **Description**: No description available - **Primary Language**: Unknown - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 20 - **Created**: 2025-11-12 - **Last Updated**: 2025-12-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 热传导模拟串行程序 ## 项目简介 本项目是一个基于显式有限差分法的热传导过程串行模拟程序,用于模拟固体材料中的二维热传导现象。程序通过数值计算方法求解热传导方程,模拟热量在材料中的扩散过程,并支持将计算结果以VTK格式输出,便于后续可视化分析。 ## 物理模型 程序模拟的是一个二维平面内的热传导过程,物理模型基于傅里叶热传导定律,通过求解热传导偏微分方程: ∂T/∂t = α(∂²T/∂x² + ∂²T/∂y²) 其中: - T为温度 - t为时间 - α为热扩散系数(α = λ/(ρc)) - λ为热导率 - ρ为密度 - c为比热容 ## 边界条件 - 左边界(i=0):恒温热源,温度保持在373K - 右边界(i=NX-1):恒温边界,温度保持在293K - 上边界(j=0):恒温边界,温度保持在293K - 下边界(j=NY-1):恒温边界,温度保持在293K ## 编译运行 ### 编译环境 - C++编译器(g++) - 支持C++11标准 ### 编译步骤 1. 克隆或下载项目代码到本地 2. 进入项目根目录 3. 执行make命令编译: ```Bash make ``` 4. 编译成功后会生成可执行文件`heat_serial` ### 运行程序 ```Bash ./heat_serial ``` ## 程序输出 1. 控制台输出: - 程序运行信息(网格大小、时间步长等) - 每50步迭代的中间行温度信息 - 收敛判断信息 - 程序总运行时间 2. VTK文件输出: - 每500步迭代输出一个VTK文件(`heat_serial_iterXXX.vtk`) - 最终结果输出为`heat_serial_final.vtk` - VTK文件可使用Paraview等可视化软件打开查看 ## 主要参数说明 参数定义在`include/heat_transfer.h`文件中: - 物理参数: - `RHO`:材料密度,单位kg/m³(默认7850,钢的密度) - `LAMBDA`:热导率,单位W/(m·K)(默认50,钢的热导率) - `C`:比热容,单位J/(kg·K)(默认460,钢的比热容) - 温度参数: - `T_LEFT`:左边界温度,单位K(默认373) - `T_OTHER`:其他边界温度,单位K(默认293) - 网格参数: - `NX`:x方向网格点数(默认200) - `NY`:y方向网格点数(默认200) - `DX`:x方向网格步长,单位m(默认0.01) - `DY`:y方向网格步长,单位m(默认0.01) - 计算控制参数: - `MAX_ITER`:最大迭代步数(默认20000) - `TOL`:收敛判断阈值(默认1e-4) ## 核心算法说明 1. **时间步长计算**:根据二维热传导稳定性条件计算合适的时间步长dt,确保数值计算的稳定性 2. **温度场更新**:采用显式有限差分格式计算温度场的更新,公式为: ```Plain Text T_curr[j][i] = T_prev[j][i] + coeff_x*(T_prev[j][i+1]-2*T_prev[j][i]+T_prev[j][i-1]) + coeff_y*(T_prev[j+1][i]-2*T_prev[j][i]+T_prev[j-1][i]) ``` 3. **收敛判断**:通过计算相邻时间步温度场的最大差异来判断是否达到稳态,如果最大差异小于设定阈值,则认为已经收敛 ## 清理编译产物 ```Bash make clean ``` 该命令会删除可执行文件、VTK输出文件和核心转储文件。