Vanilla Continuum Mechanics - Kinematics of Continuum

关于为什么要开这个坑:

最近去找了软件所做物理模拟的老师,入门物理基础起码是连续介质力学,不学不行。学不会滚蛋就没得CG学了

你以为我的第一选择是物理模拟啊,你看现在哪儿还有做纯渲染的啊,都是AI做的端到端渲染,你嫌不纯正我还嫌不纯正呢

于是老师给了一本 Introduction to Continuum Mechanics 要自学。

争取每天读一点慢慢来吧。。。

本文咕咕啦

为什么咕咕呢, 因为下学期有连介课啦,到时候在这里记笔记就好啦

开头的什么数学基础符号约定啥的就跳过了,直接从正片开始。

1. 连续体运动学\text{1. 连续体运动学}

1.1. Euler表示和Lagrange表示\text{1.1. Euler表示和Lagrange表示}

其实力学课也讲过了,再回头说一遍。

假设一个物理量Θ\Theta,我们可以有两种方式来描述:

Euler\text{Euler}表示:将物理量看成空间中随时间变化的场,约定这种表示记为Θ=Θ~(x1,x2,x3,t)\Theta = \tilde\Theta(x_1,x_2,x_3,t),这里x1,x2,x3x_1,x_2,x_3是空间坐标。

Lagrange\text{Lagrange}表示:将物理量看成关于物质点和时间的函数,一个物质点是由它在某个参考时间t=0t=0时的坐标(X1,X2,X3)(X_1,X_2,X_3)标志的(称为物质坐标),约定这种表示记为Θ=Θ^(X1,X2,X3,t)\Theta = \hat\Theta(X_1,X_2,X_3,t)

要转化两种表示也不难,因为x1,x2,x3x_1,x_2,x_3都是X1,X2,X3,tX_1,X_2,X_3,t的函数,直接套就行。

1.2. 求导\text{1.2. 求导}

一个关键概念是物质导数,用DDt\frac{D}{Dt}表示。

物质导数是用拉格朗日表示定义的,或者说是在物质坐标下定义的,我们定义

DΘDt=Θ^t\frac{D\Theta}{Dt}=\frac{\partial \hat\Theta}{\partial t}

意思就是固定X1,X2,X3X_1,X_2,X_3,跟踪每个物质点,求导意味着我们观察这些物质点的物理量随时间的变化。

这里的Θ\Theta用的是拉格朗日表示,如果知道欧拉表示,我们一样可以把物质导数写出来,只要做一个简单的链式法则。

DΘDt=Θ^t=Θ~xixit+Θ~t=Θ~t+vΘ~    ()\frac{D\Theta}{Dt}=\frac{\partial \hat\Theta}{\partial t}=\frac{\partial\tilde\Theta}{\partial x_i}\frac{\partial x_i}{\partial t}+\frac{\partial\tilde\Theta}{\partial t}=\frac{\partial\tilde\Theta}{\partial t} +\mathbf{v}\cdot\nabla\tilde\Theta\ \ \ \ (\ast)

第二个等号用了一下爱因斯坦求和约定。这里可以发现我们其实不止能在笛卡尔坐标系下用这个东西,球坐标和柱坐标也都可以。

1.3. 加速度和位移场\text{1.3. 加速度和位移场}

1.3.1. 加速度\text{1.3.1. 加速度}

考虑在物质坐标下,按照定义,加速度就是vt=DvDt\frac{\partial \mathbf{v}}{\partial t}=\frac{D\mathbf{v}}{Dt}

这里的v\mathbf{v}也是物质坐标下的表示(拉格朗日表示)。这是简单到无需解释的。

我们不仅要考虑拉格朗日表示,我们还要考虑如果已知v\mathbf{v}的欧拉表示,我们要怎么算出来a\mathbf{a}.

v\mathbf{v}代入()(\ast)式即可得:

