[petsc-dev] PetscSection

Matthew Knepley knepley at gmail.com
Fri Nov 9 20:39:31 CST 2012


On Fri, Nov 9, 2012 at 9:34 PM, Barry Smith <bsmith at mcs.anl.gov> wrote:
>
> 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.

You are both right :) I don't care where we put them, but I want BCs
and fields. However, this is no problem.
Right now I do BCs and fields as PetscSections held inside the primary
section. If IS can do what PetscSection
can do, I can jsut use another IS for each one.

>>
>> 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)
>

I actually like it where it is. Stick with DMComplexVecGetClosure()
with no section argument, and then
the DM holds an IS++.

   Matt

--
What most experimenters take for granted before they begin their
experiments is infinitely more interesting than any results to which
their experiments lead.
-- Norbert Wiener



More information about the petsc-dev mailing list