PyClaw:可访问、可扩展、可扩展的波动问题求解工具
PyClaw: Accessible, Extensible, Scalable Tools for Wave Propagation Problems
AI总结:
PyClaw 是一个基于 Python 的结构网格求解器,通过自动封装的 Fortran 内核和 PETSc 并行库,在保持 MATLAB 式便捷性的同时实现接近手写 Fortran 的效率和大规模可扩展性,用于求解双曲型偏微分方程。
摘要:
科学软件的开发需要在易用性、通用性和性能之间进行权衡。我们描述了一个通用双曲型偏微分方程求解器的设计,该求解器可以像 MATLAB 一样方便地操作,同时实现接近手写 Fortran 的效率,并可扩展到最大的超级计算机。这是通过使用 Python 编写大部分代码,同时为计算密集型例程使用自动封装的 Fortran 内核,并使用 Python 绑定与并行计算库和其他数值包接口来实现的。这里描述的软件是 PyClaw,一个基于 Python 的结构网格求解器,用于一般的双曲型偏微分方程组 \cite{pyclaw}。PyClaw 为现有 Fortran 代码 Clawpack 和 SharpClaw 的算法提供了强大而直观的接口,简化了代码开发和使用,同时通过 PETSc 库提供了大规模并行性和可扩展的求解器。该包还通过使用 PyWENO 生成高效的高阶加权本质无振荡重构代码得到了进一步增强。通过应用于浅水流动、可压缩流动和弹性问题的示例,展示了这种方法的简单性、能力和性能。
英文摘要:
Development of scientific software involves tradeoffs between ease of use, generality, and performance. We describe the design of a general hyperbolic PDE solver that can be operated with the convenience of MATLAB yet achieves efficiency near that of hand-coded Fortran and scales to the largest supercomputers. This is achieved by using Python for most of the code while employing automatically-wrapped Fortran kernels for computationally intensive routines, and using Python bindings to interface with a parallel computing library and other numerical packages. The software described here is PyClaw, a Python-based structured grid solver for general systems of hyperbolic PDEs \cite{pyclaw}. PyClaw provides a powerful and intuitive interface to the algorithms of the existing Fortran codes Clawpack and SharpClaw, simplifying code development and use while providing massive parallelism and scalable solvers via the PETSc library. The package is further augmented by use of PyWENO for generation of efficient high-order weighted essentially non-oscillatory reconstruction code. The simplicity, capability, and performance of this approach are demonstrated through application to example problems in shallow water flow, compressible flow and elasticity.
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。