Tpetra: Document 3-Map finite-element global assembly use pattern
Created by: mhoemmen
@trilinos/tpetra @amklinv The three Maps in question refer to mesh points. This is for a finite-element code where elements are uniquely owned by processes, but mesh points or other discretization goodies associated with elements may be shared by multiple processes. In the text below, I'll assume that degrees of freedom live on mesh points, but the same considerations apply for degrees of freedom that live on edges.
- Uniquely owned (nonoverlapping Map), with mesh points that my MPI process owns
- Overlapping Map, with mesh points belonging to elements that my MPI processes owns
- Overlapping Map, with mesh points connected to points in (1) or (2)
Map (3) is the column Map of the sparse graph / matrix. Use replaceColumnMap if necessary. We will fill out this pattern in more detail in discussion of this issue. It has already proven useful for at least three different applications, two of which use BlockCrsMatrix, and two of which use CrsMatrix.