正文

物理模拟的数值方法2011-07-07 19:51:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/yuqiexing/52668.html

分享到:

    动态三维现象的物理模拟均需要控制方程(Governing Equation),而控制方程本身相当复杂,一般是连续的从它的身上一般很难求得解析解。所以首先对时空进行离散化,然后借助于数值方法来表达是一个不错的选择。(早期的流体模拟由于计算能力有限,主要采用参数建模的方法,例如波动函数来模拟波纹效果)

  

    例如描述流体现象最为完整的是纳维一斯托克斯方程(Navier—Stokes Equation,NSE),该方程根据牛顿第二定律推导出来。下面介绍两种著名的数值模拟方法:

 

1、欧拉法


    欧拉法是从研究流体所占据的空间中各个固定点处的运动着手,分析被运动流体所充满的空间中每一个固定点上的流体的速度、压强、密度等参数随时间的变化,以及研究由某一空间点转到另一空间点时这些参数的变化,该方法是一种基于网格的方法

 

    基于网格的欧拉法即是将上述方程离散到网格上,然后计算各个固定网格节点上状态量的变化,从而得到整个场.这里有2种思路进行网格化:一种是交错网格,即一般情况下标量(如压强)分布在网格单元的中心,而速度之类的量分布在单元表面,这种离散的好处足容易保证守恒性条件,目前多采用此思路;另一种则是所有的量都处于同一个位,这种方法简单,不需太多的插值运算,对各个变量也不需区别对待.

 

2、拉格朗日法

 

    拉格朗日法从分析流体各个微团的运动着手,即研究流体中某一指定微团的速度、压强、密度等描述流体运动的参数随时间的变化,以及研究由一个流体微团转到其他流体微团时参数的变化,以此来研究整个流体的运动。

 

    实际上,该类方法对各个相对独立的粒子进行力的分析.通过积分计算这些粒子下一个时刻的位置和其他状态量.该方法是一种基于粒子的方法。拉格朗日法的优点足表达清晰,不需要对整个空间进行处理,能够保证质量守恒,而且比较容易实施控制;但对于平滑运动界面的重建比较难处理,自由界面拓扑的改变必须采用复杂的算法才能构造出表面几何,而且计算量随着粒子数的增多而快速加大.

 

   【参考资料】:对于烟雾、火焰等现象的模拟,视觉效果只是与密度场和温度场相关,我们关注的是体的问题;而对于液体流动则需要去求解其自由表面,才能将其与周围的环境分开,从而施加对应的光照效果.(基于拉格朗日方法的流体表面捕获算法需要先确定那些在流体表面的粒子,然后根据这些粒子构造等值曲面,再多边形化。)

 

    设某质点标记为(a,b,c),该质点的物理量B 的拉格朗日表示式为B = B( a,b,c,t )
式中(a,b,c)称为拉格朗日坐标,可用某特征时刻质点所在位置的空间坐标定义,不同的
(a,b,c)代表不同质点。任意时刻质点相对于坐标原点的位置矢量(矢径)的拉格朗日表示
式为r = r( a,b,c,t ),代表任意流体质点的运动轨迹。

 

    实际上,基于粒子系统的流体现象可以分为两类:质点系模型粒子系统和流质系模型粒子系统。质点系模型粒子系统的边界是不明确的、非连续的、动态变化的,其中的粒子有产生、运动、消亡的过程,如烟火、瀑布、喷泉等都属于质点系。流质系模型粒子系统具有明确的、连续的、动态可变的边界,并且粒子一旦产生便处于运动而永不消亡,如水流、波涛、泥石流等都属于流质系。对于流质系,可忽略其边界以内的粒子,而只关注影响其外观形态的边界上的粒子的产生、运动及变化规律。

 

    常见粒子系统的物理模型有:LBM,SPH等。

 

总结:

    欧拉法和拉格朗日法各有优缺点,为了更真实地模拟流动,基于网格的欧拉算法往往结合拉格朗日粒子算法一起使用,如得到广泛应用的半拉格朗日算法,或者用来对流体进行约束,从而加强交互控制。

 

阅读(2187) | 评论(1)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

loading...
您需要登录后才能评论,请 登录 或者 注册