初学者理解窄带水平集构建流程

1.先构建零水平集(可能是轮廓表面)和窄带,如图中曲线。根据自定义的k值(k为窄带宽度) ,划分出窄带轮廓(图中黑点)【构建方法后面补充,我也没弄懂】

水平集在数学上以函数Φ(x,t)形式表明(下图中的公式代表着它的另一种实现形式),但在代码中无法求解隐式偏微分方程,所以将零水平集函数离散成格点。零水平集就变成点的集合,可以看成点连成的函数曲线。这里引入一个符号距离值(sdf)的概念,sdf的大小代表着该点距离零水平面的最短距离。零水平面上的点sdf=0,即Φ(xn,t)=0。这下概念就串联起来了,sdf就是水平集离散化的结果,所以在后续编写代码中,对水平集进行衍化,就是对零等值面上点sdf值进行数值计算。

2.确定观测点和边界点

首先说一下原因:

在衍化过程中,零等值面会随着时间和迭代逐渐变化。具体来说,零等值面(即水平集 Φ=0Φ=0 的位置)会根据自己设定的条件进行衍化,导致其形状和位置发生变化。衍化的过程是零等值面向窄带边缘变化,而不是窄带边界向零等值面衍化。在衍化的过程中,零等值面可能越过设定的窄带k值,此时就需要设定观测点和边界点。

我看了一些文献,感觉大家都倾向于将边界点设为观测点,这样就可以知道零水平面是否超过设定的边界了。

3.重新初始化

当固定的边界点(观测点)有一个sdf的值发生正负号改变时,代表着此时零水平面已经有部分越过了边界,此时需要对零水平面、窄带、边界点进行重新初始化,重新构建窄带水平集。

以此时(刚被观测到越过边界时)的零水平面作为新一轮(步骤1)的零水平面,步骤跳转到1,再进行重复衍化,直到达到设定的衍化次数或时间。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值