a=vt+vv\mathbf{a} = \frac{\partial \mathbf{v}}{\partial t}+\mathbf{v}\cdot\nabla\mathbf{v}

这里v\mathbf{v}用的是欧拉表示。

我们接下来求一下三维空间中不同坐标系下上式的表示以及a\mathbf{a}的分量。

笛卡尔坐标系\text{笛卡尔坐标系}

明确一下这时候物理量的表示。v=vi(x1,x2,x3,t)ei\mathbf{v}=v_i(x_1,x_2,x_3,t)\mathbf{e_i}(还是用了爱因斯坦求和约定,以后再遇到这个约定就不仔细说了),其中ei\mathbf{e_i}是笛卡尔坐标系中的单位正交基。同样的也有a=ai(x1,x2,x3,t)ei\mathbf{a}=a_i(x_1,x_2,x_3,t)\mathbf{e_i}

于是可以写出来

ai=vit+vjvixja_i=\frac{\partial v_i}{\partial t}+v_j\frac{\partial v_i}{\partial x_j}

这里还是解释一下吧。。。jj用了爱因斯坦求和约定,但是ii并没有。

柱坐标\text{柱坐标}

球坐标\text{球坐标}

其实都只要改一下\nabla的表达形式就可以,但是实在太难算这里就不写了(

1.3.2. 位移场\text{1.3.2. 位移场}

这个概念其实相当好理解,位移场是一个随时间变化的物理量场,定义式就是u=x(X,t)X\mathbf{u}=\mathbf{x}(\mathbf{X},t)-\mathbf{X}

1.4. 刚体运动学方程\text{1.4. 刚体运动学方程}

这一块儿和连续介质力学关联其实不大,就是牛顿力学里会讲的东西,不过课堂上给非物理系同学讲的牛顿力学很多对三维的情形一嘴带过了,这里还是稍微再补一下。

简单来说,就是一个跟时间相关的保距离的仿射变换。。。一共有旋转和平移两种变换,旋转变换的矩阵还是正交的。

可以写出来:

x=R(t)(Xb)+c(t)\mathbf{x}=\mathbf{R}(t)(\mathbf{X}-\mathbf{b})+\mathbf{c}(t)

其中R(0)=Ic(0)=b\mathbf{R}(0)=\mathbf{I},\mathbf{c}(0)=\mathbf{b}

这描述了平动和绕着b\mathbf{b}点的定点旋转的合成运动。

对于这个式子求物质导数,得到

v=R˙(t)(Xb)+c˙(t)\mathbf{v}=\dot{\mathbf{R}}(t)(\mathbf{X}-\mathbf{b})+\dot{\mathbf{c}}(t)

注意到,Xb\mathbf{X}-\mathbf{b}是在参考时间时的物理量,是常数。但是在实际运动中我们可能不关心起始的质点都在什么地方。注意到c(t)\mathbf{c}(t)描述的是旋转点随时间的平动,我们可以把与起始时间有关的物质坐标都换成随时间变化的以旋转点为参考点的坐标。

改变一下前面的式子,可以得到

Xb=RT(xc)\mathbf{X-b}=\mathbf{R}^T\mathbf{(x-c)}

这里本来R\mathbf{R}上应该是求逆,因为是正交的所以可以写成转置。

代入就可以得到

v=R˙(t)RT(t)(xc)+c˙(t)\mathbf{v}=\dot{\mathbf{R}}(t)\mathbf{R}^T(t)(\mathbf{x}-\mathbf{c})+\dot{\mathbf{c}}(t)

这个式子好就好在它跟初始值没有关系了,仅仅是关于时间的方程。

下面我们来重新联系一下大一学的力学中的概念。RRT=I\mathbf{R}\mathbf{R}^T=I,求导得到R˙RT+RR˙T=0\dot{\mathbf{R}}\mathbf{R}^T+\mathbf{R}\dot{\mathbf{R}}^T=0,这说明R˙(t)RT(t)\dot{\mathbf{R}}(t)\mathbf{R}^T(t)是个斜对称矩阵,斜对称矩阵和叉积是一一对应的。

也就是说,我们可以找到一个向量ω\omega,使得R˙RTu=ω×u\dot{\mathbf{R}}\mathbf{R}^T\mathbf{u}=\omega\times \mathbf{u}。代入上式就有v=ω×(xc)+c˙(t)\mathbf{v}=\omega\times \mathbf{(x-c)}+\dot{\mathbf{c}}(t)

ω\omega出现在表示旋转速度的项中,就是角速度!我们可以再把xc\mathbf{x-c}写成r\mathbf{r},于是就有

v=ω×r+c˙\mathbf{v}=\omega\times \mathbf{r}+\dot{\mathbf{c}}

1.5. 微小形变\text{1.5. 微小形变}

连续介质的微小形变肯定比离散的质点要难处理得多。。。我们要考虑的相互作用也会极其复杂。

考虑一个在x=X+u(X,t)\mathbf{x}=\mathbf{X}+\mathbf{u}(\mathbf{X},t)的点,在参考时刻它周围有一个点在X+dX\mathbf{X}+\text{d} \mathbf{X},此时移动到了x+dx\mathbf{x}+\text{d} \mathbf{x},于是有

x+dx=X+dX+u(X+dX,t)\mathbf{x}+\text{d}\mathbf{x}=\mathbf{X}+\text{d} \mathbf{X}+\mathbf{u}(\mathbf{X}+\text{d}\mathbf{X},t)

于是有

dx=dX+u(X+dX,t)u(X,t)\text{d}\mathbf{x}=\text{d}\mathbf{X}+\mathbf{u}(\mathbf{X}+\text{d}\mathbf{X},t)-\mathbf{u}(\mathbf{X},t)

即有

dx=dX+(u)dX\text{d}\mathbf{x}=\text{d}\mathbf{X}+(\nabla\mathbf{u})\text{d}\mathbf{X}

这里的u\nabla\mathbf{u}就是位移场对物质坐标的Jacobian\text{Jacobian}矩阵,称为位移梯度

我们可以进一步写成

dx=FdX=(I+u)dX\text{d}\mathbf{x}=\mathbf{F}\text{d}\mathbf{X}=(\mathbf{I+\nabla\mathbf{u}})\text{d}\mathbf{X}

这个F\mathbf{F}矩阵表示了从dX\text{d}\mathbf{X}dx\text{d}\mathbf{x}的线性映射,我们还要考虑这两个向量微元的长度关系。在物理背景下,也就是要考虑“原本相距极小距离dS\text{d}S的两个质点,现在的极小距离ds\text{d}s是多少”

其实就是考虑欧氏空间中向量的范数变化。

ds=dxdx=dXTFTFdX\text{d}s=\sqrt{\text{d}\mathbf{x}\cdot \text{d}\mathbf{x}}=\sqrt{\text{d}\mathbf{X}^T\mathbf{F}^T\mathbf{F}\text{d}\mathbf{X}}

FTF=I+u+(u)T+(u)Tu\mathbf{F}^T\mathbf{F}=\mathbf{I}+\nabla{u}+(\nabla\mathbf{u})^T+(\nabla\mathbf{u})^T\nabla\mathbf{u}

此节中只考虑微小形变,因此忽略二阶量(u)Tu(\nabla\mathbf{u})^T\nabla\mathbf{u}。在此情形下,我们不妨定义一个新的对称矩阵E=12[u+(u)T]\mathbf{E}=\frac{1}{2}[\nabla{u}+(\nabla\mathbf{u})^T],它是u\nabla\mathbf{u}的对称部分,描述了微小形变下的长度变化。于是上式变为

FTF=I+2E\mathbf{F}^T\mathbf{F}=\mathbf{I}+2\mathbf{E}