Rational-WENO: A lightweight, physically-consistent three-point weighted essentially non-oscillatory scheme
<|reference_start|>Rational-WENO: A lightweight, physically-consistent three-point weighted essentially non-oscillatory scheme: Conventional WENO3 methods are known to be highly dissipative at lower resolutions, introducing significant errors in the pre-asymptotic regime. In this paper, we employ a rational neural network to accurately estimate the local smoothness of the solution, dynamically adapting the stencil weights based on local solution features. As rational neural networks can represent fast transitions between smooth and sharp regimes, this approach achieves a granular reconstruction with significantly reduced dissipation, improving the accuracy of the simulation. The network is trained offline on a carefully chosen dataset of analytical functions, bypassing the need for differentiable solvers. We also propose a robust model selection criterion based on estimates of the interpolation's convergence order on a set of test functions, which correlates better with the model performance in downstream tasks. We demonstrate the effectiveness of our approach on several one-, two-, and three-dimensional fluid flow problems: our scheme generalizes across grid resolutions while handling smooth and discontinuous solutions. In most cases, our rational network-based scheme achieves higher accuracy than conventional WENO3 with the same stencil size, and in a few of them, it achieves accuracy comparable to WENO5, which uses a larger stencil.<|reference_end|>
@article{shahane2024rational-weno:,
    title={Rational-WENO: A lightweight, physically-consistent three-point weighted
  essentially non-oscillatory scheme},
    author={Shantanu Shahane, Sheide Chammas, Deniz A. Bezgin, Aaron B. Buhendwa,
  Steffen J. Schmidt, Nikolaus A. Adams, Spencer H. Bryngelson, Yi-Fan Chen,
  Qing Wang, Fei Sha, Leonardo Zepeda-N'u~nez},
    journal={arXiv preprint arXiv:2409.09217},
    year={2024},
    archivePrefix={arXiv},
    eprint={2409.09217},
    primaryClass={math.NA cs.LG cs.NA}
}