拓扑操作的计算框架
1. 引言
科学计算领域常常会遇到涉及不同拓扑元素上的复杂公式。例如,一些离散化方案要求标量解存储在顶点上,而向量通量的投影则存储在边上。许多应用需要对偏微分方程(PDE)进行离散化以及插值机制,因此严重依赖于环境提供的基本遍历机制。离散化方案通常需要将原本与顶点关联的量转移到边上,反之亦然。边上通量的投影也需要组合成与顶点和边相关的真正向量值。为了实现这一点,需要通过遍历顶点或边的局部邻域来收集所需信息。到目前为止,数据结构和算法的实现方式高度依赖于具体应用和离散化方案,使得它们几乎无法复用。
我们提出了一组基本的遍历操作,足以满足许多应用的需求。这种方法导致了拓扑结构的严格实现,涵盖了所有类型的拓扑元素,如顶点、单元和称为面的一般多维元素。由于不需要为每个元素(如边 - 单元遍历)显式编写遍历算法,因为这些信息可以从一组高度优化的操作中自动推导出来,所以源代码的表达能力得到了提高。
迭代器概念允许基于此接口制定算法,而无需考虑拓扑数据结构的实际实现,包括维度和原型。持续使用此接口可导致算法在维度和拓扑上的独立表述,例如有限体积离散化方案可以独立于单元复合体的类型和维度进行表述。
2. 动机和相关工作
开发拓扑框架的动机源于科学计算领域高性能应用,特别是技术计算机辅助设计(TCAD)对灵活性的需求。随着不同模拟工具数量的增加以及对底层数据结构的各种要求,问题随之而来:如果应用程序得到正确实现,其哪一部分可以被复用。我们工作的主要目标是提供一个库,为科学计算领域的许多不同类型的模拟工具提供通用功能。这对于在拓扑单元复合体上求值的函数尤其适用。
在过去的十年中,人们采取了许多方法来实现用于求解偏微分
超级会员免费看
订阅专栏 解锁全文
1238

被折叠的 条评论
为什么被折叠?



