有限体积法
字数 2454 2025-12-15 06:01:51

有限体积法

有限体积法是一种用于计算流体动力学和计算传热学等领域的数值方法,其核心思想是直接在物理空间的离散控制体积上,对积分形式的守恒定律进行求解。

第一步:理解核心物理原理——积分形式的守恒律
有限体积法的基础是物理守恒定律(如质量守恒、动量守恒、能量守恒)。这些定律在连续介质中的任意一个控制体积上可以表述为积分形式:

\[\frac{d}{dt} \int_{V} \rho \phi , dV + \oint_{A} \vec{F} \cdot \vec{n} , dA = \int_{V} S_{\phi} , dV \]

这个方程的含义是:

  1. 第一项:控制体积 \(V\) 内物理量 \(\phi\)(如质量、动量分量、能量)随时间的变化率。
  2. 第二项:通过控制体积表面 \(A\) 的净通量 \(\vec{F}\)(包含了对流和扩散)。\(\vec{n}\) 是表面外法向单位矢量。
  3. 第三项:控制体积内部的源项 \(S_{\phi}\)(如重力、热源)。
    该方法的核心优势在于,对任意形状的控制体积积分时,只要净通量计算准确,就能严格保证离散层面上的局部守恒性,这是它与有限差分法的本质区别。

第二步:计算域离散——划分控制体积
首先,将整个计算域划分为许多互不重叠的、连续的控制体积,也称为“网格单元”或“有限体积”。每个控制体积围绕着一个节点。节点可以位于控制体积的中心(最常见,称为单元中心型格式)或顶点上(顶点中心型)。
例如,在一个二维矩形域中,我们用纵横交错的线将其分割成许多小矩形。每个小矩形就是一个控制体积,其几何中心就是该体积的节点。所有控制体积的集合覆盖了整个计算域,且没有缝隙和重叠。

第三步:方程离散——将积分方程转化为代数方程
这是最关键的一步。我们针对每一个控制体积 \(i\),将上面的积分守恒方程进行近似。

  1. 体积分项离散:假设物理量在控制体积内均匀分布,用节点值 \(\phi_i\) 代表整个体积的平均值。

\[ \int_{V_i} \rho \phi , dV \approx (\rho \phi)_i V_i \]

时间导数项则通常采用有限差分格式(如欧拉格式)处理。
  1. 面积分项离散(通量计算):这是有限体积法的核心难点。面积分项需要计算通过该控制体积所有表面的总通量。对于每个表面 \(f\)(界面),我们需要知道通过它的通量 \(\vec{F}_f \cdot \vec{n}_f A_f\),其中 \(A_f\) 是界面面积。
    • 通量 \(\vec{F}\) 通常包含对流项\(\rho \phi \vec{v}\))和扩散项(如 \(- \Gamma \nabla \phi\))。
    • 关键问题:节点上的物理量 \(\phi\) 及其梯度 \(\nabla \phi\) 是已知的(或待求的),但界面上这些量是未知的,需要用相邻节点的值来构造或插值。这就是引入数值格式的地方。
    • 例如,对于扩散通量,需要近似界面上的梯度 \(\nabla \phi_f\)。对于结构网格,常用中心差分格式。
    • 对于对流通量,需要近似界面上的 \(\phi_f\)。这里有多种格式选择,如一阶迎风(稳定但耗散大)、中心差分(可能不稳定)、二阶迎风或高阶格式(如QUICK),它们是在精度和稳定性之间的权衡。
  2. 源项离散:通常将源项线性化为 \(S_{\phi} = S_c + S_p \phi_i\),并积分到控制体积上。
    将所有表面的通量和源项加起来,对每个控制体积 \(i\),我们最终得到一个关于其自身及其邻居节点上未知量 \(\phi\) 的代数方程:

\[a_i \phi_i + \sum_{nb} a_{nb} \phi_{nb} = b_i \]

其中 \(nb\) 表示所有相邻节点,\(a\) 为系数,\(b\) 为源项贡献。

