zbMATH — the first resource for mathematics

OpenMG: A new multigrid implementation in Python. (English) Zbl 1349.65116
Summary: In many large-scale computations, systems of equations arise in the form \(Au=b\), where \(A\) is a linear operation to be performed on the unknown data \(u\), producing the known right-hand side, \(b\), which represents some constraint of known or assumed behavior of the system being modeled. Because such systems can be very large, solving them directly can be too slow. In contrast, a multigrid method removes different components of the error at different resolutions using smoothers that reduce high-frequency components of the error more readily than low. Here, we present an open-source multigrid solver written only in Python. OpenMG is a pure Python experimentation environment for testing multigrid concepts, not a production solver. The particular restriction method implemented is for ‘standard’ multigrid. By making the code simple and modular, we make the algorithmic details clear. The resulting solver is tested on an implicit pressure reservoir simulation problem with satisfactory results.
65F10 Iterative numerical methods for linear systems
76S05 Flows in porous media; filtration; seepage
65N55 Multigrid methods; domain decomposition for boundary value problems involving PDEs
65Y15 Packaged methods for numerical algorithms
NumPy; OpenMG; PyAMG; Python; SciPy
Full Text: DOI