【牛体力学】 前置:场论及张量
封面图 ID:
0x00 引子
由于研究方向的改变,因此需要重点学习流体力学相关的知识。出于知识分享及整理的目的进行相关的整理,以求日后备用。
当前阶段主要参考资料:
- 钱宁, 万兆惠. 泥沙运动力学 [M]. 北京: 科学出版社, 1983.
- 吴望一. 流体力学 [M]. 北京: 北京大学出版社, 1982.
- 张兆顺, 崔桂香. 流体力学 (第 3 版) [M]. 北京: 清华大学出版社, 2015.
- 邵学军, 王兴奎. 河流动力学概论 [M]. 北京: 清华大学出版社, 2005.
- 谢树艺. 矢量分析与场论 (第 4 版) [M]. 北京: 高等教育出版社, 2012.
0x01 场论
什么是场?我们其实很早就知道电场、磁场这种概念,但是流体力学中的场,我们应该从欧拉场和拉格朗日观点来说(以后的文章我们会进行讨论)。
在物理里,场(英语:Field)是一个以时空为变数的物理量。空间中弥漫着的基本相互作用被命名为“场”。
维基百科
可以很容易就能得出:以往的各种变量均可以利用ϕ=f(x,y,z,t)
来表示,也即仅考虑某一时间内,各个变量在空间的分布,而不是追踪各个粒子在空间的变化。通过这种转换,可以避免研究于单个粒子并非整体研究。
我们主要讨论的是标量场(温度场)和矢量场(速度场)。
场中的矢量线定义为:场中的线,每一点的切向方向均与该点矢量方向重合,用数学公式表示,记为:a×dr=0。这个定义很重要,在之后的流线、涡线都用得上。
0x01.1 方向导数及梯度
在讨论非均匀场的时候,往往需要知道其不均匀性该如何表达,因此引入方向导数的概念,也即场内某个量沿着指定曲线方向的变化率。
设场中某点 M(x,y,z),沿某一方向 s(方向余弦为 cosα,cosβ,cosγ)的变化率,其数学定义为:
∂s∂ϕ=∂x∂ϕcosα+∂y∂ϕcosβ+∂z∂ϕcosγ
为了更紧凑地表达这一概念,我们引入梯度 (Gradient)。梯度是一个矢量,记作 grad ϕ 或 ∇ϕ。
梯度的物理意义非常关键:
- 方向:指向标量场 ϕ 增长最快的方向(即法线方向 n)。
- 大小:等于该方向上的最大变化率。
利用梯度,方向导数可以写成点积形式:
∂s∂ϕ=∇ϕ⋅s∘
0x01.2 散度及奥——高定理
如果说梯度是描述标量场的最大变化率,那么散度 (Divergence) 则是描述矢量场在某一点的“通量源”强度。
对于矢量场 A,其散度定义为单位体积内的通量:
div A=∇⋅A=∂x∂Ax+∂y∂Ay+∂z∂Az
物理意义:
- div A>0:该点为源 (Source),有流体流出。
- div A<0:该点为汇 (Sink),有流体汇入。
- div A=0:无源无汇。对于不可压缩流体(如水),速度场的散度为零(div u=0),这即是连续性方程的物理本质。
奥斯特罗格拉茨基——高斯定理 (Gauss-Ostrogradsky Theorem): 该定理建立了体积分与面积分之间的联系。它表明:矢量场穿过闭合曲面 S 的通量,等于该矢量场的散度在闭合曲面所包围体积 V 内的积分。
∭V(div A)dV=∬SA⋅dS
0x01.3 旋度及斯托克斯公式
流体运动除了平移和变形,还有旋转。旋度 (Curl) 就是描述矢量场微团旋转强度的物理量。
对于矢量场 A,旋度是一个矢量,记为 rot A 或 curl A,亦可用算子表示为 ∇×A。
其直角坐标表达式为行列式形式:
curl A=∇×A=∣∣∣∣∣∣∣i∂x∂Axj∂y∂Ayk∂z∂Az∣∣∣∣∣∣∣
斯托克斯公式 (Stokes’ Theorem): 该定理建立了面积分与线积分之间的联系。它表明:矢量场沿闭合曲线 L 的环量,等于该矢量场的旋度在以 L 为边界的任意曲面 S 上的通量。
∮LA⋅dr=∬S(curl A)⋅dS
0x02 哈密顿算子
在流体力学的推导中,如果不引入简化的算子符号,公式将会变得极其冗长且难以阅读。哈密顿算子(Hamiltonian Operator,又称 Nabla 算子)∇ 是最强有力的工具。
0x02.1 哈密顿算子含义
哈密顿算子 ∇ 在直角坐标系下的定义为:
∇=i∂x∂+j∂y∂+k∂z∂
在这里需要额外强调它具有双重性质:
- 矢量性:它可以被视为一个矢量,参与点积(⋅)和叉积(×)运算。
- 微分性:它是一个偏微分算子,作用于其右侧的函数。
注意: 运算顺序至关重要。例如 ∇⋅A 是散度(标量),而 A⋅∇ 是一个算子(对流算子),两者截然不同。
0x02.2 一些公式的哈密顿算子引入
梯度: grad ϕ=∇ϕ
散度: div A=∇⋅A
旋度: rot A=∇×A
奥—高定理:∭V(∇⋅A),dV=∬SA⋅dS
斯托克斯公式:∮LA⋅dr=∬S(∇×A)⋅dS
0x02.3 拉普拉斯符号
在流体力学方程(尤其是 N-S 方程)中,我们还会频繁遇到以下两种复杂运算,必须在此处进行定义。
拉普拉斯算子 (Laplacian)
当 ∇ 对标量场先求梯度,再求散度时,即 ∇⋅(∇ϕ),我们得到了拉普拉斯算子 ∇2(有时也写作 Δ):
∇2=∇⋅∇=∂x2∂2+∂y2∂2+∂z2∂2
对流算子 (Convective Operator)
这是流体力学中最具特色的算子,来源于流体质点加速度的欧拉描述(物质导数)。 表达式为 (u⋅∇),其中 u 为速度矢量。
展开来看,它是一个标量算子,作用于矢量:
(u⋅∇)=ux∂x∂+uy∂y∂+uz∂z∂
当它作用于速度本身时 (u⋅∇)u,即构成了 N-S 方程中著名的非线性对流项。
0x03 张量
我们简单写一个流体力学中的常用公式:不可压缩流体的质量守恒方程(微分形式):
∂x∂u+∂y∂v+∂z∂w=0
用哈密顿算子表示可以简化为:
∇⋅U=0
这已经是较为简单的写法,但是往往还会遇到比较复杂的 xyz 三个变量的梯度,那么这样的势必会出现 3 * 3 = 9 个变量,如果再使用标量书写将会非常麻烦,因此需要引入新的书写方式。
0x03.1 张量定义
简单理解就是:0 阶张量是标量;1 阶张量是向量;2 阶张量是矩阵;3 阶及以上张量在流体力学中很少使用。
采用更加标准的定义则为:
设在直角坐标系 Ox1x2x3 中,有 3n 个分量组成的集合 Ti1i2...in。若当坐标系旋转为 Ox1′x2′x3′ 时(变换矩阵为 aij,即 xi′=aijxj),新分量满足:
T′i1i2...in=ai1j1ai2j2...ainjnTj1j2...jn
则称该集合为一个 n 阶张量。
0 阶张量(标量): 1 个分量,如压力 p、温度 T。
1 阶张量(矢量): 3 个分量,如速度 ui。
2 阶张量(矩阵): 9 个分量,如应力张量 τij、变形速率张量 Sij。
0x03.2 张量相关计算及爱因斯坦求和公约
为了简化求和号 ∑,我们约定:在一个项中,如果同一个指标出现两次,则表示对该指标在所有维数(1, 2, 3)上求和。
爱因斯坦求和:
aibi=a1b1+a2b2+a3b3 (即点积 a⋅b)
Kronecker delta 符号 (δij):
δij={1,i=j 0,i=j
它在计算中具有“换标”作用:aiδij=aj。
排列符号 / Levi-Civita 符号 (ϵijk):
用于表示叉积。当指标为正序排列(123, 231, 312)时为 1,逆序(132, 213, 321)时为 -1,有重复指标时为 0。
\epsilon - \delta 恒等式,可用于化简计算:
ϵijkϵimn=δjmδkn−δjnδkm
0x03.3 一些公式的张量写法
引入张量符号后,复杂的矢量运算变得极度简洁:
梯度: (∇ϕ)i=∂iϕ=∂xi∂ϕ
散度: ∇⋅u=∂iui
旋度: (∇×u)i=ϵijk∂juk
对流项: [(u⋅∇)u]i=uj∂jui (这是 N-S 方程中最常见的形式)
0x03.4 张量识别定理、二阶张量及其性质
张量识别定理可以用来判断一个未知量是不是张量、是几阶张量。其核心思想是:
- 若某未知量与任意已知张量按某种收缩/乘积运算后,总能得到一个在坐标旋转下满足张量变换律的量,则该未知量本身也必为张量。
- 阶数可由“自由指标个数”判断:等式两侧自由指标必须一致,重复指标表示求和并被消去。
在指标记号中,可以更直观地理解这个规则。
设 Qi1...im 为任意 m 阶张量,若 Pi1...imj1...jnQj1...jn 对任意 Q 都是 m 阶张量,则 P 必是 (m+n) 阶张量。
例如,上文的叉积写成:
(a×b)i=ϵijkajbk
左侧有一个自由指标 i(一阶张量),右侧 ajbk 为二阶对象,因此 ϵijk 必为三阶张量。
二阶张量在流体力学中最常见。设二阶张量 Aij,它有以下几个关键性质。
-
对称与反对称分解(唯一分解)
Aij=Sij+Ωij,Sij=21(Aij+Aji),Ωij=21(Aij−Aji)
其中 Sij=Sji 为对称部分,Ωij=−Ωji 为反对称部分。
-
迹(trace)与球张量分解
tr(A)=Aii
Aij=各向同性(球)部分31Akkδij+偏张量(无迹)部分(Aij−31Akkδij)
该分解在应力张量中非常重要:球部分对应平均正应力(压力),偏张量对应剪切效应。
-
二阶张量不变量
在正交坐标旋转下,下列量保持不变(对任意二阶张量常用):
I1=Aii,I2=21[(Aii)2−AijAji],I3=det(A)
这些不变量常用于判断流动状态、构造无关坐标系的本构关系。
-
流体力学中的典型例子:速度梯度张量
速度场 u 的梯度 ∂jui 是二阶张量,可分解为:
∂jui=Dij+Wij,Dij=21(∂jui+∂iuj),Wij=21(∂jui−∂iuj)
其中 Dij 是形变速率张量(控制拉伸与剪切变形),Wij 是旋转张量(描述局部刚体转动)。
对于不可压缩流体,连续性方程 ∂iui=0,即 tr(∂jui)=0,说明速度梯度张量的迹为零。
0x04 较复杂的案例
0x04.1 欧拉公式并矢化简
在欧拉观点中,常会遇到并矢(dyadic)项 ∇⋅(vv)。
这里 vv 是二阶张量,其分量为 (vv)ij=vivj。
按分量展开,∇⋅(vv) 的第 i 个分量为:
[∇⋅(vv)]i=∂j(vivj)=vj∂jvi+vi∂jvj
故可写成紧凑矢量形式:
∇⋅(vv)=(v⋅∇)v+v(∇⋅v)
这条恒等式非常重要:
- 可压缩流体中,需保留第二项 v(∇⋅v)。
- 不可压缩流体中,∇⋅v=0,于是
∇⋅(vv)=(v⋅∇)v
因此,0x04.2 中对对流项 (v⋅∇)v 的兰姆分解,也可直接用于并矢散度项的进一步化简。
0x04.2 兰姆方程中加速度分解
欧拉描述下,流体质点加速度为:
dtdv=∂t∂v+(v⋅∇)v
其中非线性对流项可以化为兰姆形式:
(v⋅∇)v=∇(2v2)+ω×v,ω=∇×v
下面用指标记号证明。先写出第 i 个分量:
[(v⋅∇)v]i=vj∂jvi
再看右侧第二项:
(ω×v)i=ϵijkωjvk=ϵijkϵjmn(∂mvn)vk
利用恒等式 ϵijkϵjmn=δinδkm−δimδkn (需要注意这里的ijk中已取反),得
(ω×v)i=(δinδkm−δimδkn)(∂mvn)vk=vk∂kvi−vk∂ivk
而
[∇(2v2)]i=∂i(2vkvk)=vk∂ivk
故
[∇(2v2)+ω×v]i=vk∂ivk+(vk∂kvi−vk∂ivk)=vj∂jvi
即证:
(v⋅∇)v=∇(2v2)+ω×v
因此加速度也可写为兰姆形式:
dtdv=∂t∂v+∇(2v2)+ω×v