CFD中的动量方程非守恒形式详解

在计算流体力学(CFD)中,动量方程可以写成守恒形式非守恒形式 ,两者在数学上等价,但推导方式和应用场景不同。以下是对非守恒形式的详细解释:


1. 动量方程的守恒形式

首先回顾守恒形式的动量方程(以不可压缩流体为例):
∂ ( ρ u ) ∂ t + ∇ ⋅ ( ρ u ⊗ u ) = − ∇ p + ∇ ⋅ τ + f \frac{\partial (\rho \mathbf{u})}{\partial t} + \nabla \cdot (\rho \mathbf{u} \otimes \mathbf{u}) = -\nabla p + \nabla \cdot \boldsymbol{\tau} + \mathbf{f} ∂t∂(ρu)+∇⋅(ρu⊗u)=−∇p+∇⋅τ+f

其中:

  • (\rho) 为密度,(\mathbf{u}) 为速度矢量,
  • (p) 为压力,(\boldsymbol{\tau}) 为粘性应力张量,
  • (\mathbf{f}) 为体积力(如重力)。

2. 非守恒形式的推导

非守恒形式通过对守恒形式展开并利用连续性方程得到。步骤如下:

(1) 展开守恒形式的对流项

对流项 (\nabla \cdot (\rho \mathbf{u} \otimes \mathbf{u})) 可以展开为:
∇ ⋅ ( ρ u ⊗ u ) = ρ ( u ⋅ ∇ ) u + u [ ∇ ⋅ ( ρ u ) ] \nabla \cdot (\rho \mathbf{u} \otimes \mathbf{u}) = \rho (\mathbf{u} \cdot \nabla) \mathbf{u} + \mathbf{u} \left[ \nabla \cdot (\rho \mathbf{u}) \right] ∇⋅(ρu⊗u)=ρ(u⋅∇)u+u[∇⋅(ρu)]

(2) 代入连续性方程

连续性方程为:
∂ ρ ∂ t + ∇ ⋅ ( ρ u ) = 0 \frac{\partial \rho}{\partial t} + \nabla \cdot (\rho \mathbf{u}) = 0 ∂t∂ρ+∇⋅(ρu)=0

若流动为不可压缩 ((\nabla \cdot \mathbf{u} = 0))或定常 ((\frac{\partial \rho}{\partial t} = 0)),则 (\nabla \cdot (\rho \mathbf{u}) = 0),此时对流项简化为:
∇ ⋅ ( ρ u ⊗ u ) = ρ ( u ⋅ ∇ ) u \nabla \cdot (\rho \mathbf{u} \otimes \mathbf{u}) = \rho (\mathbf{u} \cdot \nabla) \mathbf{u} ∇⋅(ρu⊗u)=ρ(u⋅∇)u

(3) 得到非守恒形式

将展开后的对流项代回守恒形式,并假设密度恒定((\rho) 为常数),动量方程变为:
ρ ( ∂ u ∂ t + ( u ⋅ ∇ ) u ) = − ∇ p + ∇ ⋅ τ + f \rho \left( \frac{\partial \mathbf{u}}{\partial t} + (\mathbf{u} \cdot \nabla) \mathbf{u} \right) = -\nabla p + \nabla \cdot \boldsymbol{\tau} + \mathbf{f} ρ(∂t∂u+(u⋅∇)u)=−∇p+∇⋅τ+f

这就是非守恒形式的动量方程 (又称Lagrangian形式物质导数形式)。


3. 关键特点

  1. 物质导数

    方程左侧的 (\frac{D\mathbf{u}}{Dt} = \frac{\partial \mathbf{u}}{\partial t} + (\mathbf{u} \cdot \nabla) \mathbf{u}) 表示速度的物质导数,描述流体微元的加速度。

  2. 适用条件

    • 适用于不可压缩流动或密度变化可忽略的流动。
    • 若密度变化显著(如可压缩流动),需保留守恒形式以确保数值稳定性。
  3. 物理意义

    非守恒形式直接体现牛顿第二定律((F=ma)),即流体微元的加速度由压力梯度、粘性力和体积力共同驱动。


4. 与守恒形式的对比

特性 非守恒形式 守恒形式
数学基础 基于物质导数推导 基于控制体的积分守恒定律
数值稳定性 对可压缩流可能不稳定 更适合可压缩流和高马赫数问题
计算效率 对流项计算更简单 需要处理通量项(如 (\rho u^2))
适用场景 不可压缩流、低马赫数流动 可压缩流、激波捕捉

5. 典型应用示例

  • 不可压缩流动(如泊肃叶流动、涡流模拟):常用非守恒形式,因 (\nabla \cdot \mathbf{u} = 0) 天然满足。
  • 可压缩流动(如超音速飞行器模拟):必须使用守恒形式以正确捕捉激波和密度突变。

6. 注意事项

  • 数值离散 :非守恒形式在对流项离散时需注意数值耗散,可能需高阶格式(如WENO)减少误差。
  • 边界条件:非守恒形式的压力边界条件处理可能更复杂,需与连续性方程耦合求解。

通过理解非守恒形式的推导和物理意义,可以更灵活地选择适合具体问题的CFD方程形式。

相关推荐
weixin_428498499 小时前
解决 Ubuntu 下 VTune 无法收集 CPU 硬件时间计数数据的问题
hpc
weixin_428498494 天前
在OpenFOAM中自定义动态变化的边界条件
c++·hpc
weixin_428498494 天前
在AMGCL中使用多个GPU和多个计算节点求解大规模稀疏矩阵方程
hpc
weixin_428498497 天前
在Fortran程序中嵌入Lua解释器
lua·hpc
weixin_428498498 天前
使用MPI-IO并行读写HDF5文件
hpc
weixin_428498499 天前
AMGCL库的Backends及使用示例
hpc
weixin_428498499 天前
在AMGX中使用MPI加载自定义分布式矩阵和向量
hpc
_考不上研究生不改名11 天前
【完美解决】VSCode连接HPC节点,已配置密钥却还是提示需要输入密码
linux·服务器·vscode·远程连接·hpc·超算集群
FS_Marking24 天前
飞速(FS)InfiniBand解决方案助力领先科技公司网络升级
hpc·400g·800g