16 多物理场模拟涉及通常以不同的空间和/或时间尺度耦合多个“物理场”。此外,单物理代码通常由不同的团队编写。最常用的耦合技术是一阶算子分裂,但这种方法的准确性和稳定性很差。如何确定对感兴趣的问题有效的算法,以及如何构造软件以使这些算法可用? pde multiphysics implicit-methods software — 杰德·布朗 source
5 我强烈建议使用完全耦合的组件,因为这样可以轻松复制操作员拆分版本。具体来说,可以将计算不同物理量的残差和雅可比矩阵的例程分开,但是该框架应该能够将它们组合起来,形成整个系统的统一残差。这就是PETSc的工作方式。 然后,操作员拆分解决方案可以用作全耦合系统的前提条件,也可以单独用作命令行的求解器。此外,某些联轴器可以保留,而其他联轴器可以取消。PETSc通过PC FieldSplit接口处理此问题。这允许复制混合方案,例如用于流体动力学的半隐式ICE。 — 马特·奈普利 source
5 由于这是一个非常活跃的研究领域,因此我不愿尝试对此做出回答,但是我对不尝试做的事情有一些经验。 不要: 使用旧的应用程序代码A和旧的应用程序B,然后尝试将它们耦合在一起 使用过时的代码(暗示事后无法使用),而不是构建新的应用程序 需要一个巨大的框架(> 10个必需的依赖项)来开始贡献新用户 假设数据布局(网格,矩阵,向量等)易于编写 做: 使用标准的编程实践,并希望使用好的设计模式 阅读有关运算符拆分的文献,以了解准确性和稳定性的局限性 — 肖恩·法利 source