【Lp-CVT and Applications】
Lp-CVT and Applications 论文笔记
本文是论文 Lp Centroidal Voronoi Tessellation and its Applications 的学习笔记。有不足之处,请指出!非常感谢!
1 主要工作
- 解决问题:推广CVT以适用各向异性和六面体网格划分。
- 推广 CVT ,提出 Lp-CVT,即最小化 Voronoi cell 上的坐标高阶矩,即提出新的目标函数 F L p F_{L_p} FLp。
- 可以使Voronoi cell的轴和预定义背景张量场(各向异性)对齐。
- 使用 准牛顿(quasi-Newton)优化框架,基于目标函数及其梯度的闭式推导计算。
- 可用于曲面网格划分(各面各向异性三角网格)和体网格划分(3D各向异性场的封闭三角网格内部)。
- 应用:四边形占优曲面网格重划分、六面体占优体网格划分。
2 结构
- 介绍Lp-CVT定义、目标函数、导数。
- 将受限L2-CVT应用到曲面网格重划分。
- 将受限Lp-CVT应用到四边形占优曲面网格重划分,3D Lp-CVT应用到六面体占优体网格划分。
3 定义
- Lp-CVT:目标函数 F L p F_{L_p} FLp的最小值。
- 目标函数,即CVT能量,注入各向异性项(My)和LP范数,定义如下:
- 上述式子的 Ω \Omega Ω 要么是曲面 S,要么是封闭曲面 S的内部。在最小化 F L p F_{L_p} FLp的算法中,S被定义为分段线性复合体(PLC)。
4 计算 F L p F_{L_p} FLp
- 给出域
Ω
\Omega
Ω,和一组点
X
X
X。使用BFGS(一种准牛顿算法)最小化
F
L
p
F_{L_p}
FLp,每次迭代需要计算
F
L
p
F_{L_p}
FLp及其梯度。每次迭代的操作:
- 将 Ω \Omega Ω 分解为一组单纯形胞体,由一组整数表示。
- 根据组合结构表示,计算 F L p F_{L_p} FLp及其梯度(闭式形式?)。
4.1 F L p ( X ) F_{L_p}(X) FLp(X)组合结构
- PLC(Piecewise Linear Complex)是一组多边形面(可能非凸),由顶点 pj 和 N f x + b f = 0 N_f x+b_f=0 Nfx+bf=0决定的平面(Nf,bf)表示。
- 曲面网格划分(重新划分一个PLC),体网格划分(划分一个封闭PLC的内部)。
- 将 Ω \Omega Ω 分解为单纯形胞体,称为 integration simplices,这样 F L p ( X ) F_{L_p}(X) FLp(X)可以表示为 x i , p j , ( N f , b f ) x_i,p_j,(N_f,b_f) xi,pj,(Nf,bf)的函数。
曲面网格划分
- RVD(restricted Voronoi diagram)决定
F
L
p
(
X
)
F_{L_p}(X)
FLp(X)的组合结构。
- RVD:3D Voronoi 单元和曲面S的交集。
- RVD可以由一种提取算法(an exact algorithm[Yan et al.2009])计算得到。
- 将每个RVD单元分解为一组三角形面片,对于三角形面片的顶点
C
i
C_i
Ci 有三种类型:
- A(蓝色):曲面S的一个顶点 p j p_j pj 。
- B(绿色):两个RVD单元中心点连线的平分线 [ x 0 , x i ] [x_0,x_i] [x0,xi]和S两个面 ( N f , b f ) , ( N g , b g ) (N_f,b_f),(N_g,b_g) (Nf,bf),(Ng,bg)的共线的交点。
- C(红色):两条平分线 [ x 0 , x i ] , [ x 0 , x j ] [x_0,x_i],[x_0,x_j] [x0,xi],[x0,xj]和S的一个面 ( N f , b f ) (N_f,b_f) (Nf,bf)的交点。
体网格划分
-
CVD(clipped Voronoi diagram)决定 F L p ( X ) F_{L_p}(X) FLp(X)的组合结构。
- CVD:3D Voronoi 单元和封闭曲面S的内部的交集。
- CVD可以由RVD计算得到,然后计算 “walls”,即3D Voronoi 单元的裁剪面,如图B。
-
将每个CVD单元分解为一组四面体,每个四面体由 x 0 , C 1 , C 2 , C 3 x_0,C_1,C_2,C_3 x0,C1,C2,C3表示。多一种顶点 C i C_i Ci 的类型:
- D(黄色):三条平分线
[
x
0
,
x
i
]
,
[
x
0
,
x
j
]
,
[
x
0
,
x
k
]
[x_0,x_i],[x_0,x_j],[x_0,x_k]
[x0,xi],[x0,xj],[x0,xk]的交点,即三个CVD cell的交点。
- D(黄色):三条平分线
[
x
0
,
x
i
]
,
[
x
0
,
x
j
]
,
[
x
0
,
x
k
]
[x_0,x_i],[x_0,x_j],[x_0,x_k]
[x0,xi],[x0,xj],[x0,xk]的交点,即三个CVD cell的交点。
最后
组合结构:每个集成单形 x 0 , C 1 , C 2 , C 3 x_0,C_1,C_2,C_3 x0,C1,C2,C3 由10个整数表示。
- x 0 x_0 x0 的下标
- 每个顶点 C i C_i Ci 的类型由三个整数编码
- 正数 k k k 表示平分线 [ x 0 , x k ] [x_0,x_k] [x0,xk],负数 k k k 表示边界平面 ( N − k , b − k ) (N_{-k},b_{-k}) (N−k,b−k)。
4.2 F L p ( X ) F_{L_p}(X) FLp(X)的代数结构
- F L p ( X ) F_{L_p}(X) FLp(X)及其梯度由组合结构:整数数组、顶点数组( x i x_i xi)、边界平面数组 ( N f , b f ) (N_f,b_f) (Nf,bf)算出。计算每个集成单形 T T T的 F L p T ( X ) F_{L_p}^T(X) FLpT(X)及其梯度的总和得到Lp-CVT能量和梯度。
-
F
L
p
(
X
)
F_{L_p}(X)
FLp(X)的表达式:
-
∇
F
L
p
(
X
)
\nabla F_{L_p}(X)
∇FLp(X)的表达式: