一种适用于三维流体模拟的三阶高精度对流插值算法制造技术

技术编号:21202048 阅读:68 留言:0更新日期:2019-05-25 01:52
本发明专利技术提供一种适用于三维流体模拟的三阶高精度对流插值算法。基于约束插值剖面法(CIP),在使用半拉格朗日法求解三维流体运动控制方程中对流项时,针对回退点处物理量的计算发明专利技术了一种高精度插值方法,提升了对流精度。此外,为减少内存消耗,只存储物理场的值及其一阶导数作为计算变量,高阶导数则在保证计算精度不受损的前提下基于推导的泰勒展开式近似计算。本发明专利技术能够在时间和内存消耗较少的前提下保持三阶高精度,且具有紧模板特性。对比现有方法,该方法在视觉质量、速度、内存消耗等方面都有明显的改进,能够有效提升流体模拟的对流精度和速度。

A third-order high-precision convection interpolation algorithm for three-dimensional fluid simulation

The invention provides a third-order high-precision convection interpolation algorithm suitable for three-dimensional fluid simulation. Based on the constrained interpolation profile method (CIP), a high-precision interpolation method is developed for the calculation of physical quantities at the backoff point, which improves the convection accuracy when using the semi-Lagrangian method to solve the convection term in the three-dimensional fluid motion control equation. In addition, in order to reduce memory consumption, only the values of physical fields and their first derivatives are stored as computational variables, while the higher derivatives are approximated based on the derived Taylor expansion under the premise that the computational accuracy is not compromised. The invention can maintain the third-order high precision with less time and memory consumption, and has the characteristics of tight template. Compared with the existing methods, this method has obvious improvements in visual quality, speed, memory consumption and other aspects, which can effectively improve the convection accuracy and speed of fluid simulation.