第四步:求解代数方程组与实施流程
将所有控制体积的离散方程组合起来,就形成了一个大型的稀疏线性代数方程组:

\[[A] \{\phi\} = \{B\} \]

其中 \([A]\) 是系数矩阵,\(\{\phi\}\) 是所有节点未知量组成的列向量,\(\{B\}\) 是源项列向量。

  1. 初始化:给定流场的初始猜测值。
  2. 系数计算:根据当前的流场值,计算所有界面的通量,组装系数矩阵 \([A]\) 和源项 \(\{B\}\)
  3. 方程求解:使用迭代法(如高斯-赛德尔、共轭梯度法)或直接法求解这个方程组,得到新的 \(\{\phi\}\) 值。
  4. 非线性与耦合处理:对于复杂的流动(如纳维-斯托克斯方程),方程本身是非线性的,且多个方程(动量、连续性)相互耦合。常用分离式解法(如SIMPLE算法系列)逐一求解各变量,并通过迭代直至解收敛。也可采用耦合式解法同时求解所有变量。
  5. 收敛判断:检查物理量的残差是否小于设定的阈值,以及是否满足全局守恒性。若未收敛,则用新解返回第2步继续迭代。

第五步:方法特点与总结

  • 核心优势严格的守恒性。无论网格粗细,通量进出每个控制体积都是平衡的,这保证了物理上的可靠性,特别适合涉及激波、间断等强梯度的流动问题。
  • 几何灵活性:可以处理复杂的几何形状,尤其是使用非结构网格(如三角形、四面体单元)时。
  • 主要挑战
    • 高阶精度实现较复杂:在非结构网格上构造高于二阶的精度格式比有限差分法和谱方法更困难。
    • 内存与计算量:对于非结构网格,数据结构和对邻居的寻址比结构网格更复杂。
      有限体积法因其坚实的物理基础和良好的几何适应性,已成为计算流体力学和计算传热学领域最主流、应用最广泛的数值方法
