On Fri, Feb 24, 2012 at 3:05 PM, Barry Smith <span dir="ltr"><<a href="mailto:bsmith@mcs.anl.gov">bsmith@mcs.anl.gov</a>></span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im"><br>
On Feb 24, 2012, at 2:41 PM, Matthew Knepley wrote:<br>
<br>
> On Fri, Feb 24, 2012 at 2:39 PM, Barry Smith <<a href="mailto:bsmith@mcs.anl.gov">bsmith@mcs.anl.gov</a>> wrote:<br>
><br>
> On Feb 24, 2012, at 2:23 PM, Jed Brown wrote:<br>
><br>
> > We need a richer field interface. Some way for a client of DM to discover vector and tensor structure.<br>
><br>
>   No idea what a tensor is, but DMGetSubDMS(dm,PetscInt *cnt,IS *ises,DM *dms);   and DMPushSubDMType(DM,"name of a type of splitting like u,v,p or velocity,p"); DMPopSubDMType(); and DMGetAvailableSubDMTypes(DM,char **);<br>

><br>
>  Do you need more than that?<br>
><br>
> Yuck Yuck Yuck. Why are we persisting in shoving all of the index stuff into the DM interface. I think this is so<br>
> unwieldy and complicated. PetscSection is small, powerful, and does everything suggested and more. I see<br>
> no argument in support of stuff like the above.<br>
<br>
</div>  I have no idea what a PetscSection is and<br>
<br>
PetscSection - This is a mapping from DMMESH points to sets of values, which is<br>
  our presentation of a fibre bundle.<br>
<br>
doesn't help explain it.   PetscSection is small? It has more methods than DM, that is not small.<br></blockquote><div><br></div><div>Don't make me return the count. It has fewer, and definitely fewer concepts. Most of those are</div>
<div>simple get/set.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
PetscSectionGetFieldComponents() seems to be intuitive, cool. By why does it return an array of integers? The universal way in PETSc would have it returning an IS. Wait a minute, it returns one int, the number of components? Then why is called GetFieldComponents and not GetNumFieldComponents()<br>
</blockquote><div><br></div><div>It could be changed to GetNumFieldComponents.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
And what is all this constraint stuff? PetscSectionGetConstraintDof() Huh? It looks inside the "section" and gets an array of ints from a section inside the section?<br></blockquote><div><br></div><div>Yes. It keeps track of constrained dofs. People, who through laziness or willful blindness, refuse to acknowledge that some</div>
<div>problems make more sense when constrained dofs ar eliminated.</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Here's my guess: a PetscSection is way of "chopping up" a canonical vector into a bunch of fields. Fine, but then why does it have a bunch of other stuff in it (like constraints, what the hell are constraints)? And why isn't a PetscSection just an array of IS that define the fields?<br>
</blockquote><div><br></div><div>Constraints are just that. IS is designed to be immutable. Building on it internally is not a good idea for this reason.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

The reason to shove all the index stuff into the DM interface is because generally one doesn't just want to know the entries of a field but one also wants to create vectors for those field variables only, create matrices, know something about the mesh for that field so one can generate interpolations and coarsen for multigrid. One cannot do any of those things with PetscSection.<br>
</blockquote><div><br></div><div>Yes you can.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  Please explain in freshman linear algebra what a PetscSection is.</blockquote><div><br></div><div>Exactly what it says in the help. It is a mapping from mesh points (vertices, edges, faces, cells) to dofs. How can this be easier?</div>
<div><br></div><div>   Matt</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="HOEnZb"><font color="#888888"><br>
    Barry<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
<br>
<br>
<br>
<br>
<br>
><br>
>    Matt<br>
><br>
>    Barry<br>
><br>
> Note that current DMDA's default subdms served up would be a DM for each field consisting of one of the degrees of freedom per node and it could also serve up  DMs that represent any collections of those for example dof 0 and 1 per node, then dof 2 per node. We'll need to come up with some naming convention for these.<br>

><br>
><br>
> > Possibly also (eventually) a way to solve equations of state so that we can formulate reduced problems in non-conservative variables.<br>
> ><br>
> > On Feb 24, 2012 2:19 PM, "Matthew Knepley" <<a href="mailto:knepley@gmail.com">knepley@gmail.com</a>> wrote:<br>
> > On Fri, Feb 24, 2012 at 1:58 PM, Jed Brown <<a href="mailto:jedbrown@mcs.anl.gov">jedbrown@mcs.anl.gov</a>> wrote:<br>
> > <a href="http://petsc.cs.iit.edu/petsc/petsc-dev/rev/518ff70e8a0a" target="_blank">http://petsc.cs.iit.edu/petsc/petsc-dev/rev/518ff70e8a0a</a><br>
> ><br>
> > Matt, I want to get rid of these conditionals, not add more. We should have a DM base interface for getting fields on which to split, that common interface should _replace_ the DMComposite specialization.<br>
> ><br>
> > I agree. However, I won't put anything in until I do it by hand once.<br>
> ><br>
> > Also, I was tempted to just promote DMGetGlobalISes(), but its not quite right. I am planning<br>
> > to put the IS method in PetscSection. I am hoping eventually DMDA uses PetscSection for<br>
> > layout.<br>
> ><br>
> >    Matt<br>
> ><br>
> > --<br>
> > What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>
> > -- Norbert Wiener<br>
><br>
><br>
><br>
><br>
> --<br>
> What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>
> -- Norbert Wiener<br>
<br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br>What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>
-- Norbert Wiener<br>