🎉 Welcome to Aerosand!.
00_intro-cfdb

00_intro-cfdb

0. 前言

本系列旨在让读者流畅的理解计算流体力学的基础理论。

1. 路线

流体动力学

理论方程

有限差分法

有限差分法基础思路和方法。

有限体积法

有限体积法基础思路和方法

2. 数学基础

2.1. 偏导计算

和差法则

(f+g)x=fx+gx \frac{\partial (f+g)}{\partial x} = \frac{\partial f}{\partial x} + \frac{\partial g}{\partial x}

乘积法则

fgx=gfx+fgx \frac{\partial fg}{\partial x} = g\frac{\partial f}{\partial x} + f\frac{\partial g}{\partial x}

常数

Cfx=Cfx \frac{\partial Cf}{\partial x} = C \frac{\partial f}{\partial x}

2.2. 张量约定

张量约定也被称为爱因斯坦求和约定,这种数学表达形式十分简洁准确。

重复的下标要求和。

比如

ϕixi=iϕixi=ϕ1x1+ϕ2x2+ϕ3x3,i=1,2,3 \frac{\partial \phi_{i}}{\partial x_{i}} = \sum\limits_{i} \frac{\partial \phi_{i}}{\partial x_{i}} = \frac{\partial \phi_{1}}{\partial x_{1}} + \frac{\partial \phi_{2}}{\partial x_{2}} + \frac{\partial \phi_{3}}{\partial x_{3}},i=1,2,3

不同的下标要独立。

比如

uiujxi=iuiujxi=(uxuxx+uyuxy+uzuxzuxuyx+uyuyy+uzuyzuxuzx+uyuzy+uzuzz) \begin{align*} \frac{\partial u_{i}u_{j}}{\partial x_{i}} &= \sum\limits_{i} \frac{\partial u_{i}u_{j}}{\partial x_{i}} \\ &= \begin{pmatrix} \frac{\partial u_{x}u_{x}}{\partial x} + \frac{\partial u_{y}u_{x}}{\partial y} + \frac{\partial u_{z}u_{x}}{\partial z}\\ \frac{\partial u_{x}u_{y}}{\partial x} + \frac{\partial u_{y}u_{y}}{\partial y} + \frac{\partial u_{z}u_{y}}{\partial z}\\ \frac{\partial u_{x}u_{z}}{\partial x} + \frac{\partial u_{y}u_{z}}{\partial y} + \frac{\partial u_{z}u_{z}}{\partial z} \end{pmatrix} \end{align*}

2.3. 张量计算

向量内积(inner product)

ab=aibi=aTb=a1b1+a2b2+a3b3 \mathbf{a}\cdot \mathbf{b} =a_{i}b_{i} = \mathbf{a}^{T}\mathbf{b} = a_{1}b_{1} + a_{2}b_{2} + a_{3}b_{3}

向量和张量内积

aT=aiTij=(a1T11+a2T21+a3T31a1T12+a2T22+a3T32a1T13+a2T23+a3T33) \mathbf{a}\cdot \mathbf{T} = a_{i}T_{ij} = \begin{pmatrix}a_{1}T_{11}+a_{2}T_{21}+a_{3}T_{31} \\ a_{1}T_{12}+a_{2}T_{22}+a_{3}T_{32} \\ a_{1}T_{13}+a_{2}T_{23}+a_{3}T_{33}\end{pmatrix}

张量和向量内积

Ta=Tijaj=(T11a1+T12a2+T13a3T21a1+T22a2+T23a3T31a1+T32a2+T33a3) \mathbf{T}\cdot\mathbf{a} = T_{ij}a_{j} = \begin{pmatrix}T_{11}a_{1}+T_{12}a_{2}+T_{13}a_{3} \\ T_{21}a_{1}+T_{22}a_{2}+T_{23}a_{3} \\ T_{31}a_{1}+T_{32}a_{2}+T_{33}a_{3}\end{pmatrix}

张量双内积(double inner product / dyadic product)

T:S=TijSij=T11S11+T12S12+T13S13+T21S21+T22S22+T23S23+T31S31+T32S32+T33S33 \mathbf{T}:\mathbf{S} = T_{ij}S_{ij} = T_{11}S_{11}+T_{12}S_{12}+T_{13}S_{13}+T_{21}S_{21}+T_{22}S_{22}+T_{23}S_{23}+T_{31}S_{31}+T_{32}S_{32}+T_{33}S_{33}

向量外积(outer product)

ab=aibj=(a1b1a1b2a1b3a2b1a2b2a2b3a3b1a3b2a3b3) \mathbf{a} \otimes \mathbf{b} = a_{i}b_{j} = \begin{pmatrix}a_{1}b_{1}&a_{1}b_{2}&a_{1}b_{3} \\ a_{2}b_{1}&a_{2}b_{2}&a_{2}b_{3} \\ a_{3}b_{1}&a_{3}b_{2}&a_{3}b_{3}\end{pmatrix}

2.4. 梯度计算

梯度计算是一种升维。

标量的梯度计算

gradϕ=ϕ=ϕxi=(ϕxϕyϕz) \mathsf{grad}\phi = \nabla\phi = \frac{\partial \phi}{\partial x_{i}} = \begin{pmatrix} \frac{\partial \phi}{\partial x} \\ \frac{\partial \phi}{\partial y} \\ \frac{\partial \phi}{\partial z} \end{pmatrix}

向量的梯度计算

