当前位置: X-MOL 学术Sci. Program. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Mesh Algorithms for PDE with Sieve I: Mesh Distribution
Scientific Programming Pub Date : 2009 , DOI: 10.3233/spr-2009-0249
Matthew G. Knepley, Dmitry A. Karpeev

We have developed a new programming framework, called Sieve, to support parallel numerical partial differential equation(s) (PDE) algorithms operating over distributed meshes. We have also developed a reference implementation of Sieve in C++ as a library of generic algorithms operating on distributed containers conforming to the Sieve interface. Sieve makes instances of the incidence relation, or arrows, the conceptual first-class objects represented in the containers. Further, generic algorithms acting on this arrow container are systematically used to provide natural geometric operations on the topology and also, through duality, on the data. Finally, coverings and duality are used to encode not only individual meshes, but all types of hierarchies underlying PDE data structures, including multigrid and mesh partitions. In order to demonstrate the usefulness of the framework, we show how the mesh partition data can be represented and manipulated using the same fundamental mechanisms used to represent meshes. We present the complete description of an algorithm to encode a mesh partition and then distribute a mesh, which is independent of the mesh dimension, element shape, or embedding. Moreover, data associated with the mesh can be similarly distributed with exactly the same algorithm. The use of a high level of abstraction within the Sieve leads to several benefits in terms of code reuse, simplicity, and extensibility. We discuss these benefits and compare our approach to other existing mesh libraries.

中文翻译:

带有筛I的PDE的网格算法:网格分布

我们已经开发了一种名为Sieve的新编程框架,以支持在分布式网格上运行的并行数值偏微分方程(PDE)算法。我们还开发了C ++中Sieve的参考实现,它是在符合Sieve接口的分布式容器上运行的通用算法库。筛子是入射关系(或箭头)的实例,它们是容器中表示的概念性第一类对象。此外,系统地使用作用于该箭头容器的通用算法来提供拓扑上的自然几何运算,以及通过对偶来提供数据。最后,覆盖和对偶性不仅用于编码单个网格,还用于编码PDE数据结构基础的所有类型的层次结构,包括多网格和网格分区。为了演示该框架的有用性,我们展示了如何使用与表示网格物体相同的基本机制来表示和操纵网格物体分区数据。我们提供了对网格划分进行编码然后分配网格的算法的完整描述,该算法与网格尺寸,元素形状或嵌入无关。此外,可以使用完全相同的算法类似地分配与网格关联的数据。在Sieve中使用高级别的抽象会带来代码重用,简单和可扩展性方面的诸多好处。我们讨论了这些好处,并将我们的方法与其他现有的网格库进行了比较。我们提供了对网格划分进行编码然后分配网格的算法的完整描述,该算法与网格尺寸,元素形状或嵌入无关。此外,可以使用完全相同的算法类似地分配与网格关联的数据。在Sieve中使用高级抽象会带来代码重用,简单和可扩展性方面的诸多好处。我们讨论了这些好处,并将我们的方法与其他现有的网格库进行了比较。我们提供了对网格划分进行编码然后分配网格的算法的完整描述,该算法与网格尺寸,元素形状或嵌入无关。此外,可以使用完全相同的算法类似地分配与网格关联的数据。在Sieve中使用高级抽象会带来代码重用,简单和可扩展性方面的诸多好处。我们讨论了这些好处,并将我们的方法与其他现有的网格库进行了比较。在Sieve中使用高级抽象会带来代码重用,简单和可扩展性方面的诸多好处。我们讨论了这些好处,并将我们的方法与其他现有的网格库进行了比较。在Sieve中使用高级抽象会带来代码重用,简单和可扩展性方面的诸多好处。我们讨论了这些好处,并将我们的方法与其他现有的网格库进行了比较。
更新日期:2020-09-25
down
wechat
bug