Managing application complexity in the SAMRAI object‐oriented framework

A major challenge facing software libraries for scientific computing is the ability to provide adequate flexibility to meet sophisticated, diverse, and evolving application requirements. Object‐oriented design techniques are valuable tools for capturing characteristics of complex applications in a software architecture. In this paper, we describe certain prominent object‐oriented features of the SAMRAI software library that have proven to be useful in application development. SAMRAI is used in a variety of applications and has demonstrated a substantial amount of code and design re‐use in those applications. This flexibility and extensibility is illustrated with three different application codes. We emphasize two important features of our design. First, we describe the composition of complex numerical algorithms from smaller components which are usable in different applications. Second, we discuss the extension of existing framework components to satisfy new application needs. Published in 2002 by John Wiley & Sons, Ltd.

[1]  Geoffrey Furnish Container-free numerical algorithms in C++ , 1998 .

[2]  Alejandro L. Garcia,et al.  Direct Simulation Monte Carlo , 1997 .

[3]  Harold C. Edwards,et al.  Functional Requirements for SIERRA Version 1.0 Beta , 1999 .

[4]  Scott R. Kohn,et al.  Toward a Common Component Architecture for High-Performance Scientific Computing , 1999, HPDC.

[5]  Richard D. Hornung,et al.  Adaptive Mesh Refinement and Multilevel Iteration for Flow in Porous Media , 1997 .

[6]  Ann S. Almgren,et al.  An adaptive level set approach for incompressible two-phase flows , 1997 .

[7]  Scott W. Haney,et al.  Rapid Application Development and Enhanced Code Interoperability using the POOMA Framework , 1998 .

[8]  D. Hornungy,et al.  The Use of Object-Oriented Design Patterns in the SAMRAI Structured AMR Framework , 1998 .

[9]  Francis J. Alexander,et al.  The direct simulation Monte Carlo method , 1997 .

[10]  Daniel J. Quinlan,et al.  P++, a C++ Virtual Shared Grids Based Programming Environment for Architecture-Independent Development of Structured Grid Applications , 1992, CONPAR.

[11]  Ann S. Almgren,et al.  High Reynolds Number Simulations of Axisymmetric Tornado-like Vortices with Adaptive Mesh Refinement , 1997 .

[12]  Matthew H. Austern Generic programming and the STL - using and extending the C++ standard template library , 1999, Addison-Wesley professional computing series.

[13]  Jeremy G. Siek,et al.  The Matrix Template Library: generic components for high-performance scientific computing , 1999, Comput. Sci. Eng..

[14]  Alejandro L. Garcia,et al.  Adaptive Mesh and Algorithm Refinement Using Direct Simulation Monte Carlo , 1999 .

[15]  Richard Courant,et al.  Supersonic Flow And Shock Waves , 1948 .

[16]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[17]  M. Berger,et al.  Adaptive mesh refinement for hyperbolic partial differential equations , 1982 .

[18]  E. Meshkov Instability of the interface of two gases accelerated by a shock wave , 1969 .

[19]  Daniel J. Quinlan,et al.  Overture: An Object-Oriented Framework for Solving Partial Differential Equations , 1997, ISCOPE.

[20]  John B. Bell,et al.  Cartesian grid method for unsteady compressible flow in irregular regions , 1995 .

[21]  Alejandro L. Garcia,et al.  Generation of the Chapman-Enskog Distribution , 1998 .

[22]  D. Quinlan,et al.  Run-time recognition of task parallelism within the P++ parallel array class library , 1993, Proceedings of Scalable Parallel Libraries Conference.

[23]  William Gropp,et al.  Efficient Management of Parallelism in Object-Oriented Numerical Software Libraries , 1997, SciTools.

[24]  Edmond Chow,et al.  Design of the HYPRE preconditioner library , 1998 .

[25]  P. Colella,et al.  A Conservative Adaptive Projection Method for the Variable Density Incompressible Navier-Stokes Equations , 1998 .

[26]  Milo R. Dorr,et al.  Simulation of laser plasma lamentation using adaptive mesh re nement , 2002 .

[27]  F. XABIER GARAIZAR,et al.  Adaptive Mesh Refinement and Front-Tracking for Shear Bands in an Antiplane Shear Model , 1998, SIAM J. Sci. Comput..

[28]  John A. Trangenstein,et al.  Adaptive Mesh Refinement for Wave Propagation in Nonlinear Solids , 1995, SIAM J. Sci. Comput..

[29]  M S Day,et al.  Numerical simulation of laminar reacting flows with complex chemistry , 2000 .

[30]  P. Colella,et al.  Local adaptive mesh refinement for shock hydrodynamics , 1989 .