看板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