some cool effects

Chapter 1: Wind

1.1 Navier-Stokes Wind Simulation

$$ \frac{Dv}{Dt} = \frac{\partial v}{\partial t} + (V_i \cdot \nabla)V_i = \mathbf{F} + \frac{\mu}{\rho} \nabla^2 V_i - \frac{1}{\rho}P$$

  • $ \frac{\partial \mathbf{v}}{\partial t}$ 是速度随时间的变化。
  • $ (\mathbf{v} \cdot \nabla) \mathbf{v} $ 是速度对流项。
  • $ -\frac{1}{\rho} \nabla P $ 是压力梯度项。
  • $ \nu \nabla^2 \mathbf{v} $ 是粘性扩散项。

$\frac{\partial v}{\partial t}$(Local Dervative)

Local Dervative 也称unsteady term, 表示v在(x,y,z)随时间t变化的速率。锁定空间,水流的速度随时间变化而变化。

$(\mathbf{v} \cdot \nabla) \mathbf{v} $ (Convective Term)

Convective Term(对流项),每个位置的速度都不一样,一个水分子从一个场到另一个场时速度的变化。

material derivative

物质导数 = Local Dervative + Convective Term.速度场中一个质点感受到的加速度 = 站在原地本身因为时间变化而产生的速度变化 + 因为

$\mathbf{F}$

外力。加在速度场中间的外力。

$\frac{\mu}{\rho} \nabla^2 V_i$

扩散项。扩散项主要是描述场是如何在空间内平滑/扩散的。$\mu$ 是动力粘度,$\rho$ 是流体密度。$V_i$ 是拉普拉斯算子,描述的是空间二维导数。高粘性物体(蜂蜜),流动趋近于平滑。欧拉视角(网格)下扩散想可以理解为,当前网格于周边6格(3D)交换。如果某网格速度高,周围网格速度低,扩散项会让它们的速度逐渐接近通过‘交换’。

Integral Equation

好多年没碰过微积分了,认真学习一遍。

Integral Example

step 1 : $$V(t) = V(0) + \int_0^t (Q_{\text{in}} - Q_{\text{out}}) , dt$$

假设池塘水量V(T)在时间t的总量,是最初水量V(0)加上流入流出累积量。

step 2 : $$ \frac{d}{dt} \left[ V(0) + \int_0^t \left( Q_{\text{in}} - Q_{\text{out}} \right) dt \right] $$

对右侧函数求导,并且V(0)是常数得到step3

step3 :
$$
\frac{dV}{dt} = \frac{d}{dt} \int_{0}^{t} (Q_{\text{in}} - Q_{\text{out}}) , dt
$$

根据Calculus Rule(下面的公式)得到step4,
$$\frac{d}{dt} \int_{a}^{t} f(x) ,dx = f(t)
$$

step4 : $$\frac{dV}{dt} = Q_{in} - Q_{out}$$

Calculus Rule

Overall, 积分的导数等于被积函数本身,即微积分互为逆运算,下面是推导。

根据导数的定义:

$$
F’(t) = \lim_{\Delta t \to 0} \frac{F(t+\Delta t) - F(t)}{\Delta t}
$$

用积分函数 ( F(t) ) 代入:

$$
F(t+\Delta t) = \int_{a}^{t+\Delta t} f(x) ,dx
$$

$$
F(t) = \int_{a}^{t} f(x) ,dx
$$

所以:

$$
F(t+\Delta t) - F(t) = \int_{a}^{t+\Delta t} f(x) ,dx - \int_{a}^{t} f(x) ,dx
$$

根据 积分的可加性,我们可以拆分成:

$$
F(t+\Delta t) - F(t) = \int_{t}^{t+\Delta t} f(x) ,dx
$$

现在我们把这个代入导数定义:

$$
F’(t) = \lim_{\Delta t \to 0} \frac{\int_{t}^{t+\Delta t} f(x) ,dx}{\Delta t}
$$

当 $ \Delta t \to 0 $ 时,由于积分 $ \int_{t}^{t+\Delta t} f(x) ,dx $ 只是对一个很小的区间积分,我们可以用Mean Value Theorem for Integrals近似:

$$
\int_{t}^{t+\Delta t} f(x) ,dx \approx f(t) \cdot \Delta t
$$

代入上面的公式:

$$
F’(t) = \lim_{\Delta t \to 0} \frac{f(t) \cdot \Delta t}{\Delta t} = f(t)
$$

这就得到了:

$$
\frac{d}{dt} \int_{a}^{t} f(x) ,dx = f(t)
$$

Mean Value Theorem for Integrals

ps: 总的来说我觉得类似于monte carlo methods, 都是用代表性点来对整个区间去平均值。

在微积分中,定积分的平均值定理(Mean Value Theorem for Integrals)告诉我们:

$$
\int_{a}^{b} f(x) ,dx = f(c) \cdot (b - a), \quad \text{for some } c \in [a, b]
$$

这意味着,在区间 $[a,b]$ 内,存在一个特殊点 c,使得函数 f(x) 的值可以代表整个区间的平均行为。


我们对很小的区间 $[t, t+\Delta t]$ 进行积分:

$$
\int_{t}^{t+\Delta t} f(x) ,dx
$$

由于 $\Delta t$ 非常小,( f(x) ) 在这个小区间内变化不会很大,因此我们可以用平均值定理来近似:

$$
\int_{t}^{t+\Delta t} f(x) ,dx \approx f(t) \cdot \Delta t
$$

这样,我们就能简化导数的计算,使得:

$$
F’(t) = \lim_{\Delta t \to 0} \frac{\int_{t}^{t+\Delta t} f(x) ,dx}{\Delta t} = f(t)
$$

Chapter 2: Cloud

reference

  1. https://zhuanlan.zhihu.com/p/622654876

some cool effects
https://dotafs.com/2024/12/16/my-TA-learning-path/
Author
DOTAFS
Posted on
December 16, 2024
Licensed under