<div class="gmail_quote">On Tue, Dec 7, 2010 at 21:45, Dmitry Karpeev <span dir="ltr"><<a href="mailto:karpeev@mcs.anl.gov">karpeev@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;">
<div id=":2bt">I think the idea of a function space is useful. <div>In the default case it could be essentially a PetscLayout, which, I guess, could be wrapped up as a DM.</div></div></blockquote></div><br><div>PetscLayout is just the decomposition, VecScatter encodes a lot more information.  DM normally also has some VecScatters, but VecScatter is much more general.  Flat Euclidean space requires no information that is not already in the Vec.</div>
<div><br></div><div>One reason to always have a DM with a Vec is that we could implement VecView(X,v) as DMVecView(X->dm,X,v) and if you wanted to interpret the Vec as a member of a different space (e.g. you had a Vec from a DMDA and wanted to view it "natively"), you would DMVecView(dmflat,X,v) which I find cleaner than pushing and popping "formats".  Maybe dmflat would be a predefined constant (instead of an object you had to define) or maybe just NULL, but I think the current viewing model is pretty fragile/confusing and overly dependent on how the Vec was created.</div>
<div><br></div><div>Jed</div>