Tuesday, February 28, 2017

SAMRAI

"SAMRAI (Structured Adaptive Mesh Refinement Application Infrastructure) is an object-oriented C++ software library that enables exploration of numerical, algorithmic, parallel computing, and software issues associated with applying structured adaptive mesh refinement (SAMR) technology in large-scale parallel application development. SAMRAI provides software tools for developing SAMR applications that involve coupled physics models, sophisticated numerical solution methods, and which require high-performance parallel computing hardware. SAMRAI enables integration of SAMR technology into existing codes and simplifies the exploration of SAMR methods in new application domains. Due to judicious application of object-oriented design, SAMRAI capabilities are readily enhanced and extended to meet specific problem requirements. The SAMRAI team collaborates with application researchers at LLNL and other institutions. These interactions motivate the continued evolution of the SAMRAI library.

The SAMRAI library provides a rich set of reusable, extensible software components for SAMR application development. The capabilities provided by SAMRAI include:
  • Automatic (user-controlled) dynamic mesh refinement
  • Uniform, non-uniform, and user-defined load balancing
  • Various array data types for representing simulation quantities on a mesh with different centerings (e.g., node, face, cell, etc.), and support for data defined on irregular sets of cell indices
  • Support for user-defined data on a SAMR mesh hierarchy with full to parallel data communication functionality (w/o recompiling the library)
  • Customizable adaptive meshing and integration algorithms (via object-oriented composition and inheritance)
  • Support for meshes with arbitrary spatial dimension
  • Multiblock AMR allowing irregular block connectivity
  • Interfaces to solver libraries, such as hypre, PETSc, and SUNDIALS
  • Flexible parallel restart (HDF5) and input parser
  • Tools for measuring performance, gathering statistics
  • Visualization support via VisIt
The SAMRAI library is partitioned into a collection of software “packages”. Each package is a set of logically-related C++ classes that constitutes a functional role in SAMR application development."

http://computation.llnl.gov/projects/samrai/software

http://computation.llnl.gov/projects/samrai

No comments:

Post a Comment