先记录每一帧的位移
下标 i 只是第几个采样点;相邻时刻相隔相同的 Δt。
CFD · 从时间采样理解离散化
先用位移、速度和加速度理解原函数、一阶导数、二阶导数。拖动时间步 Δt,看连续曲线怎样变成计算机里的数值;空间导数与有限体积实验可在下方展开。
先看时间,再理解 CFD
把桥梁某一点的位移记作 f(t)。计算机先存下一个个时刻的数值,再用相邻数值相减、除以时间步来近似导数。
三张图共用时间轴。平均速度画在各自的时间区间内;二阶差分画在中间时刻 ti。
下标 i 只是第几个采样点;相邻时刻相隔相同的 Δt。
右式是 [ti, ti+1] 内的平均速度 v̄+,用来近似 ti 的瞬时速度;这是前向一阶差分。
前段 v̄− = (fi−fi−1)/Δt;两段区间中点也相隔 Δt,所以 (v̄+−v̄−)/Δt 就得到上式。
公式条件:屏幕读数保留三位小数,计算使用未舍入的值。以上采用均匀时间步,二阶式使用 ti 前后各一点,是中心二阶差分。函数足够光滑时,前向一阶差分的截断误差为 O(Δt),中心二阶差分为 O(Δt²)。匀加速例子的二阶差分恰好精确;切换“振动”再缩小 Δt,更容易看出近似误差。
固定流场里的一个位置,每隔 Δt 记录当地风速 u,就能用 [u(t+Δt)−u(t)]/Δt 近似 ∂u/∂t。若 u 本身是风速,它的时间导数单位就是 m/s²;本实验先用位移,是为了借助熟悉的“速度、加速度”理解同一种差分运算。
以后只需把“相邻时刻、Δt”换成“同一时刻的相邻位置、Δx”,就得到空间差分的类似形式。理解时间差分后,再展开空间导数。
先得到两段一阶斜率;它们所在的两个半点之间,相距 Δx。
真实流场有 x、y、z、t 四个自变量。 本页取其中一个空间方向,把 φ(x,t) 画成“x—时间—数值”曲面;竖直高度是 φ,不是第三个空间坐标。固定 t 看空间变化;固定 x 看时间变化。
在均匀网格、常扩散系数 Γ 下,右、左面梯度分别近似为上面的两段斜率。因此 Γ(me−mw)/Δx 恰好变成 Γ(φE−2φP+φW)/Δx²。有限差分直接近似导数;有限体积先积分守恒、再近似面通量,此时得到相同的内部模板。
橙色为中心格式,青色为迎风格式,深蓝为解析解;竖线标记选中单元。
二阶中心格式趋近斜率 −2;迎风格式趋近 −1。未进入渐近区时,不能只凭两组网格判定阶次。
SELECTED CONTROL VOLUME
| 项(正 x 为正) | 西面 w | 东面 e |
|---|---|---|
| 对流 Fφf | ||
| 扩散 −Γ∂φ/∂x | ||
| 总通量 J |
FROM FLUX TO MATRIX
// 正 x 方向总通量;每个内部面只计算一次 J[f] = F * phiFace[f] - Gamma * gradient[f]; // 单元积分守恒:右出减左入 = 体源项 A * phi = sourceIntegral; // 边界在面上,中心到边界的距离为 dx / 2 boundaryGradient = (phiP - phiBoundary) / (dx / 2);
网页的 physics.js 直接组装三对角线性方程,并独立重算通量与残差。小残差表示离散方程解得准确,不能代替网格误差检验。
DOMAIN
读图之前
PeΔ 不是 Re。 本页 PeΔ = FΔx/Γ 衡量网格尺度上的对流与扩散;只有输运动量且 Γ = μ 时,才有 PeΔ = ReL Δx/L。
数值振荡不是涡脱落。 中心格式在 |PeΔ| > 2 时失去正系数保证;曲线越界可以来自离散误差,不能据此判断真实流动进入湍流。
有界不等于准确。 一阶迎风会增加数值扩散。应同时检查守恒、解析或基准比较、网格与时间步敏感性。
课堂任务 · 约 10 分钟