无源粒子在给定的速度场中前进,通过在时间和空间上改变速度场来控制粒子运动
track the particle’s position through time
(初值)We must also be able to evaluate the velocity field at a given point in space and at a given instant of time.
function (, t) : velocity- at a position- , and time-t
非常简单的速度场——初值问题
x p ( 0 ) = x 0 x_p(0) = x_0 xp(0)=x0
//初始位置
d x p ( t ) d t = x ˙ p ( t ) = v ( x p , t ) \frac{dx_p(t)}{dt} = \dot{x }_p(t)= v(x_p,t) dtdxp(t)=x˙p(t)=v(xp,t)
//位置的改变取决于速度场, x ˙ \dot{x} x˙上一点表示时间导数(一种简写)。
上式是只包含一个导数的一阶常微分方程,仅考虑时间变量(时间的一阶导)
in the general case——use numerical integration数值积分
-Euler integration欧拉积分
导数的连续定义
d x p ( t ) d t = lim ϵ → 0 x p ( t + ϵ ) − x p ( t ) ϵ \frac{dx_p(t)}{dt}=\lim_{\epsilon \to0}\frac{x_p(t+\epsilon)-x_p(t)}{\epsilon} dtdxp(t)=ϵ→0limϵxp(t+ϵ)−xp(t)
近似地离散化,将极限 ϵ → 0 \epsilon\to0 ϵ→0赋值: ϵ = Δ t \epsilon=\Delta{t} ϵ=Δt,则
d x p ( t ) d t ≈ x p ( t + Δ t ) − x p ( t ) Δ t = v ( x p , t ) \frac{dx_p(t)}{dt}\approx\frac{x_p(t+\Delta{t})-x_p(t)}{\Delta{t}}=v(x_p,t) dtdxp(t)≈Δtxp(t+Δt)−xp(t)=v(xp,t)
=> x p ( t + Δ t ) = x p ( t ) + Δ t ⋅ v ( x p , t ) x_p(t+\Delta{t})=x_p(t)+\Delta{t}·v(x_p,t) xp(t+Δt)=xp(t)+Δt⋅v(xp,t)
// Δ t \Delta{t} Δt——timestep,值越小越精确,但计算量越大
牛顿运动定律f=ma,合外力影响物体加速度,A real-world object’s motion is governed by internal and external forces.
如果在粒子系统中引入力,那自然要引入重力,原来的初值问题变为:
x p ( 0 ) = x 0 x_p(0) = x_0 xp(0)=x0
d 2 x p ( t ) d t 2 = x ¨ p ( t ) = f ( x p , t ) m p \frac{d^2x_p(t)}{dt^2} = \ddot{x }_p(t)=\frac{ f(x_p,t)}{m_p} dt2d2xp(t)=x¨p(t)=mpf(xp,t)
改写成a system of coupled first-order equations一个耦合的一阶方程组
x p ( 0 ) = x 0 x_p(0) = x_0 xp(0)=x0
v p ( 0 ) = v 0 v_p(0) = v_0 vp(0)=v0
d x p ( t ) d t = x ˙ p ( t ) = v p ( t ) \frac{dx_p(t)}{dt} = \dot{x }_p(t)= v_p(t) dtdxp(t)=x˙p(t)=vp(t)
d v p ( t ) d t = v ˙ p ( t ) = f ( x p , t ) m p \frac{dv_p(t)}{dt} = \dot{v }_p(t)= \frac{ f(x_p,t)}{m_p} dtdvp(t)=v˙p(t)=mpf(xp,t)
和之前相同的方式使用欧拉方法:
v p ( t + Δ t ) = v p ( t ) + Δ t ⋅ f ( x p , t ) m p v_p(t+\Delta{t})=v_p(t)+\Delta{t}·\frac{f(x_p,t)}{m_p} vp(t+Δt)=vp(t)+Δt⋅mpf(xp,t)
x p ( t + Δ t ) = x p ( t ) + Δ t ⋅ v p ( t + Δ t ) x_p(t+\Delta{t})=x_p(t)+\Delta{t}·v_p(t+\Delta{t}) xp(t+Δt)=xp(t)+Δt⋅vp(t+Δt)
这就是symplectic Euler辛欧拉方法
in many cases, the best choice among the simple integration schemes
eg:in 1990 by Sims [1990] and was used to create the animated short Particle Dreams.
一个粒子至少需要保存:mass, position, velocity, and a force accumulator(在实践中一般保存multiple single-datum arrays,即用separate arrays for positions, velocities, and force accumulators,可以避免在缓存中加载不必要的数据以提升效率)
arbitrary attributes such as color, size, age, type, etc.
还需要an outer loop that takes timesteps.一个步长一般包括三个循环:1)初始化合外力;2)将力作用于粒子;3)更新粒子速度和位置(使用辛欧拉方法的公式)
Allow the particles to interact
最简单的机制:apply spring forces弹簧弹力 between particles
最简单的弹簧力系统,involves a mass attached to the origin原点 with a zero length spring,f=-kd
k-spring constant;d-displacement位移
replace with x p x_p xp : f p = − k x p f_p=-kx_p fp=−kxp
rest length : f p = k ( ∣ ∣ x p ∣ ∣ − r ) − x p ∣ ∣ x p ∣ ∣ f_p=k(||x_p||-r)\frac{-x_p}{||x_p||} fp=k(∣∣xp∣∣−r)∣∣xp∣∣−xp
力和当前长度与rest length的差成比例,放向从粒子位移方向指向原点
∣ ∣ x p ∣ ∣ − r ||x_p||-r ∣∣xp∣∣−r的单位是米,如果resolution(分辨率)变高那么力会变小,e.g.一个弹簧被两个代替(变成原来的两倍长),the force on the particle is half as large and must be adjusted to maintain similar behavior.
故同除r,使用无量纲量 ∣ ∣ x p ∣ ∣ / r − 1 ||x_p||/r-1 ∣∣xp∣∣/r−1 (known as a strain张力 measure): f p = k ( ∣ ∣ x p ∣ ∣ r − 1 ) − x p ∣ ∣ x p ∣ ∣ f_p=k(\frac{||x_p||}{r}-1)\frac{-x_p}{||x_p||} fp=k(r∣∣xp∣∣−1)∣∣xp∣∣−xp
推广,另一个端点为任一点,位于 x q x_q xq:
f p = k ( ∣ ∣ x q − x p ∣ ∣ r − 1 ) x q − x p ∣ ∣ x q − x p ∣ ∣ f_p=k(\frac{||x_q-x_p||}{r}-1)\frac{x_q-x_p}{||x_q-x_p||} fp=k(r∣∣xq−xp∣∣−1)∣∣xq−xp∣∣xq−xp
From Newton’s third law, f q = − f p f_q=-f_p fq=−fp
internal friction converts some elastic弹性的 energy into heat,即damping阻尼/衰减,including an additional damping force,阻尼力取决于相对速度,计算公式为:
f p = k d ( v q − v p r ⋅ x q − x p ∣ ∣ x q − x p ∣ ∣ ) x q − x p ∣ ∣ x q − x p ∣ ∣ f_p=k_d(\frac{v_q-v_p}{r}·\frac{x_q-x_p}{||x_q-x_p||})\frac{x_q-x_p}{||x_q-x_p||} fp=kd(rvq−vp⋅∣∣xq−xp∣∣xq−xp)∣∣xq−xp∣∣xq−xp
弹力与阻尼力加和:
f p = [ k s ( ∣ ∣ x q − x p ∣ ∣ r − 1 ) + k d ( ( v q − v p ) ( x q − x p ) r ∣ ∣ x q − x p ∣ ∣ ) ] x q − x p ∣ ∣ x q − x p ∣ ∣ f_p=[k_s(\frac{||x_q-x_p||}{r}-1)+k_d(\frac{(v_q-v_p)(x_q-x_p)}{r||x_q-x_p||})]\frac{x_q-x_p}{||x_q-x_p||} fp=[ks(r∣∣xq−xp∣∣−1)+kd(r∣∣xq−xp∣∣(vq−vp)(xq−xp))]∣∣xq−xp∣∣xq−xp
算法伪码:
1: for Particle p : particles do
2: p.frc = 0
3: p.frc += p.mass*gravity
4: end for
//重力
5: for Spring s : springs do
6: Vec3 d = particles[s.j].pos - particles[s.i].pos
7: double l = mag(d)
8: Vec3 v = particles[s.j].vel - particles[s.i].vel
9: Vec3 frc = (k_s*((l / s.r) - 1.0) + k_d*dot(v/s.r, d/l))*(d/l)
10: particles[s.i].frc += frc
11: particles[s.j].frc -= frc
12:end for
//弹力(根据牛三律,大小相等方向相反)+阻尼
13:for Particle p : particles do
14: p.vel += dt*(p.frc / p.mass)
15: p.pos += dt*(p.vel)
16:end for
//速度和位移
本章也被认为是Continuum Mechanics连续介质力学
the models assume that the underlying materials基础材料 are continuous, which is a reasonable assumption at the scales and for the phenomena we are generally concerned with.
牛顿的经典力学(classical mechanics)
变分力学或分析力学(variational or analytical mechanics):based on the principle of least action最小作用量
a body remains at rest or moves with a constant velocity unless acted upon by a force
f = ma
momentum动量,质量-m,速度v,动量的公式:p(t)=mv(t)
牛顿第二定律的数学表达式:f(t)= d d t \frac{d}{dt} dtdp(t)=m d d t \frac{d}{dt} dtdv(t)=ma(t)
相互作用的两个物体之间的作用力和反作用力总是大小相等,方向相反,作用在同一条直线上。a pair of action/reaction forces
e.g.1 a particle of mass 1 is connected by spring to a particle of mass 2:受到的力大小相等方向相反,the lighter particle will experience a larger acceleration, while the heavier particle experiences a smaller acceleration
e.g.2 a particle of mass is resting on the ground,合外力为0
e.g.3 a moving particle of mass 1 collides with a moving particle of mass 2,the relative velocity of the particles is at least zero to prevent their interpenetration粒子的相对速度至少为零以防止相互渗透(穿模?)
since the change in momentum of each particle is equal to the force acting on it,the total momentum of the particles before the collision will be equal to the total momentum of the particles after the collision——动量守恒
动量:根据牛顿第二定律,if there is no net force acting on a particle: d d t m \frac{d}{dt}m dtdmv(t)=0 => mv(t)=constant
By Newton’s third law, every action has an equal and opposite reaction => conservation of linear and angular momentum in a closed system of interacting particles.
能量:energy cannot be created or destroyed, but can only change form,the total energy in a closed system remains constant
e.g. an object of mass dropped with zero initial velocity in a vacuum(真空中无空气摩擦消耗),potential energy 势能 m g h 0 mgh_0 mgh0 is converted to kinetic energy动能 1 2 m v 2 \frac{1}{2}mv^2 21mv2,速度v=||v||,总能量 m g h 0 = 1 2 m v ( t ) 2 + m g h ( t ) mgh_0=\frac{1}{2}mv(t)^2+mgh(t) mgh0=21mv(t)2+mgh(t),由此,速度可求, v ( t ) = 2 g ( h 0 − h ( t ) ) v(t)=\sqrt{2g(h_0-h(t))} v(t)=2g(h0−h(t)),当h(t)=0, v ( t ) = 2 g h 0 v(t)=\sqrt{2gh_0} v(t)=2gh0(即末速度)
Conservation laws are used in the field of continuum mechanics连续介质力学 to derive the equations describing the behavior of continua
连续材料,考虑在任意控制体积 Ω \Omega Ω,边界 ∂ Ω \partial\Omega ∂Ω下的守恒量的变化率
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eQcoNVB3-1616637060904)(2.%E6%95%B0%E5%AD%A6%E6%A8%A1%E5%9E%8B_md_files/2C2EB101B493472893C3290CED11D6AA_20200530215819.jpg?v=1&type=image&token=V1:K3Rm6s_XWilBjUfz3oVOzWxdNuFXaEiFPDJlXcJr7XU)]
想象这是流体,v(x,t)——time-varying velocity field时变速度场, ∫ Ω ρ \int_{\Omega}\rho ∫ΩρdV——总质量,密度 ρ \rho ρ,volume element dV
固定区域 Ω \Omega Ω内总质量仅在质量通过边界 ∂ Ω \partial\Omega ∂Ω流入或流出时发生改变。
d d t ∫ Ω ρ d V = − ∮ ∂ Ω ρ v ( x , t ) ⋅ n ( x ) d S \frac{d}{dt}\int_{\Omega}\rho dV=-\oint_{\partial\Omega}\rho\mathbf v(\mathbf x,t)·\mathbf n(\mathbf x)dS dtd∫ΩρdV=−∮∂Ωρv(x,t)⋅n(x)dS
n(x)——边界 ∂ Ω \partial\Omega ∂Ω上的单位法线
用散度定理(高斯公式)将等式变形: ∫ Ω ∂ ρ ∂ t + ▽ ⋅ ( ρ v ) d V = 0 \int_{\Omega}\frac{\partial\rho}{\partial t}+\bigtriangledown ·(\rho\mathbf v)dV=0 ∫Ω∂t∂ρ+▽⋅(ρv)dV=0
V为任意控制区域, ∂ ρ ∂ t + ▽ ⋅ ( ρ v ) = 0 \frac{\partial\rho}{\partial t}+\bigtriangledown ·(\rho\mathbf v)=0 ∂t∂ρ+▽⋅(ρv)=0
更多细节见[Landau and Lifshitz 1959].
These conservation laws are local rather than global,if we lose mass in one part of the domain but add it in another,the total global mass is conserved,the conservation law
would still be violated.看起来是某块突然消失然后出现在了另一处,不可取,should be locally conserved everywhere.
In general,u——守恒量,f(u)通量函数 ∂ u ∂ t + ▽ ⋅ f ( u ) = 0 \frac{\partial u}{\partial t}+\bigtriangledown ·f(u)=0 ∂t∂u+▽⋅f(u)=0
在连续体最开始的式子右边允许包含 sources or sinks,可用于模拟通过与外界系统交互增加或减少守恒量。
rigid bodies,idealized to have no deformation
soft bodies,deform elastically and plastically弹性和塑性形变
fluids,such as air, water,honey, and others materials such as sand and snow
A rigid body is a object whose points are constrained to be at a fixed distance from one another.
the position of all points on the object can be describe with six degrees of freedom六个自由度
定位3个,描述物体的质心( center of mass)位置
定向3个,the object can be oriented朝向 in any way about that center of mass
详见[Baraff 2001].
为了方便推导,把刚体认为是一系列离散粒子的集合,粒子下标i=1,…,N,质量 m i m_i mi.
The center of mass(用 x c o m \mathbf x_{com} xcom表示)is the mass-weighted average质量加权平均 position of the rigid body’s constituent成分 particles.
x c o m = ∑ i = 1 N m i p i ∑ i = 1 N m i \mathbf x_{com}=\frac{\sum_{i=1}^{N}m_ip_i}{\sum_{i=1}^{N}m_i} xcom=∑i=1Nmi∑i=1Nmipi
p是position
object space 以质心为原点的坐标,物体随时间运动旋转时坐标是固定的
world space,物体随时间运动旋转时坐标随时间变化
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ghJ832Ku-1616637060910)(2.%E6%95%B0%E5%AD%A6%E6%A8%A1%E5%9E%8B_md_files/B73034FFED3740D6BF44FCE28A04829D_20200531172751.jpg?v=1&type=image&token=V1:7bbRhRX1b4fSIv2970-TcHbOQg5JjzLBbSNA3tN4Fos)]
Consider a particle of the rigid body with object space position r 0 r_0 r0,质心位置x(t),物体朝向用关于质心的旋转矩阵旋转矩阵R(t)描述:
p ( t ) = x ( t ) + R ( t ) r 0 \mathbf p(t)=\mathbf x(t)+\mathbf R(t)\mathbf r_0 p(t)=x(t)+R(t)r0
令 r ( t ) = R ( t ) r 0 \mathbf r(t)=\mathbf R(t)\mathbf r_0 r(t)=R(t)r0,来表示质点旋转后相对于质心的位置,则 p ( t ) = x ( t ) + r ( t ) \mathbf p(t)=\mathbf x(t)+\mathbf r(t) p(t)=x(t)+r(t),如图(b)
求速度,第一个式子对时间求导
v ( t ) = p ˙ ( t ) = x ˙ ( t ) + R ˙ ( t ) r 0 \mathbf v(t)=\mathbf{\dot p}(t)=\mathbf{\dot x}(t)+\mathbf{\dot R}(t)\mathbf r_0 v(t)=p˙(t)=x˙(t)+R˙(t)r0
质心速度 x ˙ ( t ) \mathbf{\dot x}(t) x˙(t)是刚体的线速度
若物体没有旋转, R ˙ ( t ) = 0 \mathbf{\dot R}(t)=0 R˙(t)=0,那么质点速度与质心速度相同 p ˙ ( t ) = x ˙ ( t ) \mathbf{\dot p}(t)=\mathbf{\dot x}(t) p˙(t)=x˙(t)
旋转刚体, R ˙ ( t ) ≠ 0 \mathbf{\dot R}(t)\neq0 R˙(t)=0,
根据欧拉旋转理论,瞬时旋转等价于绕着质心的单轴旋转,如下图,用向量 ω \mathbf{\omega} ω表示该轴,长度是每秒弧度的旋转速率, ω \mathbf{\omega} ω和 r \mathbf r r夹角为 θ \theta θ, r = ∣ ∣ r ∣ ∣ r=||\mathbf r|| r=∣∣r∣∣
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DuF8quFS-1616637060912)(2.%E6%95%B0%E5%AD%A6%E6%A8%A1%E5%9E%8B_md_files/3.%E8%B4%A8%E7%82%B9%E7%9A%84%E6%97%8B%E8%BD%AC_20200531180305.jpg?v=1&type=image&token=V1:goQRxLyI8wDe0gcHlgjIlP4BL8iFT7iwGqGg9qGPrD8)]
the point rotates ‖‖ radians/sec on a circle of radius sin , the speed of motion of the particle is ‖‖‖‖ sin ,运动方向和 、垂直,根据右手定则,叉乘 R ˙ ( t ) r 0 = ω ( t ) × r ( t ) \mathbf{\dot R}(t)\mathbf r_0=\mathbf{\omega}(t)\times\mathbf r(t) R˙(t)r0=ω(t)×r(t)
速度变为
v ( t ) = p ˙ ( t ) = x ˙ ( t ) + ω ( t ) × r ( t ) \mathbf v(t)=\mathbf{\dot p}(t)=\mathbf{\dot x}(t)+\mathbf{\omega}(t)\times\mathbf r(t) v(t)=p˙(t)=x˙(t)+ω(t)×r(t)
向量 ω ( t ) \mathbf{\omega}(t) ω(t)is called the angular velocity角速度 of the body
又 r ( t ) = R ( t ) r 0 \mathbf r(t)=\mathbf R(t)\mathbf r_0 r(t)=R(t)r0,那么 R ˙ ( t ) r 0 = ω ( t ) × R ( t ) r 0 \mathbf{\dot R}(t)\mathbf r_0=\mathbf{\omega}(t)\times\mathbf R(t)\mathbf r_0 R˙(t)r0=ω(t)×R(t)r0
该式对任意向量 r 0 \mathbf r_0 r0成立,则 R ˙ ( t ) = ω ( t ) × R ( t ) \mathbf{\dot R}(t)=\mathbf{\omega}(t)\times\mathbf R(t) R˙(t)=ω(t)×R(t)
the cross product is understood to apply to each column of the matrix叉积被认为应用于矩阵的每一列
刚体总动量是其组成粒子的动量之和: P ( t ) = ∑ i = 1 N m i v i ( t ) \mathbf P(t)=\sum_{i=1 }^{N}m_i\mathbf v_i(t) P(t)=∑i=1Nmivi(t)
用前面推出的速度计算公式,
P ( t ) = ∑ i = 1 N m i ( x ˙ ( t ) + ω ( t ) × r i ( t ) ) \mathbf P(t)=\sum_{i=1 }^{N}m_i(\mathbf{\dot x}(t)+\mathbf{\omega}(t)\times\mathbf r_i(t)) P(t)=∑i=1Nmi(x˙(t)+ω(t)×ri(t))
= ∑ i = 1 N m i x ˙ ( t ) + ω ( t ) × ( ∑ i = 1 N m i r i ( t ) ) =\sum_{i=1 }^{N}m_i\mathbf{\dot x}(t)+\mathbf{\omega}(t)\times(\sum_{i=1 }^{N}m_i\mathbf r_i(t)) =∑i=1Nmix˙(t)+ω(t)×(∑i=1Nmiri(t))
are defined relative to the center of mass of the object, the last sum in the above equation is zero. P ( t ) = ∑ i = 1 N m i x ˙ ( t ) \mathbf P(t)=\sum_{i=1 }^{N}m_i\mathbf{\dot x}(t) P(t)=∑i=1Nmix˙(t)
令总质量 M = ∑ i = 1 N m i M=\sum_{i=1 }^{N}m_i M=∑i=1Nmi,则
P ( t ) = M x ˙ ( t ) \mathbf P(t)=M\mathbf{\dot x}(t) P(t)=Mx˙(t)
刚体角动量是其组成粒子的角动量之和:
L ( t ) = ∑ i = 1 N r i ( t ) × m i v i ( t ) \mathbf L(t)=\sum_{i=1 }^{N}\mathbf r_i(t)\times m_i\mathbf v_i(t) L(t)=∑i=1Nri(t)×mivi(t)
= ∑ i = 1 N m i r i ( t ) × ( x ˙ ( t ) + ω ( t ) × r i ( t ) ) =\sum_{i=1 }^{N}m_i\mathbf r_i(t)\times(\mathbf{\dot x}(t)+\mathbf{\omega}(t)\times\mathbf r_i(t)) =∑i=1Nmiri(t)×(x˙(t)+ω(t)×ri(t))
… m i m_i mi往前提,换掉 v i ( t ) v_i(t) vi(t)
= ∑ i = 1 N m i r i ( t ) × x ˙ ( t ) + ∑ i = 1 N m i r i ( t ) × ω ( t ) × r i ( t ) =\sum_{i=1 }^{N}m_i\mathbf r_i(t)\times\mathbf{\dot x}(t)+\sum_{i=1 }^{N}m_i\mathbf r_i(t)\times\mathbf{\omega}(t)\times\mathbf r_i(t) =∑i=1Nmiri(t)×x˙(t)+∑i=1Nmiri(t)×ω(t)×ri(t)
由于 ∑ i = 1 N m i r i ( t ) × x ˙ ( t ) = 0 \sum_{i=1 }^{N}m_i\mathbf r_i(t)\times\mathbf{\dot x}(t)=0 ∑i=1Nmiri(t)×x˙(t)=0,原式简化得
L ( t ) = ∑ i = 1 N m i r i ( t ) × ( ω ( t ) × r i ( t ) ) \mathbf L(t)=\sum_{i=1 }^{N}m_i\mathbf r_i(t)\times(\mathbf{\omega}(t)\times\mathbf r_i(t)) L(t)=∑i=1Nmiri(t)×(ω(t)×ri(t))
ω \omega ω不取决于i,提出来
L ( t ) = ∑ i = 1 N m i r i ( t ) × ( − r i ( t ) × ω ( t ) ) \mathbf L(t)=\sum_{i=1 }^{N}m_i\mathbf r_i(t)\times(\mathbf{-\mathbf r_i(t)\times\omega}(t)) L(t)=∑i=1Nmiri(t)×(−ri(t)×ω(t))
把叉乘写成矩阵乘法(以便利用更多矩阵代数的性质)
向量 r = ( r x , r y , r z ) T \mathbf r=(r_x,r_y,r_z)^T r=(rx,ry,rz)T,任意向量 ω \omega ω, r × ω r\times \omega r×ω等于 ω \omega ω左乘 r \mathbf r r的伴随阵
r ∗ = [ 0 − r z r y r z 0 − r x − r y r x 0 ] \mathbf r^*=\begin{bmatrix} 0&-r_z&r_y\\ r_z&0&-r_x\\ -r_y&r_x&0 \end{bmatrix} r∗=⎣⎡0rz−ry−rz0rxry−rx0⎦⎤
skew-symmetric斜对称的, − r ∗ = r ∗ T -\mathbf r^*=\mathbf r^{*T} −r∗=r∗T,那么
L ( t ) = ∑ i = 1 N m i r i ∗ ( t ) ( r i ∗ T ( t ) ω ( t ) ) = ( ∑ i = 1 N m i r i ∗ ( t ) r i ∗ T ( t ) ) ω ( t ) \mathbf L(t)=\sum_{i=1 }^{N}m_i\mathbf r_i^*(t)(\mathbf r_i^{*T}(t)\omega(t))=(\sum_{i=1 }^{N}m_i\mathbf r_i^*(t)\mathbf r_i^{*T}(t))\omega(t) L(t)=∑i=1Nmiri∗(t)(ri∗T(t)ω(t))=(∑i=1Nmiri∗(t)ri∗T(t))ω(t)
括号中的项仅取决于离子的质量和几何分布,该3*3矩阵叫做物体的惯性张量,描述了刚体的质量分布,可以很容易地直接从一个封闭的三角形网格计算得出,常表示为
I ( t ) = ∑ i = 1 N m i r i ∗ ( t ) r i ∗ T ( t ) \mathbf I(t)=\sum_{i=1 }^{N}m_i\mathbf r_i^*(t)\mathbf r_i^{*T}(t) I(t)=∑i=1Nmiri∗(t)ri∗T(t)
所以 L ( t ) = I ( t ) ω ( t ) \mathbf L(t)=\mathbf I(t)\omega(t) L(t)=I(t)ω(t)
使用物体空间张量的变形来表示张量,
注意 r ∗ r ∗ T = r T r δ − r r T \mathbf r^*\mathbf r^{*T}=\mathbf r^T\mathbf r \mathbf{\delta}-\mathbf r\mathbf r^T r∗r∗T=rTrδ−rrT, δ \delta δ是3*3的单位矩阵,又 r = R r 0 \mathbf r=\mathbf R\mathbf r_0 r=Rr0
I ( t ) = ∑ i = 1 N m i r i ∗ ( t ) r i ∗ T ( t ) \mathbf I(t)=\sum_{i=1 }^{N}m_i\mathbf r_i^*(t)\mathbf r_i^{*T}(t) I(t)=∑i=1Nmiri∗(t)ri∗T(t)
= ∑ i = 1 N m i ( r i T r i δ − r i r i T ) =\sum_{i=1 }^{N}m_i(\mathbf r_i^T\mathbf r_i\delta-\mathbf r_i\mathbf r_i^T) =∑i=1Nmi(riTriδ−ririT)
= R ( t ) ∑ i = 1 N m i ( r 0 i T r 0 i δ − r 0 i r 0 i T ) R ( t ) T =\mathbf R(t)\sum_{i=1 }^{N}m_i(\mathbf r_{0i}^T\mathbf r_{0i}\delta-\mathbf r_{0i}\mathbf r_{0i}^T)\mathbf R(t)^T =R(t)∑i=1Nmi(r0iTr0iδ−r0ir0iT)R(t)T
= R ( t ) I 0 R ( t ) T =\mathbf R(t)\mathbf I_0\mathbf R(t)^T =R(t)I0R(t)T
这样就将时刻t的惯性张量是常量object-space inertia tensor对象空间惯性张量根据当前物体朝向变形得来
牛顿第二定律将物体动量的时间变化率和物体受的合外力结合起来,对于刚体
d d t ( P ( t ) L ( t ) ) = ( f ( t ) τ ( t ) ) \frac{d}{dt}\binom{\mathbf P(t)}{\mathbf L(t)}=\binom{\mathbf f(t)}{\mathbf \tau(t)} dtd(L(t)P(t))=(τ(t)f(t))
f \mathbf f f-net force, τ \tau τ net torque扭矩
若f作用于质心,则刚体的表现会像质量为M的质点,f=ma
若作用在非质心的点,这也可能产生扭矩,an applied force at a point located at from the center of mass,扭矩:
τ = r × f \tau=\mathbf r\times\mathbf f τ=r×f
the torque can be increased by increasing either the applied force or the distance at which it is applied.
定义的辅助量:
v ( t ) = P ( t ) M \mathbf v(t)=\frac {\mathbf P(t)}{M} v(t)=MP(t);
I ( t ) = R ( t ) I 0 R ( t ) T \mathbf I(t)=\mathbf R(t)\mathbf I_0\mathbf R(t)^T I(t)=R(t)I0R(t)T;
ω ( t ) = I ( t ) − 1 L ( t ) \omega(t)=\mathbf I(t)^{-1}\mathbf L(t) ω(t)=I(t)−1L(t)
刚体状态更新的公式:
d d t ( x ( t ) R ( t ) P ( t ) L ( t ) ) = ( v ( t ) ω ∗ ( t ) R ( t ) f ( t ) τ ( t ) ) \frac{d}{dt}\begin{pmatrix} \mathbf x(t)\\ \mathbf R(t)\\ \mathbf P(t)\\ \mathbf L(t)\\ \end{pmatrix} =\begin{pmatrix} \mathbf v(t)\\ \omega ^*(t)\mathbf R(t)\\ \mathbf f(t)\\ \tau(t)\\ \end{pmatrix} dtd⎝⎜⎜⎛x(t)R(t)P(t)L(t)⎠⎟⎟⎞=⎝⎜⎜⎛v(t)ω∗(t)R(t)f(t)τ(t)⎠⎟⎟⎞
we incorporate elastic弹性 and damping阻尼 forces into Newton’s second law
弹力常被表示为位移的函数d(0位移0弹力),阻尼力常被表示为速度的函数,是d或者x的时间导数
v = d x d t = d d d t = x ˙ = d ˙ \mathbf v=\frac{d\mathbf x}{dt}=\frac{d\mathbf d}{dt}=\dot x=\dot d v=dtdx=dtdd=x˙=d˙
由此产生的动态系统: K ( d ) + D ( d ˙ ) + M d ¨ = f e x t \mathbf K(\mathbf d)+\mathbf D(\mathbf{\dot d})+\mathbf M\mathbf{\ddot d}=\mathbf f_{ext} K(d)+D(d˙)+Md¨=fext
K ( d ) \mathbf K(\mathbf d) K(d),内部弹力; D ( d ˙ ) \mathbf D(\mathbf{\dot d}) D(d˙),阻尼力; M \mathbf M M,质量; f e x t \mathbf f_{ext} fext,外力
After discretization both and will be matrices as well, with referred to as the “stiffness” matrix(刚度矩阵,劲度矩阵) and as the “damping” matrix.
劲度矩阵决定了弹力的大小,是弹性力关于位置的Jacobian(雅可比矩阵)的负值: K = − ∂ f ∂ x \mathbf K=-\frac{\partial f}{\partial x} K=−∂x∂f,我们认为K是positive semi-definite半正定(有的作者将其视为半负定)
It is also the negative Hessian of the elastic energy, K = − ∂ 2 f ∂ x i ∂ x j \mathbf K=-\frac{\partial^2 f}{\partial x_i\partial x_j} K=−∂xi∂xj∂2f, encodes the elastic relationships between particles in the system.
Rayleigh damping model瑞利阻尼模型, D = λ K + μ M \mathbf D=\lambda\mathbf K+\mu\mathbf M D=λK+μM
Notice the similarity to the damped zero-length Hookean spring阻尼0长线性弹簧, f = − k d − c d \mathbf f=-k\mathbf d-c\mathbf d f=−kd−cd
定义deformation function,maps points in a rest space, u i \mathbf u_i ui, to points in world space, x i \mathbf x_i xi关于一个点 u 0 u_0 u0线性化,以达到类似仿射变换:
x ( u ) = x ( u 0 ) + A ( u − u 0 ) \mathbf x(\mathbf u)=\mathbf x(\mathbf u_0)+\mathbf A(\mathbf u-\mathbf u_0) x(u)=x(u0)+A(u−u0)
A \mathbf A A为任意的d*d变换矩阵(in -dimensional space), x ( u 0 ) \mathbf x(\mathbf u_0) x(u0)是 u 0 \mathbf u_0 u0对应的world space position,可以认为这是一个变换.
弹力保证这个映射是一个刚性变换(一个全局的旋转和平移),取决于该映射的梯度。deformation gradient变形梯度为 ∂ x ∂ u \frac{\partial \mathbf x}{\partial \mathbf u} ∂u∂x,一般将该类线性映射表示为 ,在这个变形中就是矩阵. describes how infinitesimal 极小的vectors/lengths/displacements位移 in rest space are mapped to world space (ignoring translations).
is the rest→world transformation,measures stretch,if det() = 1体积不变
The Singular Value Decomposition (SVD)奇异值分解 (奇异值分解不一定唯一,Singular values奇异值 are unique and, if they are distinct, singular vectors are unique, up to the sign)
SVD of F = U Σ V T \mathbf F=\mathbf U\Sigma\mathbf V^T F=UΣVT,U和V是标准正交矩阵(orthonormal matrices), Σ \Sigma Σ是对角阵, V T V^T VT将rest space映射到了一个完全一致的空间,变形由非均匀尺度 Σ \Sigma Σ来描述,U将这个perfectly aligned space完全一致的空间映射到world space.polar decomposition极坐标分解 在之后用来避免由于整体旋转而产生的弹力。
由形变梯度定义一个strain metric应变度规、应变指标(一个无量纲量,与物体的规模无关,measures the amount of deformation)
一些图形学中常用的strain metrics:
Green’s finite strain格林有限应变 also known as the right Cauchy-Green strain
ϵ i j = 1 2 ( ∂ x ∂ u i ⋅ ∂ x ∂ u j − I ) = 1 2 ( F T F − I ) \epsilon_{ij}=\frac{1}{2}(\frac{\partial \mathbf x}{\partial u_i}·\frac{\partial \mathbf x}{\partial u_j}-\mathbf I)=\frac{1}{2}(\mathbf F^T\mathbf F-\mathbf I) ϵij=21(∂ui∂x⋅∂uj∂x−I)=21(FTF−I)
优点:简单直接,具有非常好的性质:does not penalize world-space rotations,得到了计算机图形学中早期的广泛应用
缺点:这个度量标准是二次的,导致需要四次的能量函数,导致劲度矩阵K(能量的海森矩阵)是二次的,这样就使得K是不恒定的,就不能实现很多预先的计算或者因式分解,并且会付出大量计算成本
Cauchy’s infinitesimal strain柯西无限小应变
令形变梯度 F = I + D \mathbf F=\mathbf I+\mathbf D F=I+D
ϵ = 1 2 ( ( I + D ) T ( I + D ) − I ) \epsilon=\frac{1}{2}((I+D)^T(I+D)-I) ϵ=21((I+D)T(I+D)−I)
= 1 2 ( D T + D + D T D ) =\frac{1}{2}(D^T+D+D^TD) =21(DT+D+DTD)—去括号
= 1 2 ( ( D + I ) T + ( D + I ) + D T D ) − I =\frac{1}{2}((D+I)^T+(D+I)+D^TD)-I =21((D+I)T+(D+I)+DTD)−I
= 1 2 ( F T + F + D T D ) − I =\frac{1}{2}(F^T+F+D^TD)-I =21(FT+F+DTD)−I
if deformation is small (i.e. infinitesimal), D T D D^TD DTD可舍去,得到Cauchy’s infinitesimal strain
ϵ = 1 2 ( F T + F ) − I = 1 2 ( F + F T ) − I \epsilon=\frac{1}{2}(F^T+F)-I=\frac{1}{2}(F+F^T)-I ϵ=21(FT+F)−I=21(F+FT)−I
using Einstein notation, ϵ i j = 1 2 ( ∂ x ∂ u i + ∂ x ∂ u j ) − δ i j \epsilon_{ij}=\frac{1}{2}(\frac{\partial \mathbf x}{\partial u_i}+\frac{\partial \mathbf x}{\partial u_j})-\delta_{ij} ϵij=21(∂ui∂x+∂uj∂x)−δij
优点:线性的。leads to a quadratic二次的 energy and a constant Hessian,便于预处理
缺点:模型分析整个领域都是基于假设:弹性形变会发生、但很小。 this strain metric does penalize world-space rotations,使得在大的形变中产生大量unpleasant artifacts
co-rotated strain metric同向旋转应变度量–most common strain model
在柯西线性应变的基础上通过the polar decomposition极分解移除旋转,一旦计算出形变梯度,可以计算出极坐标分解 F = Q F ~ F=Q\widetilde{F} F=QF ,根据前边推出来的公式 ϵ = 1 2 ( F ~ + F ~ T ) − I \epsilon=\frac{1}{2}(\widetilde F+\widetilde F^T)-I ϵ=21(F +F T)−I,用 F ~ \widetilde{F} F 取代F
显式丢弃了旋转, the metric does not penalize rotations,changing rotations意味着劲度矩阵不再恒定,仍可以进行一些有效的预处理。
F ~ \widetilde{F} F 是对称阵, F ~ = 1 / 2 ( F ~ + F ~ T ) \widetilde{F}=1/2(\widetilde{F}+\widetilde{F}^T) F =1/2(F +F T),这些函数值相等,但他们的派生函数不一定相等
单位:Newton’s per meter quared( N / m 2 N/m^2 N/m2)。
衡量物质对弹性形变的reaction。Different materials have different stress-strain relationships应力-应变关系,常用参数化模型(parameterized models)描述。
计算机图形学中最常用的模型是线性的: σ = C ϵ \sigma=C\epsilon σ=Cϵ( C is a rank-four tensor四阶张量 containing 81 entries)考虑 σ \sigma σ和 ϵ \epsilon ϵ是对称的,减少到36 unique entries;确保iso-tropic(各向同性,不会不同地抵抗不同方向的变形),则只有两个参数, Lamé coefficients(拉米系数)一个说明这两个系数的convenient way: σ i j = λ ϵ k k δ i j + 2 μ ϵ i j \sigma_{ij}=\lambda\epsilon_{kk}\delta_{ij}+2\mu\epsilon_{ij} σij=λϵkkδij+2μϵij
矩阵形式: σ = λ T r ( ϵ ) I + 2 μ ϵ \mathbf \sigma=\lambda Tr(\epsilon)I+2\mu\epsilon σ=λTr(ϵ)I+2μϵ
stress是一些常量乘strain(即常数倍),加一个缩放单位矩阵(a scaled identity matrix) 乘the trace of the strain
第二项近似保持体积
还有更成熟的应力-变力关系已被提出,特别是在有机物和弹塑性的领域
弹性势能密度由于stress and strain产生
η = 1 2 σ i j ϵ i j = 1 2 σ : ϵ = 1 2 ∑ i , j σ i j ϵ i j \eta=\frac{1}{2}\sigma_{ij}\epsilon_{ij}=\frac{1}{2}\sigma:\epsilon=\frac{1}{2}\sum_{i,j}\sigma_{ij}\epsilon_{ij} η=21σijϵij=21σ:ϵ=21∑i,jσijϵij
总弹性势能由对物体整个体积的能量密度积分得出
traction牵引力: force per unit area,
τ = σ n \tau=\sigma \mathbf n τ=σn,
n \mathbf n n是垂直于待积分区域的单位表面
Elastic forces减少系统的能量,方向沿能量的负梯度方向
the force at a point x i x_i xi: f = − ∂ η ∂ x i \mathbf f=-\frac{\partial \eta}{\partial \mathbf x_i} f=−∂xi∂η
Forces也可以由对物体边界的牵引力积分来定义, R, (the foundation of finite volume methods有限体积法的基础), f = ∮ ∂ R σ n d S \mathbf f=\oint_{\partial R}\sigma \mathbf ndS f=∮∂RσndS
Stress Revisited
stress maps from normals法线 to forces(per unit area)
normals and forces are in world space-> stress is known as a Cauchy stress(写作 σ \sigma σ)
the stress maps normals in material space to forces in material space-> second Piola-Kirchhoff stress(有时写作S)
first Piola-Kirchhoff stress maps normals in material space to forces in world space(写作P)
只考虑一种stress,写作 σ \sigma σ
(我们之前定义的stress实际是a second Piola-Kirchhoff stress)
convert between these stresses(they measure the same thing just in different coordinate systems):
令J=det(F),我们有: P = J σ F − T = F S \mathbf P=J\sigma\mathbf F^{-T}=FS P=JσF−T=FS
我们可以对给定应用选择最方便的方式,The first Piola-Kirchhoff最受欢迎, works with normals in the material space (where they are often constant) and maps directly to forces in world space (where they will be applied).但很多材料模型 (也是stress-strain relationships)只有 a second Piola-Kirchhoff stress.
permanent deformation永久变形,通常在材料失效时发生
把形变梯度分成两部分,an elastic part and a plastic part: F = F e F p \mathbf F=\mathbf F_e\mathbf F_p F=FeFp
忽略塑性,使用 F e \mathbf F_e Fe来计算 elastic strain, stress, forces. F p \mathbf F_p Fp衡量了永久形变, F e \mathbf F_e Fe则是映射(from rest to world space),是可逆的。
如何分解暂且不提。
cannot support a shear force and instead rearranges itself in response不能承受剪切力
do support compressive forces可以承受压缩力
a brief overview of the quantities and equations describing fluid motion
流体模拟论文参见Bridson [2015]
incompressible不能压缩的 Navier-Stokes equations:
ρ ( u t + u ⋅ ▽ u ) = − ▽ p + μ Δ u + f \rho(\mathbf u_t+\mathbf u·\bigtriangledown \mathbf u)=-\bigtriangledown p+\mu\Delta \mathbf u+\mathbf f ρ(ut+u⋅▽u)=−▽p+μΔu+f,
▽ ⋅ u = 0 \bigtriangledown· \mathbf u=0 ▽⋅u=0
ρ \rho ρ,液体密度; u ( x , t ) = ( u ( x , t ) , v ( x , t ) , w ( x , t ) ) T \mathbf u(\mathbf x,t)=(u(\mathbf x,t),v(\mathbf x,t),w(\mathbf x,t))^T u(x,t)=(u(x,t),v(x,t),w(x,t))T,三维流体速度; u t \mathbf u_t ut是 ∂ u ∂ t \frac{\partial\mathbf u}{\partial t} ∂t∂u的简写; p,压力; μ \mu μ动态粘滞度(dynamic viscosity);f,body forces(体积力),比如重力。
注意:数学中常用 Δ \Delta Δ表示拉普拉斯算符(梯度的散度),工程中常用 ▽ 2 \bigtriangledown^2 ▽2或者 ▽ ⋅ ▽ \bigtriangledown·\bigtriangledown ▽⋅▽
第一个等式使用动量守恒原理推出(推导见 [Landau and Lifshitz 1959; Bridson 2015])
给定形式下 表示单位体积所受的力,单位为 N / m 3 N/m^3 N/m3,类比牛顿第二定律
在上边N-S方程的左侧,以质量m来表示密度,acceleration term加速度项 形式为 u t + u ⋅ ▽ u \mathbf u_t+\mathbf u·\bigtriangledown \mathbf u ut+u⋅▽u
考虑一流体质点位置为 x p ( t ) \mathbf x_p(t) xp(t),流体的速度场 u ( x , t ) \mathbf u(\mathbf x,t) u(x,t)是位置 x \mathbf x x和时间t的函数,质点经过速度场,任意给定时间t,质点速度为 v p ( t ) = u ( x p ( t ) , t ) \mathbf v_p(t)=\mathbf u(\mathbf x_p(t),t) vp(t)=u(xp(t),t)
加速度:
a p ( t ) = d d t v p ( t ) = d d t u ( x p ( t ) , t ) \mathbf a_p(t)=\frac{d}{dt}\mathbf v_p(t)=\frac{d}{dt}\mathbf u(\mathbf x_p(t),t) ap(t)=dtdvp(t)=dtdu(xp(t),t)------(用链式法则)
= ( ∂ u ∂ t + ∂ u ∂ x d x p d t ) ( x p ( t ) , t ) =(\frac{\partial \mathbf u}{\partial t}+\frac{\partial \mathbf u}{\partial \mathbf x}\frac{d\mathbf x_p}{dt})(\mathbf x_p(t),t) =(∂t∂u+∂x∂udtdxp)(xp(t),t)
又 u t = ∂ u ∂ t \mathbf u_t=\frac{\partial \mathbf u}{\partial t} ut=∂t∂u, ▽ u = ∂ u ∂ x \bigtriangledown \mathbf u=\frac{\partial \mathbf u}{\partial \mathbf x} ▽u=∂x∂u,而且事实上 d x p d t = u ( x p ( t ) , t ) \frac{d\mathbf x_p}{dt}=\mathbf u(\mathbf x_p(t),t) dtdxp=u(xp(t),t)
所以加速度化为: D u D t = u t + u ⋅ ▽ u \frac{D\mathbf u}{Dt}=\mathbf u_t+\mathbf u·\bigtriangledown \mathbf u DtDu=ut+u⋅▽u
(这个量通常被称作速度场的material derivative或substantial derivative)
u = ( u , v , w ) T \mathbf u=(u,v,w)^T u=(u,v,w)T, D u D t = u t + u ⋅ ▽ u = ( u ( t ) + u ⋅ ▽ u v ( t ) + u ⋅ ▽ v w ( t ) + u ⋅ ▽ w ) \frac{D\mathbf u}{Dt}=\mathbf u_t+\mathbf u·\bigtriangledown \mathbf u=\begin{pmatrix} u(t)+\mathbf u·\bigtriangledown u\\ v(t)+\mathbf u·\bigtriangledown v\\ w(t)+\mathbf u·\bigtriangledown w\\ \end{pmatrix} DtDu=ut+u⋅▽u=⎝⎛u(t)+u⋅▽uv(t)+u⋅▽vw(t)+u⋅▽w⎠⎞
N-S公式 : ρ ( u t + u ⋅ ▽ u ) = − ▽ p + μ Δ u + f \rho(\mathbf u_t+\mathbf u·\bigtriangledown \mathbf u)=-\bigtriangledown p+\mu\Delta \mathbf u+\mathbf f ρ(ut+u⋅▽u)=−▽p+μΔu+f ,右侧表示作用在流体上的力。
首项是the negative pressure gradient in the flow流的负压梯度,压力 p ( x , t ) p(\mathbf x ,t) p(x,t)是scalar field标量场,在不可压缩的流体上表现为每个地方维持流动体积、对抗压缩或者扩张力。this forcing term drives the flow from areas of high pressure to areas of low pressure,在不可压缩的流体中内部产生,以抵抗由于其他力引起的压缩或膨胀。其值为保证流体任意部位不被压缩或扩张,由此,有时被称为流体的无发散约束(divergence-free constraint on the fluid,该概念会在第五章讨论)的拉格朗日乘数。
第二项,viscous forces粘滞力,流体的动态粘滞度 μ \mu μ是取决于流体类型的材料参数,流体越黏稠 μ \mu μ越大。有时以动粘滞率(viscosity kinematic)的形式表示, v = μ ρ v=\frac{\mu}{\rho} v=ρμ,产生于以不同速度流动的流体层间的阻力.认为拉普拉斯算子是可以测量一个函数在某一点的值和周围平均值之间的差值, μ Δ u \mu\Delta \mathbf u μΔu惩罚了速度差异,表现为使流体整体速度相同。粘性流体流经固体壁,与壁相邻的流体质点会受到墙对它的拉力并且粘在墙上,这就是无滑动边界条件(no-slip boundary condition),其数学表示为 u ( x , t ) = V ( x , t ) , x ∈ T \mathbf u(\mathbf x,t)=\mathbf V(\mathbf x,t), \mathbf x\in\Tau u(x,t)=V(x,t),x∈T, V \mathbf V V是固体壁的速度, T \Tau T是与壁面接触的流体边界。
最后一项 f \mathbf f f,其他作用在流体上的力(如重力),也可以作为多种其他影响的模型(比如表面张力,基于艺术目的控制流体的控制力或者弹性结构嵌入到流体中产生的力)
质量守恒: ρ t + ▽ ⋅ ( ρ u ) = 0 \rho_t+\bigtriangledown·(\rho\mathbf u)=0 ρt+▽⋅(ρu)=0,将乘积法则应用于空间导数项,得到
▽ ⋅ ( ρ u ) = ∂ x ( ρ u ) + ∂ y ( ρ v ) + ∂ z ( ρ w ) \bigtriangledown·(\rho\mathbf u)=\partial_x(\rho u)+\partial_y(\rho v)+\partial_z(\rho w) ▽⋅(ρu)=∂x(ρu)+∂y(ρv)+∂z(ρw)
= ( ∂ x ρ ) u + ( ∂ y ρ ) v + ( ∂ z ρ ) w + ρ ( ∂ x u + ∂ y v + ∂ z w ) =(\partial_x\rho) u+(\partial_y\rho) v+(\partial_z\rho) w+\rho(\partial_x u+\partial_y v+\partial_z w) =(∂xρ)u+(∂yρ)v+(∂zρ)w+ρ(∂xu+∂yv+∂zw)
= u ⋅ ▽ ρ + ρ ▽ ⋅ u =\mathbf u·\bigtriangledown\rho+\rho\bigtriangledown·\mathbf u =u⋅▽ρ+ρ▽⋅u
由此,使用前边的Material derivative物质导数,质量守恒的等式写为: D ρ D t + ρ ▽ ⋅ u = 0 \frac{D\rho}{Dt}+\rho\bigtriangledown·\mathbf u=0 DtDρ+ρ▽⋅u=0
由于不可压缩性的假设, D ρ D t = 0 \frac{D\rho}{Dt}=0 DtDρ=0,于是得到无发散条件(divergence-free condition): ▽ ⋅ u = 0 \bigtriangledown·\mathbf u=0 ▽⋅u=0,
在流体的任一点成立,将其积分并应用散度定理:
0 = ∫ Ω ▽ ⋅ u d V = ∫ ∂ Ω u ⋅ n d S 0=\int_\Omega\bigtriangledown·\mathbf udV=\int_{\partial\Omega}\mathbf u·\mathbf ndS 0=∫Ω▽⋅udV=∫∂Ωu⋅ndS
即流过任何区域边界的总流量必须为零