of-v1706中的IsoAdvector
-
@mohui 这个isoAdvector我大概看过,每个有自由液面的网格(0<alpha<1)的等值面不一定一样。根据每个网格中心的alpha值先插值得到网格节点的alpha值,再利用节点的值构建等值面,使等值面以下的水的几何体积等于该网格中alpha*V的值。得到等值面的信息,包括面心位置,法相和速度,可以得到在dt时间内,等值面以下网格面浸水面积随时间的变化,再由已知的phi值计算dt时间内水的通量。也就是在计算这个通量的时候,考虑了等值面的运动。为了确保这个算法的守恒还用了bounding,大概就是如果某个网格接收水以后,其alpha值大于1,多余的部分不是直接砍掉,而是转移的别的网格。
-
@mengweil抱歉怎么晚了才看到,首先感谢大神的分享,仔细看了几遍你所说的内容,还是有两个疑惑望大神解答.
一:一个网格中心的值可以插成周边网格节点的值吗?(不知道你是否了解FTM,也是一种界面捕捉的方法,好像也是一个中心插值出很多个点的值)
二:“利用节点的值构建等值面,使等值面以下的水的几何体积等于该网格中alphaV的值”这句话是指,构建出来的等值面后,液体的几何体积一定会等于alphaV的值,还是以此条件调整等值面来保证水的几何体积等于该网格中alpha*V的值?:kiss: -
@mohui 不是大神,不是大神,互相交流:laughing: 。
- FTM没了解过,这个isoAdevtor里面,我的理解是,比如二维的正交网格,每个网格节点都有四个网格相连,这个网格节点的值是由周围四个网格中心的值差值而来。
- 是以alphaV为条件,找到对应的等值面。这个构建等值面的过程是根据每个网格节点处的alpha值,比如二维问题,我们就有四个alpha值,这样可以构首先建四个等值面。这四个等值面对应着四个alphaV,判断一下哪两个alphaV中间包含着我们的目标alphaV,然后就在这个范围内构建一个等值面以下的体积关于等值面的值的函数V=func(isovalue),这样就可以找到目标等值面。这里面都是纯几何操作。
-
@mengweilm425 谢谢您的分享,我结合您所说的再消化消化。:big_mouth: