PyClaw: Accessible, Extensible, Scalable Tools for Wave Propagation Problems
arXiv:1111.6583 · doi:10.1137/110856976
Abstract
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.
Cited by in corpus (24)
- SPINN: Sparse, Physics-based, and partially Interpretable Neural Networks for PDEs
- Modeling Thermodynamic Trends of Rotating Detonation Engines
- High performance Python for direct numerical simulations of turbulent flows
- Optimal control of an SIR epidemic through finite-time non-pharmaceutical intervention
- Mode-Locked Rotating Detonation Waves: Experiments and a Model Equation
- Spatially partitioned embedded Runge-Kutta methods
- Multi-scale Physics of Rotating Detonation Engines: Autosolitons and Modulational Instabilities
- Acoustic shock and acceleration waves in selected inhomogeneous fluids
- Learning Free-Surface Flow with Physics-Informed Neural Networks
- A Python Extension for the Massively Parallel Multiphysics Simulation Framework waLBerla
- Efficient Numerical Schemes for Multidimensional Population Balance Models
- CUQIpy: II. Computational uncertainty quantification for PDE-based inverse problems in Python
- Numerical simulation of cylindrical solitary waves in periodic media
- Solitary water waves created by variations in bathymetry
- Derivation and Analysis of Lattice Boltzmann Schemes for the Linearized Euler Equations
- Kinetic functions for nonclassical shocks, entropy stability, and discrete summation by parts
- Numerical simulation and entropy dissipative cure of the carbuncle instability for the shallow water circular hydraulic jump
- On the Rate of Error Growth in Time for Numerical Solutions of Nonlinear Dispersive Wave Equations
- A Comparative Study of Iterative Riemann Solvers for the Shallow Water and Euler Equations
- Diffusion models as probabilistic neural operators for recovering unobserved states of dynamical systems
- Explicit Runge Kutta Methods that Alleviate Order Reduction
- Strong stability preserving explicit linear multistep methods with variable step size
- Theory of weakly nonlinear self sustained detonations
- Solitary wave formation in the compressible Euler equations