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)+(ρuu)=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] (ρuu)=ρ(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} (ρuu)=ρ(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} ρ(tu+(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方程形式。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/79423.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Leetcode 1504. 统计全 1 子矩形

1.题目基本信息 1.1.题目描述 给你一个 m x n 的二进制矩阵 mat ,请你返回有多少个 子矩形 的元素全部都是 1 。 1.2.题目地址 https://leetcode.cn/problems/count-submatrices-with-all-ones/description/ 2.解题方法 2.1.解题思路 单调栈 时间复杂度&…

【Docker】运行错误提示 unknown shorthand flag: ‘d‘ in -d ----详细解决方法

使用docker拉取Dify的时候遇到错误 错误提示 unknown shorthand flag: d in -dUsage: docker [OPTIONS] COMMAND [ARG...]错误原因解析 出现 unknown shorthand flag: d in -d 的根本原因是 Docker 命令格式与当前版本不兼容,具体分为以下两种情况: 新…

华为OD机试真题——攀登者2(2025A卷:200分)Java/python/JavaScript/C++/C语言/GO六种最佳实现

2025 A卷 200分 题型 本文涵盖详细的问题分析、解题思路、代码实现、代码详解、测试用例以及综合分析; 并提供Java、python、JavaScript、C、C语言、GO六种语言的最佳实现方式! 2025华为OD真题目录全流程解析/备考攻略/经验分享 华为OD机试真题《攀登者2…

qt硬件与软件通信中 16进制与十进制转化

1. 首先上代码, 这是在qt语言上的操作 截取 01 03 0C 00 00 00 00 00 00 00 0C 00 0C 00 0C 93 70 这串16进制数值进行处理,截取这样一段内容 00 0C 00 0C 00 0C 字节数组转字符串。从bytearray数组转换为string. QString CustomTcpSocket::recieveInfo() {QByteArr…

图形变换算法

一、学习目的 (1)掌握多面体的存储方法。 (2)掌握图形的几何变换及投影变换。 (3)掌握三维形体不同投影方法的投影图的生成原理。 (4)掌握多面体投影图绘制的编程方法。 二、学…

【JAVAFX】自定义FXML 文件存放的位置以及使用

情况 1:FXML 文件与调用类在同一个包中(推荐) 假设类 MainApp 的包是 com.example,且 FXML 文件放在 resources/com/example 下: 项目根目录 ├── src │ └── sample │ └── Main.java ├── src/s…

Ubuntu20.04安装企业微信

建议先去企业微信官网看一下有没有linux版本,没有的话在按如下方式安装,不过现在是没有的。 方案 1、使用docker容器 2、使用deepin-wine 3、使用星火应用商店 4. 使用星火包deepin-wine 5、使用ukylin-wine 本人对docker不太熟悉,现…

CSS appearance 属性:掌握UI元素的原生外观

在现代网页设计中,为了达到一致的用户体验,我们有时需要让HTML元素模仿操作系统的默认控件样式。CSS中的appearance属性提供了一种简便的方式来控制这些元素是否以及如何显示其默认外观。本文将详细介绍appearance属性,并通过实际代码示例来展…

十四、C++速通秘籍—函数式编程

目录 上一章节: 一、引言 一、函数式编程基础 三、Lambda 表达式 作用: Lambda 表达式捕获值的方式: 注意: 四、函数对象 函数对象与普通函数对比: 五、函数适配器 1、适配普通函数 2、适配 Lambda 表达式 …

大模型Rag-指令调度

本文主要记录根据用户问题指令,基于大模型做Rag,匹配最相关描述集进行指令调度,可用于匹配后端接口以及展示答案及图表等。 1.指令查询处理逻辑 1.实现思路 指令识别:主要根据用户的问题q计算与指令描述集is [i0, ... , im]和指…

音视频学习 - ffmpeg 编译与调试

编译 环境 macOS Ventrua 13.4 ffmpeg 7.7.1 Visual Studio Code Version: 1.99.0 (Universal) 操作 FFmpeg 下载源码 $ cd ffmpeg-x.y.z $ ./configure nasm/yasm not found or too old. Use --disable-x86asm for a crippled build.If you think configure made a mistake…

golang-常见的语法错误

https://juejin.cn/post/6923477800041054221 看这篇文章 Golang 基础面试高频题详细解析【第一版】来啦~ 大叔说码 for-range的坑 func main() { slice : []int{0, 1, 2, 3} m : make(map[int]*int) for key, val : range slice {m[key] &val }for k, v : …

音视频之H.265/HEVC预测编码

H.265/HEVC系列文章: 1、音视频之H.265/HEVC编码框架及编码视频格式 2、音视频之H.265码流分析及解析 3、音视频之H.265/HEVC预测编码 预测编码是视频编码中的核心技术之一。对于视频信号来说,一幅图像内邻近像素之间有着较强的空间相关性,相邻图像之…

基于政务问答的dify接口请求测试

Dify 的智能体后端服务 API 为开发者提供便捷方式,能让前端应用直接调用大语言模型能力。在请求时,需先前往应用左侧导航的 “API Access” 部分,在此可查看文档和管理访问凭据。为保障安全,API 密钥应通过后端调用,避…

VMware Workstation 保姆级 Linux(CentOS) 创建教程(附 iso)

文章目录 一、下载二、创建 一、下载 CentOS-7.9-x86_64-DVD-2009.iso 二、创建 VMware Workstation 保姆级安装教程(附安装包) VMware Workstation 保姆级安装教程(附安装包) VMware Workstation 保姆级安装教程(附安装包)

扩增子分析|基于R语言microeco包进行微生物群落网络分析(network网络、Zi-Pi关键物种和subnet子网络图)

一、引言 microeco包是福建农林大学姚敏杰教授团队开发的扩增子测序集成分析。该包综合了扩增子测序下游分析的多种功能包括群落组成、多样性、网络分析、零模型等等。通过简单的几行代码可实现复杂的分析。因此,microeco包发表以来被学界广泛关注,截止2…

GO语言-数据类型

文章目录 变量定义1. 整数类型2. 浮点类型3. 字符类型4. 布尔类型5. 字符串类型5.1 字符串的本质5.2 常用字符串处理函数(strings包)5.3 修改字符串的方式 6. 数据默认值7. 类型转换 变量定义 代码如下: package mainimport "fmt"var i1 1000 var i2 i…

线性代数 | 知识点整理 Ref 2

注:本文为 “线性代数 | 知识点整理” 相关文章合辑。 因 csdn 篇幅合并超限分篇连载,本篇为 Ref 2。 略作重排,未整理去重。 图片清晰度限于引文原状。 如有内容异常,请看原文。 【数学】线性代数知识点总结 阿巴 Jun 于 2024-…

JavaSE学习(前端初体验)

文章目录 前言一、准备环境二、创建站点(创建一个文件夹)三、将站点部署到编写器中四、VScode实用小设置五、案例展示 前言 首先了解前端三件套:HTML、CSS、JS HTML:超文本标记语言、框架层、描述数据的; CSS&#xf…

java + spring boot + mybatis 通过时间段进行查询

前端传来的只有日期内容&#xff0c;如&#xff1a;2025-04-17 需要在日期内容的基础上补充时间部分&#xff0c;代码示例&#xff1a; /*** 日志查询&#xff08;分页查询&#xff09;* param recordLogQueryDTO 查询参数对象* return 日志列表*/Overridepublic PageBean<…