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方程形式。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/79423.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/79423.shtml
英文地址,請注明出處:http://en.pswp.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<…