有限体积法 有限体积法是一种用于计算流体动力学和计算传热学等领域的数值方法,其核心思想是直接在物理空间的离散控制体积上,对积分形式的守恒定律进行求解。 第一步:理解核心物理原理——积分形式的守恒律 有限体积法的基础是物理守恒定律(如质量守恒、动量守恒、能量守恒)。这些定律在连续介质中的任意一个 控制体积 上可以表述为积分形式: \[ \frac{d}{dt} \int_ {V} \rho \phi , dV + \oint_ {A} \vec{F} \cdot \vec{n} , dA = \int_ {V} S_ {\phi} , dV \] 这个方程的含义是: 第一项 :控制体积 \( V \) 内物理量 \( \phi \)(如质量、动量分量、能量)随时间的变化率。 第二项 :通过控制体积表面 \( A \) 的净通量 \( \vec{F} \)(包含了对流和扩散)。\( \vec{n} \) 是表面外法向单位矢量。 第三项 :控制体积内部的源项 \( S_ {\phi} \)(如重力、热源)。 该方法的核心优势在于,对任意形状的控制体积积分时,只要净通量计算准确,就能 严格保证离散层面上的局部守恒性 ,这是它与有限差分法的本质区别。 第二步:计算域离散——划分控制体积 首先,将整个计算域划分为许多互不重叠的、连续的 控制体积 ,也称为“网格单元”或“有限体积”。每个控制体积围绕着一个 节点 。节点可以位于控制体积的中心(最常见,称为 单元中心型 格式)或顶点上( 顶点中心型 )。 例如,在一个二维矩形域中,我们用纵横交错的线将其分割成许多小矩形。每个小矩形就是一个控制体积,其几何中心就是该体积的节点。所有控制体积的集合覆盖了整个计算域,且没有缝隙和重叠。 第三步:方程离散——将积分方程转化为代数方程 这是最关键的一步。我们针对 每一个 控制体积 \( i \),将上面的积分守恒方程进行近似。 体积分项离散 :假设物理量在控制体积内均匀分布,用节点值 \( \phi_ i \) 代表整个体积的平均值。 \[ \int_ {V_ i} \rho \phi , dV \approx (\rho \phi)_ i V_ i \] 时间导数项则通常采用有限差分格式(如欧拉格式)处理。 面积分项离散(通量计算) :这是有限体积法的核心难点。面积分项需要计算通过该控制体积所有表面的总通量。对于每个表面 \( f \)(界面),我们需要知道通过它的通量 \( \vec{F}_ f \cdot \vec{n}_ f A_ f \),其中 \( A_ f \) 是界面面积。 通量 \( \vec{F} \) 通常包含 对流项 (\( \rho \phi \vec{v} \))和 扩散项 (如 \( - \Gamma \nabla \phi \))。 关键问题 :节点上的物理量 \( \phi \) 及其梯度 \( \nabla \phi \) 是已知的(或待求的),但界面上这些量是未知的,需要用相邻节点的值来 构造或插值 。这就是引入数值格式的地方。 例如,对于扩散通量,需要近似界面上的梯度 \( \nabla \phi_ f \)。对于结构网格,常用 中心差分 格式。 对于对流通量,需要近似界面上的 \( \phi_ f \)。这里有多种格式选择,如 一阶迎风 (稳定但耗散大)、 中心差分 (可能不稳定)、 二阶迎风 或高阶格式(如QUICK),它们是在精度和稳定性之间的权衡。 源项离散 :通常将源项线性化为 \( S_ {\phi} = S_ c + S_ p \phi_ i \),并积分到控制体积上。 将所有表面的通量和源项加起来,对每个控制体积 \( i \),我们最终得到一个关于其自身及其邻居节点上未知量 \( \phi \) 的代数方程: \[ a_ i \phi_ i + \sum_ {nb} a_ {nb} \phi_ {nb} = b_ i \] 其中 \( nb \) 表示所有相邻节点,\( a \) 为系数,\( b \) 为源项贡献。 第四步:求解代数方程组与实施流程 将所有控制体积的离散方程组合起来,就形成了一个大型的稀疏线性代数方程组: \[ [ A ] \{\phi\} = \{B\} \] 其中 \( [ A ] \) 是系数矩阵,\( \{\phi\} \) 是所有节点未知量组成的列向量,\( \{B\} \) 是源项列向量。 初始化 :给定流场的初始猜测值。 系数计算 :根据当前的流场值,计算所有界面的通量,组装系数矩阵 \( [ A ] \) 和源项 \( \{B\} \)。 方程求解 :使用迭代法(如高斯-赛德尔、共轭梯度法)或直接法求解这个方程组,得到新的 \( \{\phi\} \) 值。 非线性与耦合处理 :对于复杂的流动(如纳维-斯托克斯方程),方程本身是非线性的,且多个方程(动量、连续性)相互耦合。常用 分离式解法 (如SIMPLE算法系列)逐一求解各变量,并通过迭代直至解收敛。也可采用 耦合式解法 同时求解所有变量。 收敛判断 :检查物理量的残差是否小于设定的阈值,以及是否满足全局守恒性。若未收敛,则用新解返回第2步继续迭代。 第五步:方法特点与总结 核心优势 : 严格的守恒性 。无论网格粗细,通量进出每个控制体积都是平衡的,这保证了物理上的可靠性,特别适合涉及激波、间断等强梯度的流动问题。 几何灵活性 :可以处理复杂的几何形状,尤其是使用非结构网格(如三角形、四面体单元)时。 主要挑战 : 高阶精度实现较复杂 :在非结构网格上构造高于二阶的精度格式比有限差分法和谱方法更困难。 内存与计算量 :对于非结构网格,数据结构和对邻居的寻址比结构网格更复杂。 有限体积法因其坚实的物理基础和良好的几何适应性,已成为计算流体力学和计算传热学领域 最主流、应用最广泛的数值方法 。