On Nov 9, 2012, at 8:12 PM, Jed Brown <jedbrown at mcs.anl.gov> wrote:
> On Fri, Nov 9, 2012 at 7:58 PM, Barry Smith <bsmith at mcs.anl.gov> wrote: > Just an implementation issue. To me the correct abstract model is "indices of > an element" etc and whether this is done via a "closure" or listing them etc > is just an implementation issue. > > Right, I don't think it should be visible in the access interface whether the > implementation has built an Index (in the DB sense) providing the closure > directly or whether it's constructed on the fly from whatever indirect > information. There is a meaningful distinction between getting the dofs > associated with the element or face _interior_ versus its closure. > > I realize this is different than Matt's abstract model. I am not saying my > model is better than Matt's (from an abstract mathematicians Matt's is > probably better) but I believe my model is much more sellable to the masses > (remember very few abstract mathematicians use PETSc :-)). > > Just a few months ago, you were arguing that (u,v) = \int u conj(v) since > that was the Math Convention and PETSc was for Mathematicians. touche > > So we are set? We design and implement a better, more general IS concept? > > I think so. I think Matt wants still to pull "fields" in, as well as perhaps > constraints (for BCs). He is wrong, that all belongs in DMs. > > Now where do we put the convenience interface of accessing a chunk of data in > a Vec or array? Or does the new IS interface only give use the index range > associated with the block and we as the caller must do the indexing? (I'm not > opposed to the latter. It's slight clutter but removes more from the inner > loop.) Accessing from an array? Maybe Accessing from a vector? Unlikely since the destroys the hierarchy of IS below Vec. So that part may need to be in the Vec, maybe VecGetSection(vec,index tag,is,&values)