I may be out on a limb here, but the column DM could also encapsulate the scatter<div>that currently sits in the Mat object. By default the row DM could have an identity (noop) scatter.</div><div><br></div><div>Note that this is very natural from the DD standpoint: ASM/GASM/FieldSplit already define scatters that</div>

<div>scatter to a "subdomain" on which a  matrix/pc operate.  Currently, the VecScatter inside the subdomain Mat</div><div>will further scatter the Vec to the "local" part, on which the matrix then operates locally.  If the scatter is moved</div>

<div>out of Mat and into its column DM, than this double scatter can be avoided.</div><div><br></div><div>The pattern "scatter to the local part, then apply the local matrix there" becomes part of a more general pattern:</div>

<div>"scatter to a subdomain, apply the subdomain matrix there", where "local" is an instance of "subdomain".<br><br><div class="gmail_quote">On Tue, Dec 7, 2010 at 3:27 PM, Jed Brown <span dir="ltr"><<a href="mailto:jed@59a2.org">jed@59a2.org</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div class="im"><div class="gmail_quote">On Tue, Dec 7, 2010 at 22:00, Barry Smith <span dir="ltr"><<a href="mailto:bsmith@mcs.anl.gov" target="_blank">bsmith@mcs.anl.gov</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
PetscLayout is like the DMSliced, there is simply no interconnectivity information because it is not needed or not available. It tells enough information to serve as a factory for Flat Euclidean space in the same way that DMDA serves as a factory for slightly more complicated layout.</blockquote>


</div><br></div><div>Okay, I agree now.  And Mat would then naturally have a "row" and "column" DM (making MatGetVecs for non-standard DMs trivial).  It's not clear to me what this semantic information allows, but a linear transformation, in an abstract sense, is a map between spaces, so it's mathematically sound to have the linear transformation (Mat) know about the spaces.)</div>


<div><br></div><div>There is that little detail of PetscLayout currently being an "open" object.</div><div><br></div><font color="#888888"><div>Jed</div>
</font></blockquote></div><br></div>