SAMRAI Rapid Development Kit (SAMRAI-RDK)

Developer: Kevin T. Chu


The SAMRAI Rapid Development Kit (SAMRAI-RDK) is designed to make it easier to do rapid prototyping and fast code development using the SAMRAI library. The kit consists of a small collection of C++ classes that support quick access to several commonly used SAMRAI functions and calculations common to many scientific computations (e.g. creating and allocating memory for variables, filling ghostcells, and setting boundary conditions).


SAMRAI is an excellent software library developed and maintained in the Center for Applied Scientific Computing (CASC) at Lawrence Livermore National Laboratory (LLNL). It is designed to support high-performance and scalable scientific computations on structured-adaptive meshes. For instance, SAMRAI provides functionality to

A major design goal of SAMRAI is to provide support for each of these features in a scalable manner. Furthermore, the API for SAMRAI is designed to shield the application developer from the tedious bookkeeping and memory management involved in writing code for parallel, structured adaptive mesh refinement applications. The underlying philosophy of SAMRAI is that an application developer should be able to migrate to a high-performance, parallel program with adaptive mesh capabilities with minimal effort once a satisfactory numerical algorithm has been developed for calculations on a single, simple rectangular mesh.

SAMRAI is also designed to be a very general software framework for scientific computing and provide support for a wide range of scientific applications. Unfortunately, the flexibility provided by SAMRAI can make it difficult to quickly develop new applications and imposes a steep learning curve for new users. The SAMRAI Rapid Development Kit is designed to lower the activation energy required to use and learn the SAMRAI library.


The most important class in the SAMRAI-RDK is the DataManager class which provides a single point of access for SAMRAI functions. Documentation for the usage of the SAMRAI-RDK currently consists primarily of the header file for the DataManager class and a few example codes.