我只是在学习这些软件包,所以如果这是一个微不足道/愚蠢的问题,请原谅我。
我们的团队正在使用现代软件实践从头开始重新开发我们的代码。目前它是震源物理的显式波传播代码,但我们小组越来越多地致力于其他耦合震源问题。未来,我们将需要能够隐式处理部分域,使用非结构化网格,并且(像数值 PDE 世界中的许多其他人一样)将考虑使用 GPU。因此,我们真的希望从一开始就做出正确的设计决策来促进这一点。
正在研究的一个大问题是要考虑开发哪些大型国家实验室软件包,PETSc 或 Trilinos。我一直在寻找答案的一个问题是,重叠计算、I/O 和与这些包的通信是多么容易。例如,如果我们使用 PETSc 的分布式数组数据结构,这是否意味着我们将无法在将模板应用于域的其余部分时交换我们的光环单元?(与 EPetra/TPetra 类型的 Trilinos 类似。)