在物质点法(MPM)中,恰当地使用特定数据结构,可以实现更高的计算效率。其中,常涉及的数据结构有:
- VBD
开源库 OpenVBD
article: VBD: High-Resolution Sparse Volumes with Dynamic Topology - SPGrid
Website: SPGrid: A Sparse Paged Grid structure applied to adaptive smoke simulation
其中,VBD 是基于数据结构 B+tree。B+tree 是 B树 的变种。
Our “VBD”, so named because it is a Volumetric, Dynamic grid that shares several characteristics with B+trees, exploits spatial coherency of time-varying data to separately and compactly encode data values and grid topology.
B树:
B树也称B-树,它是一颗多路平衡查找树。我们描述一颗B树时需要指定它的阶数,阶数表示了一个结点最多有多少个孩子结点,一般用字母m表示阶数。当m取2时,就是我们常见的二叉搜索树。
一颗m阶的B树定义如下:
1)每个结点最多有m-1个关键字。
2)根结点最少可以只有1个关键字。
3)非根结点至少有Math.ceil(m/2)-1个关键字。
4)每个结点中的关键字都按照从小到大的顺序排列,每个关键字的左子树中的所有关键字都小于它,而右子树中的所有关键字都大于它。
5)所有叶子结点都位于同一层,或者说根结点到每个叶子结点的长度都相同。
阶数为 4 的B树,可以表示为:
在实际应用中的B树的阶数m都非常大(通常大于100),所以即使存储大量的数据,B树的高度仍然比较小。每个结点中存储了关键字(key)和关键字对应的数据(data),以及孩子结点的指针。
注:以上文章摘自博文 B树和B+树的插入、删除图文详解 作者:nullzx 1
博文链接:https://www.cnblogs.com/nullzx/p/8729425.html ↩︎