【技术实现步骤摘要】
一种适用于三维流体模拟的三阶高精度对流插值算法
本专利技术涉及计算机动画
,是一种适用于三维流体模拟的三阶高精度对流插值算法,能有效降低对流数值耗散,减少内存开销,增强流体动画的真实感。
技术介绍
在计算机图形学和虚拟现实领域,基于物理的计算机动画技术始终是科研工作者的研究重点,而基于物理的流体动态模拟技术则是其中的一个热点问题。流体模拟技术在多个领域也被广泛应用,工程领域如航天、航空、航海等的发展也离不开流体技术的支撑。在流体模拟中,数值耗散增加了流体的粘度,使其比预期的更粘稠,并涂抹细节以致视觉质量受损。导致数值耗散的因素中,对流的精度对流体模拟的视觉质量有很大的影响,相关学者为开发精确的对流求解器进行了各种尝试。其中,高阶插值格式广泛应用于计算流体力学(CFD)领域,包括本质非振荡(ENO)、加权ENO(WENO)等,然而由于计算量太大不适用于图形学领域,而且这些插值算法在宽模板上进行,不适用于在非均匀网格上进行仿真。线性方法(Linear)、前后向误差补偿矫正方法(BFECC)、MacCormack法等对流方法广泛用于图形学中,但计算精度有限,最高只可达二阶精度。约束插值剖面(CIP)方法只在单个网格单元构造插值函数,具备紧模板特性,而且具有三阶精度,但扩展CIP求解高维对流方程是一项困难的任务,需要大量的计算时间和内存消耗。另外,现有技术中基于CIP的多维对流求解器,如单调CIP(MCIP)、非分裂型CIP(USCIP)等,只能部分地解决这些问题,有些甚至以损失数值精度或造成不稳定为代价。如何发展一种高效、高精度的高维CIP方案对于提升对流方法的计算效率和精度颇有意义,但仍然是一个具有挑战性的问题。
技术实现思路
针对现有技术的不足,本专利技术提供一种适用于二维流体模拟的三阶高精度对流插值算法:三维基于泰勒展开的约束插值剖面法(3dTaylorExpansionbasedConstrainedInterpolationProfile,3dTECIP)。现有基于CIP的方法应用到高维时,通常存在计算开销高、内存占用大、精度降低或者不稳定等问题。本专利技术方法只将物理量及其一阶导数作为未知变量,高阶导数并不作为变量保存,可以减少大量内存开销。其次,本专利技术使用局部泰勒展开按需计算高阶导数,计算速度较快且保持三阶精度,能够更有效保持丰富的流体细节。最后,方法并未破坏原CIP方法的紧模板特性,除规则网格外同样适用于非均匀网格。本专利技术的技术方案为:一种适用于三维流体模拟的三阶高精度对流插值算法,本专利技术主要用于提高求解流体运动控制方程中对流项的精度。通过利用半拉格朗日法求解流体运动控制方程的对流项时,针对回退点处物理量的计算采用了高精度插值,降低了数值耗散,同时为减少内存消耗,只存储物理场的值及其一阶导数作为计算变量。对于三维对流方程,设φ为对流物理量,则在每个网格点i上存储4个变量,即该物理量及其一阶偏导:φi、和回退点上相应值通过高精度插值求得。具体包括以下步骤:S1)针对回退点P所处的三维网格单元,设网格单元边长为h,八个顶点分别为A、B、C、D、E、F、G、H,网格的所有边均与三维空间的坐标轴平行,网格面ABCD和面EFGH均平行于XY平面且二者沿Z轴正向的间距为h,网格面AEHD和面BFGC平行于YZ平面且且二者沿X轴正向的间距为h,网格面ABFE和面DCGH平行于XZ平面且二者沿Y轴正向的间距为h。设点M和N分别为回退点P在面ABCD和面EFGH上的投影点;S2)、计算八个顶点处φ的二阶偏导的值,具体计算如下:基于以下三阶精度泰勒展开式,令y=z,有对于网格点A,针对以上公式,令Δx=Δz=h,得到:对于网格点B,针对以上公式,令Δx=-h,Δz=h,得到:对于网格点C,针对以上公式,令Δx=-h,Δz=h,得到:对于网格点D,针对以上公式,令Δx=Δz=h,得到:对于网格点E,针对以上公式,令Δx=h,Δz=-h,得到:对于网格点F,针对以上公式,令Δx=-h,Δz=-h,得到:对于网格点G,针对以上公式,令Δx=-h,Δz=-h,得到:对于网格点H,针对以上公式,令Δx=h,Δz=-h,得到:S3)、计算八个顶点处φ的二阶偏导的值,具体计算如下:基于以下三阶精度泰勒展开式,令x=y,y=z,有对于网格点A,针对以上公式,令Δy=Δz=h,得到:对于网格点B,针对以上公式,令Δy=Δz=h,得到:对于网格点C,针对以上公式,令Δy=-h,Δz=h,得到:对于网格点D,针对以上公式,令Δy=-h,Δz=h,得到:对于网格点E,针对以上公式,令Δy=h,Δz=-h,得到:对于网格点F,针对以上公式,令Δy=h,Δz=-h,得到:对于网格点G,针对以上公式,令Δy=-h,Δz=-h,得到:对于网格点H,针对以上公式,令Δy=-h,Δz=-h,得到:S4)、通过二维基于泰勒展开的约束插值剖面算法计算投影点M和N处φ值及其一阶、二阶偏导:φi、其中i∈{M,N};S5)、基于一维约束插值剖面法(CIP)插值算法,通过步骤S4)求得的投影点M和N处的φM、φN、计算回退插值点P处的φP、通过步骤S4)求得的投影点M和N处的计算点P处通过步骤S4)求得的投影点M和N处的计算点P处进一步的,步骤S4)中所述的二维基于泰勒展开的约束插值剖面算法,具体如下:设φ为插值物理量,则在每个网格点i上存储3个变量,即该物理量及其一阶偏导:φi、插值点上相应值通过高精度插值求得。包括以下步骤:S401)、针对插值点P′所处的二维网格单元,设网格单元边长为h′,四个顶点分别为A′、B′、C′、D′,网格的所有边均与二维维空间的坐标轴平行,边A′B′和边C′D′平行于X轴且二者沿Y轴正向的间距为h′,边A′D′和边B′C′平行于Y轴且二者沿X轴正向的间距为h′。设点E′和G′分别为插值目标点P′在边A′B′和A′D′上的投影点;S402)、计算点A′、B′、D′处φ的二阶偏导的值。具体计算如下:基于以下三阶精度泰勒展开式,令Δx=Δy=h′,计算网格点A′处的二阶偏导值,即:同理,令Δx=-h′,Δy=h′,计算网格点B′处的二阶偏导值,即:同理,令Δx=h′,Δy=-h′,计算网格点D′处的二阶偏导值,即:S403)、基于一维CIP插值算法,通过点A′和点B′处的φA′、φB′、计算点E′的φE′、通过点A′和点B′处的计算点E′的通过网格点A′和点D′的φA′、φD′、计算网格点G′的φG′、通过网格点A′和点D′的计算点G′的S404)、根据以下公式计算得到P′点的φP′、其中,ξ′和η′分别为A′E′和A′G′的长度。进一步的,步骤S4)中,针对面ABCD,由于点M为回退插值目标点P在平面ABCD上的投影,设定M点在AB边上的投影为O,在AD边上的投影为K,ξ和η分别为AO和AK的长度。基于上述二维基于泰勒展开的约束插值剖面算法,以A、B、C、D四点处的φ、值作为输入,将点M作为插值目标点,可得到M处的对应值:φM、具体如下:同理,以A、B、C、D四点处的值为输入,将点M作为插值目标点,可得到M处的对应值:计算公式如下:进一步的,步骤S4)中,针对面EFGH,由于点N为回退插值目标点P在平面EFGH上的投影,设定本文档来自技高网
...

【技术保护点】
1.一种适用于三维流体模拟的三阶高精度对流插值算法,其特征在于:通过利用半拉格朗日法求解流体运动控制方程的对流项时,针对回退点处物理量的计算采用了高精度插值,降低了数值耗散,同时为减少内存消耗,只存储物理场的值及其一阶导数作为计算变量,高阶导数则在保证计算精度不受损的前提下基于推导的泰勒展开式近似计算;对于三维对流方程,设φ为对流物理量,则在每个网格点i上存储4个变量,即该物理量及其一阶偏导:φi、

【技术特征摘要】
1.一种适用于三维流体模拟的三阶高精度对流插值算法,其特征在于:通过利用半拉格朗日法求解流体运动控制方程的对流项时,针对回退点处物理量的计算采用了高精度插值,降低了数值耗散,同时为减少内存消耗,只存储物理场的值及其一阶导数作为计算变量,高阶导数则在保证计算精度不受损的前提下基于推导的泰勒展开式近似计算;对于三维对流方程,设φ为对流物理量,则在每个网格点i上存储4个变量,即该物理量及其一阶偏导:φi、和回退点上相应值通过高精度插值求得;具体包括以下步骤:S1)针对回退点P所处的三维网格单元,设网格单元边长为h,八个网格点分别为A、B、C、D、E、F、G、H,网格单元的所有边均与三维空间的坐标轴平行,网格面ABCD和EFGH均平行于XY平面且二者沿Z轴正向的间距为h,网格面AEHD和面BFGC平行于YZ平面且且二者沿X轴正向的间距为h,网格面ABFE和面DCGH平行于XZ平面且二者沿Y轴正向的间距为h;设点M和N分别为回退点P在面ABCD和面EFGH上的投影点;S2)、计算八个顶点处φ的二阶偏导的值,具体计算如下:基于以下三阶精度泰勒展开式,令y=z,有对于网格点A,针对以上公式,令Δx=Δz=h,得到:对于网格点B,针对以上公式,令Δx=-h,Δz=h,得到:对于网格点C,针对以上公式,令Δx=-h,Δz=h,得到:对于网格点D,针对以上公式,令Δx=Δz=h,得到:对于网格点E,针对以上公式,令Δx=h,Δz=-h,得到:对于网格点F,针对以上公式,令Δx=-h,Δz=-h,得到:对于网格点G,针对以上公式,令Δx=-h,Δz=-h,得到:对于网格点H,针对以上公式,令Δx=h,Δz=-h,得到:S3)、计算八个顶点处φ的二阶偏导的值,具体计算如下:基于以下三阶精度泰勒展开式,令x=y,y=z,有对于网格点A,针对以上公式,令Δy=Δz=h,得到:对于网格点B,针对以上公式,令Δy=Δz=h,得到:对于网格点C,针对以上公式,令Δy=-h,Δz=h,得到:对于网格点D,针对以上公式,令Δy=-h,Δz=h,得到:对于网格点E,针对以上公式,令Δy=h,Δz=-h,得到:对于网格点F,针对以上公式,令Δy=h,Δz=-h,得到:对于网格点G,针对以上公式,令Δy=-h,Δz=-h,得到:对于网格点H,针对以上公式,令Δy=-h,Δz=-h,得到:S4)、通过二维基于泰勒展开的约束插值剖面算法计算投影点M和N处的对流物理量φ值及其一阶、二阶偏导:φi、其中i∈{M,N};S5)、基于一维约束插值剖面法(CIP)插值算法,通过步骤S4)求得的投影点M和N处的φM、φN、计算回退插值点P处的φP、通过步骤S4)求得的投影点M和N处的计算回退插值点P处通过步骤S4)求得的投影点M和N处的计算回退插值点P处2.根据权利要求1所述的一种适用于三维流体模拟的三阶高精度对流插值算法,其特征在于:步骤S4)中,所述的二维基于泰勒展开的约束插值剖面算法,具体如下:设φ为插值物理量,则在每个网格点i上存储3个变量,即该物理量及其一阶偏导:φi、插值点上相应值通过高精度插值求得;包括以下步骤:S401)、针对插值点P′所处的二维网格单元,设网格单元边长为h′,四个顶点分别为A′、B′、C′、D′,网格单元的所有边均与二维维空间的坐标轴平行,边A′B′和边C′D′平行于X轴且二者沿Y轴正向的间距为h′,边A′D′和边B′C′平行于Y轴且二者沿X轴正向的间距为h′;设点E′和G′分别为插值目标点P′在边A′B′和A′D′上的投影点;S402)、计算点A′、B′、D′处φ的二阶偏导的值。具体计算如下:基于以下三阶精度泰勒展开式,令Δx=Δy=h′,计算网格点A′处的二阶偏导值,即:同理,令Δx=-h′,Δy=h′,计算网格点...

【专利技术属性】
技术研发人员:朱鉴李泓澍叶境炫曾泽洪陈灿昌蔡瑞初郝志峰
申请(专利权)人:广东工业大学
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1