AOMD Logo Scalable Mesh Management Toolkit       
 www.scorec.rpi.edu/AOMD  

AOMD
SCOREC
 
  Developers
Documentation
Source Code
FAQs
Changes
 
 Examples and Gallery
Serial Example
Parallel Example
Parallel Example With Load Balancing
Coupling AOMD with a Solver
 
  Related Links
SCOREC Publications
Trellis
Discontinuous Galerkin
Gmsh

The aim of the Algorithm Oriented Mesh Database (AOMD) is to be a mesh management library (or database) that is able to provide a variety of services for mesh users. The optimal form of the mesh representation is application dependant with different applications requiring different sets of mesh adjacencies. In [1], we presented an approach that was able to deal with any mesh representation. In [2], we extended AOMD to distributed mesh representations. AOMD supports hybrid meshes (Triangles, Quads, Hexes, Tets, Prisms and Pyramids). The parallel paradigm used is the Rensselaer Partitioning Method (RPM) which description can be found in [3].
AOMD is written in C++ and it uses STL as well for containers, iterators and algorithms. Parallel communications are made using the Message Passing Interface (MPI). Optimal message packing is made using the autopack library that was developped at Argonne National Labs by Ray Loy.
AOMD provides advanced services like automatic mesh refinement and coarsening. Mesh refinement introduces load unbalance in partitions. This unbalance is not acceptable if one wants to achieve scalable parallel software. The solution to this unbalance is to dynamically re-partition the mesh. Some load balancing libraries are available on the web. The library Zoltan from Sandia is a package which includes four load balancing libraries based on both graph and octree partitioning. Classically, the balancer takes as input a representation of the parallel mesh (octree or partitioned graph) and provides as output a partition vector telling on which partition a given mesh entity has to be in order to restore the load balance. The completion of dynamic re-partitioning consists of dynamically moving the appropriate entities from one partition to another.
 

Jean-Francois Remacle