eSTOMP (extreme-scale Subsurface Transport Over Multiple Phases) is the highly scalable (parallel) version of STOMP which was developed using a component-based approach. Parallelization is achieved through domain decomposition using the Global Arrays toolkit (GA) (Nieplocha et al., 2006).The key features of this conversion are 1) the definition of a data model to describe a grid that is distributed over multiple processors, 2) the definition of a grid component interface based on this model, and 3) the implementation of the grid component and the conversion of the remaining portions of the code. The GA toolkit supports a one-sided communication, shared‑memory style programming model on both shared and distributed memory platforms. Because the eSTOMP simulator is highly scalable, it is ideally suited for contaminant transport, geochemical reactive transport, and geothermal and carbon sequestration simulations, since long run times can result when they are executed with a serial code.Like STOMP, eSTOMP is an analytical tool for investigating coupled processes involving
The primary design guides for the eSTOMP simulator has been computational efficiency and alignment with the serial STOMP code. This means that whenever possible, input files, output files and capabilities are the same between the serial and parallel codes. The primary motivation for the development of eSTOMP has been the need for computational efficiency associated with complex systems, regional scale models, model calibration and uncertainty quantification. eSTOMP possesses STOMP capabilities and is highly scalable, which make it well suited for large-scale hydrology, geothermal, and CO2 sequestration applications.
J. Nieplocha, B. Palmer, V. Tipparaju, M. Krishnan, H. Trease, and E. Apra. 2006. "Advances, Applications and Performance of the Global Arrays Shared Memory Programming Toolkit." International Journal of High Performance Computing and Applications, 20(2).