看板Physics
標 題Re: 有人懂的水的物理數學方程式嗎 ?
發信站台大電機 Maxwell BBS (Thu Jan 9 14:10:47 2003)
轉信站Ptt!news.ntu!bbs.ee.ntu!Maxwell
某位網友的回答,應該是這樣了
這一篇論文, 想要用電腦來模擬水的流動.
像電影中想要電腦來畫出水在動的效果, 必需算出在每一個時間片斷中,
每一個單位水的3D位置與水與外界接觸的表面資料 (像是位置, 法向量的)
這樣, 有了 那些接觸表面資料, 之後在算圖畫圖時, 光的折射反射就可以去計算.
簡單來說, 想要用合乎物理的方式來畫出水在動的效果的話,
1) 隨著時間改變, 水分布的狀態可能改變, 所以用空間中分格子的方式,
(Voxel Grid, 3D 空間中的格子, 比較: 2D 平面中的格子可以叫 Pixel Grid,etc)
而每個 Voxel 內的水的移動方向, 要算附近鄰居格子 Voxel 作用的力 和原來
自己的速度。而這些力, 又和個別的速度、密度、壓力有關。
2) 翻翻書, 查到 Navier-Stokes Fluid Dynamics 公式, 可以算出前面提到的東西,
用了數學的微分, 成為文章中的 WaterEquation01
※ 引述《[email protected] (納粹3K黨的信徒覺悟吧)》之銘言:
: 最近要做心得報告,但看不懂內容,可否幫個忙
: pdf原文:
: http://graphics.stanford.edu/%7Efedkiw/papers/stanford2001-02.pdf
: http://home.pchome.com.tw/world/blueharvest/WaterEquation01.jpg
: http://home.pchome.com.tw/world/blueharvest/WaterEquation02.jpg
: http://home.pchome.com.tw/world/blueharvest/WaterEquation03.jpg
: 1.以上第一個和第二、三都是水的公式,為什麼不太一樣?
: 2.這個公式和其中的符號和字母各代表什麼意思(中文解釋)?
3) u 是 liquid velocity field, 白話來說, 每個單位的水都有其速度, 整個看起來
叫 field, 個別看的話, u(x,t) 是 在 x 的水 於 t 時間的速度。
(粗體字的x 是 空間中的位置, 等於(x,y,z) )
u(t) 則是 在 t 時間的 liquid velocity field.
u_t 是 the changes in the velocity field over time, 即 d u(t) /dt
在流體力學中, 有一個重要的 rule: Mass Conservation 簡單來說,
流進去的水和流出來的水, 量是不變的。這一條通常寫成
D u = 0, 可以看成, 流進格子內的水, 和流出格子的水, 量是一樣的.
(我用大寫 D 表是 偏微分的 gradient operator)
4) 然後就公式而言, 導的方法不一樣, 看起來會差一點點,
精要地說,
Eq. 3.2: u_t = v D(D u) - (u D)u - (D p)/tho + g
^^^
the changes in the velocity field over time
^^^^^^^^
viscosity term
^^^^^^^^^
mess term
^^^^^^^^^^^
pressure term
^^^ gravity
很像是:
[加速度] = [黏滯力] + [某力的修正項]
+ [壓力] + [地球重力]
上面我亂講的, 單位性質都不對, 只是為了看起來比較有感覺,
比較好的推導可以去偉大的 科學世界 查查
http://scienceworld.wolfram.com/physics/Navier-StokesEquations.html
: I. Model the static environment as a voxel grid. (Voxel Grid?不懂)
把世界分成空間中一格一格的
: II. Model the liquid volume using a combination of
: particles and an implicit surface (implicit surface? 不懂).
: Then, for each simulation time step
空間中有水的部分, 就用particles(一個一個的水)和 implicit surface
(用 implicit function 所 model 出來的水的表面), 來做下面的步驟
: III. Update the velocity field by solving 圖03 using finite
: differences combined with a semi-Lagrangian method.
把 u_t 算出來,
: IV. Apply velocity constraints due to moving objects.
把 u_t 加到 u(t-1) 變成 u(t), 即 在 t 時間的 liquid velocity field
以上是 equation 3.2 做的是, 也就是你寫的 WaterEquation 03
: V. Enforce incompressibility by solving a linear system
: built from 圖WaterEquation02 或 03
: built from 圖WaterEquation02 或 03
WaterEuqation02 (Mess Conservation) 每一小格子都要成立,
所列出來的 linear system (一堆相似的 equations) 去解它們.
: VI. Update the position of the liquid volume (particles and
: implicit surface) using the new velocity field.
然後, 就可以算出在 t 時刻, 各個水的分布狀況。
: Velocity是不是當速率,但在圖
下面就沒問題了, :) 前面提到, 一堆小東西的 velocity 一起列出來,
叫 velocity field. 見前面第三點
--
※ Origin: 臺大電機 Maxwell 站 ◆ From: u46-74.u203-204.giga.net.tw