gradU=U=U=bixj=(uxxuyxuzxuxyuyyuzyuxzuyzuzz) \mathsf{grad} \mathbf{U} = \nabla \mathbf{U} = \nabla\otimes \mathbf{U} = \frac{\partial b_{i}}{\partial x_{j}} = \begin{pmatrix} \frac{\partial u_{x}}{\partial x} & \frac{\partial u_{y}}{\partial x} & \frac{\partial u_{z}}{\partial x} \\ \frac{\partial u_{x}}{\partial y} & \frac{\partial u_{y}}{\partial y} & \frac{\partial u_{z}}{\partial y} \\ \frac{\partial u_{x}}{\partial z} & \frac{\partial u_{y}}{\partial z} & \frac{\partial u_{z}}{\partial z} \end{pmatrix}

2.5. 散度计算

散度计算是一种降维。

向量的散度计算

divU=U=uixi=u1x1+u2x2+u3x3 div \mathbf{U} = \nabla\cdot \mathbf{U} = \frac{\partial u_{i}}{\partial x_{i}} = \frac{\partial u_{1}}{\partial x_{1}} + \frac{\partial u_{2}}{\partial x_{2}} + \frac{\partial u_{3}}{\partial x_{3}}

张量的散度计算

divT=T=Tijxi=(T11x1+T21x2+T31x3T12x1+T22x2+T32x3T13x1+T23x2+T33x3) div \mathbf{T} = \nabla\cdot \mathbf{T} = \frac{\partial T_{ij}}{\partial x_{i}} = \begin{pmatrix} \frac{\partial T_{11}}{\partial x_{1}}+\frac{\partial T_{21}}{\partial x_{2}}+\frac{\partial T_{31}}{\partial x_{3}} \\ \frac{\partial T_{12}}{\partial x_{1}}+\frac{\partial T_{22}}{\partial x_{2}}+\frac{\partial T_{32}}{\partial x_{3}} \\ \frac{\partial T_{13}}{\partial x_{1}}+\frac{\partial T_{23}}{\partial x_{2}}+\frac{\partial T_{33}}{\partial x_{3}} \end{pmatrix}

2.6. 混合计算

(Uρ)=Uρ+ρU \nabla\cdot(\mathbf{U}\rho) = \mathbf{U}\cdot\nabla\rho + \rho\nabla\cdot \mathbf{U} (UU)=UU+UU \nabla\cdot(\mathbf{U}\otimes \mathbf{U}) = \mathbf{U}\cdot\nabla\otimes \mathbf{U} + \mathbf{U}\nabla\cdot \mathbf{U} (TU)=T:U+UT \nabla\cdot(\mathbf{T}\cdot \mathbf{U}) = \mathbf{T}:\nabla\otimes \mathbf{U} + \mathbf{U}\cdot\nabla\cdot \mathbf{T}

2.7. 矩阵分解

任何一个矩阵都可以分解成体部分(平均性)(hydrostatic)和偏部分(非平均性)(deviatoric)。

A=Ahyd+Adev \mathbf{A} = \mathbf{A}^{hyd} + \mathbf{A}^{dev}

体部分的大小为对角线元素的总和,也是迹的计算

Ahyd=13tr(A)=13aii |\mathbf{A}^{hyd}| = \frac{1}{3}tr(\mathbf{A}) = \frac{1}{3}a_{ii}

体部分矩阵为

Ahyd=13tr(A)I \mathbf{A}^{hyd} = \frac{1}{3}tr(\mathbf{A})\mathbf{I}

也可以得到

Adev=AAhyd=A13tr(A)I \mathbf{A}^{dev} = \mathbf{A} - \mathbf{A}^{hyd} = \mathbf{A} - \frac{1}{3}tr(\mathbf{A})\mathbf{I}

为了帮助理解,我们以一个三维矩阵为例

A=(123320203) \mathbf{A} = \begin{pmatrix} 1&2&3 \\ 3&2&0 \\ 2&0&3 \end{pmatrix}

该矩阵的迹为

tr(A)=1+2+3=6 tr(\mathbf{A}) = 1 + 2 + 3 = 6

该矩阵的体部分为

Ahyd=13tr(A)I=2I=(200020002)\mathbf{A}^{hyd} = \frac{1}{3}tr(\mathbf{A})\mathbf{I} = 2\mathbf{I} = \begin{pmatrix}2&0&0 \\ 0&2&0 \\ 0&0&2\end{pmatrix}

该矩阵的偏部分为

Adev=(123300201) \mathbf{A}^{dev} = \begin{pmatrix}-1&2&3 \\ 3&0&0 \\ 2&0&1\end{pmatrix}

2.8. 高斯定理

高斯定理也被称为散度定理

体积边界上的通量积分等于体积内的散度积分,即

VUdS=VUdV \int_{\partial{V}} \mathbf{U}\cdot d\mathbf{S} = \int_{V}\nabla\cdot \mathbf{U} dV

3. 建议

强烈建议读者亲自动手推导理论公式。

另外,要意识到理论学习和理解是一个反复迭代的过程。一个知识点查阅很多书,一本书看很多次,都是非常正常的现象。

建议读者遇到学习和理解的困难的时候,不要退缩,应广泛查阅,积极讨论,最后形成自己的输出。

References

[1] The Finite Volume Method in Computational Fluid Dynamics, https://link.springer.com/book/10.1007/978-3-319-16874-6

[2] Computational fluid dynamics : the basics with applications, https://searchworks.stanford.edu/view/2989631

[3] Mathematics, Numerics, Derivations and OpenFOAM®, https://holzmann-cfd.com/community/publications/mathematics-numerics-derivations-and-openfoam-free

[4] Notes on Computational Fluid Dynamics: General Principles, https://doc.cfd.direct/notes/cfd-general-principles/

Last updated on