Experience Report: Refactoring the Mesh Interface in FLASH, a Multiphysics Software

2018-09-16T22:43:06Z (GMT) by Jared O'Neal Klaus Weide Anshu Dubey
p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #000000; background-color: #ffffff} span.s1 {font-variant-ligatures: no-common-ligatures} <p>FLASH is a highly-configurable multiphysics software designed for solving a large class of problems that involve fluid flows and need adaptive mesh refinement (AMR). FLASH has been in existence for two decades and has undergone four major revisions. It is now undergoing its fifth major revision to deal with increasingly heterogeneous platforms. The architecture of previous versions of the code and the AMR package at its core, Paramesh, are inadequate to meet the challenges posed by heterogeneity. In this paper we describe our experience with refactoring the mesh interface of the code to work with a more modern AMR library, AMReX. The focus of the paper is the refactoring methodology and the attendant software process that we have found useful to ensure that code quality is maintained during the transition.</p>