[petsc-dev] PCFieldSplitSetFields() API change

2012-07-08 Thread Dmitry Karpeev
I wanted to revive this (month-old) thread to try to finalize the API change related to "pivoting" in PCFIELDSPLIT. On Thu, Jun 7, 2012 at 6:42 PM, Jed Brown wrote: > On Thu, Jun 7, 2012 at 6:34 PM, Dmitry Karpeev wrote: > >> Well, the above defines the "pivots" > > > Okay, but this is not a "fi

[petsc-dev] PCFieldSplitSetFields() API change

2012-06-07 Thread Jed Brown
On Thu, Jun 7, 2012 at 6:34 PM, Dmitry Karpeev wrote: > Well, the above defines the "pivots" Okay, but this is not a "field decomposition". We are extracting sub-problems (maybe overlapping?) that have implicit off-diagonal parts that may also need to be evaluated (how?). -- next pa

[petsc-dev] PCFieldSplitSetFields() API change

2012-06-07 Thread Dmitry Karpeev
On Thu, Jun 7, 2012 at 6:24 PM, Jed Brown wrote: > On Thu, Jun 7, 2012 at 6:17 PM, Dmitry Karpeev wrote: > >> DMCreateFieldDecomposition(DM dm, PetscInt *numsplits, char **splitnames, >> IS *rowislist, IS *colislist, DM *dmlist) > > > How can this be right? Shouldn't I be getting arrays back (rat

[petsc-dev] PCFieldSplitSetFields() API change

2012-06-07 Thread Jed Brown
On Thu, Jun 7, 2012 at 6:17 PM, Dmitry Karpeev wrote: > DMCreateFieldDecomposition(DM dm, PetscInt *numsplits, char **splitnames, > IS *rowislist, IS *colislist, DM *dmlist) How can this be right? Shouldn't I be getting arrays back (rather than having to create my own)? Does the PCFieldSplit h

[petsc-dev] PCFieldSplitSetFields() API change

2012-06-07 Thread Dmitry Karpeev
On Thu, Jun 7, 2012 at 6:21 PM, Barry Smith wrote: > > On Jun 7, 2012, at 6:17 PM, Dmitry Karpeev wrote: > > > In the short run, however, we need to agree on an API for defining > splits that have an input and output > > space. In the code the splits already carry row and col ISs, but there > is

[petsc-dev] PCFieldSplitSetFields() API change

2012-06-07 Thread Barry Smith
On Jun 7, 2012, at 6:17 PM, Dmitry Karpeev wrote: > In the short run, however, we need to agree on an API for defining splits > that have an input and output > space. In the code the splits already carry row and col ISs, but there is no > way to set them separately, > at least not for IS-defi

[petsc-dev] PCFieldSplitSetFields() API change

2012-06-07 Thread Dmitry Karpeev
In the short run, however, we need to agree on an API for defining splits that have an input and output space. In the code the splits already carry row and col ISs, but there is no way to set them separately, at least not for IS-defined splits. Should we add something like PCFieldSplitSetSplit(PC

[petsc-dev] PCFieldSplitSetFields() API change

2012-06-06 Thread Jed Brown
On Wed, Jun 6, 2012 at 6:54 PM, Barry Smith wrote: > No you don't get back a pair of subDMS, you get a DM that goes from one > state space to "a different" residual space. Normally one would not need > this though it does come up in the VI stuff. > For a low temperature/rarefied gas, total energ

[petsc-dev] PCFieldSplitSetFields() API change

2012-06-06 Thread Barry Smith
On Jun 6, 2012, at 5:16 PM, Dmitry Karpeev wrote: > > > On Wed, Jun 6, 2012 at 4:58 PM, Jed Brown wrote: > On Fri, Mar 23, 2012 at 10:15 PM, Barry Smith wrote: > > On Mar 23, 2012, at 6:22 PM, Jed Brown wrote: > > > But what does using B as 00 block actually mean? It seems to me that you >

[petsc-dev] PCFieldSplitSetFields() API change

2012-06-06 Thread Barry Smith
On Jun 6, 2012, at 4:58 PM, Jed Brown wrote: > On Fri, Mar 23, 2012 at 10:15 PM, Barry Smith wrote: > > On Mar 23, 2012, at 6:22 PM, Jed Brown wrote: > > > But what does using B as 00 block actually mean? It seems to me that you > > pivot, producing P' P J where P J has B in the 00 location.

[petsc-dev] PCFieldSplitSetFields() API change

2012-06-06 Thread Dmitry Karpeev
On Wed, Jun 6, 2012 at 4:58 PM, Jed Brown wrote: > On Fri, Mar 23, 2012 at 10:15 PM, Barry Smith wrote: > >> >> On Mar 23, 2012, at 6:22 PM, Jed Brown wrote: >> >> > But what does using B as 00 block actually mean? It seems to me that >> you pivot, producing P' P J where P J has B in the 00 loca

[petsc-dev] PCFieldSplitSetFields() API change

2012-06-06 Thread Jed Brown
On Fri, Mar 23, 2012 at 10:15 PM, Barry Smith wrote: > > On Mar 23, 2012, at 6:22 PM, Jed Brown wrote: > > > But what does using B as 00 block actually mean? It seems to me that you > pivot, producing P' P J where P J has B in the 00 location. > >I am not arguing if it is pivoting or not. I'm

[petsc-dev] PCFieldSplitSetFields() API change

2012-03-23 Thread Barry Smith
On Mar 23, 2012, at 6:22 PM, Jed Brown wrote: > But what does using B as 00 block actually mean? It seems to me that you > pivot, producing P' P J where P J has B in the 00 location. I am not arguing if it is pivoting or not. I'm arguing what the user interface should be. Say I want D to b

[petsc-dev] PCFieldSplitSetFields() API change

2012-03-23 Thread Jed Brown
But what does using B as 00 block actually mean? It seems to me that you pivot, producing P' P J where P J has B in the 00 location. On Mar 23, 2012 6:13 PM, "Barry Smith" wrote: > > On Mar 23, 2012, at 6:00 PM, Jed Brown wrote: > > > On Fri, Mar 23, 2012 at 17:48, Barry Smith wrote: > >I'm

[petsc-dev] PCFieldSplitSetFields() API change

2012-03-23 Thread Barry Smith
On Mar 23, 2012, at 6:00 PM, Jed Brown wrote: > On Fri, Mar 23, 2012 at 17:48, Barry Smith wrote: >I'm confused. I am NOT injecting it into the original definition, I am > injecting it into the PCFieldSplit in the same way that your "permutation" > would inject it just into the PCFieldSpli

[petsc-dev] PCFieldSplitSetFields() API change

2012-03-23 Thread Jed Brown
On Fri, Mar 23, 2012 at 17:48, Barry Smith wrote: >I'm confused. I am NOT injecting it into the original definition, I am > injecting it into the PCFieldSplit in the same way that your "permutation" > would inject it just into the PCFieldSplit, it is just (in my opinion) a > more user friendl

[petsc-dev] PCFieldSplitSetFields() API change

2012-03-23 Thread Barry Smith
On Mar 23, 2012, at 5:41 PM, Jed Brown wrote: > On Fri, Mar 23, 2012 at 17:14, Barry Smith wrote: > But you are implicitly assuming that for example the first component of > input space is "somehow" tied to the first component of the output space etc. > I submit this is only true if the user

[petsc-dev] PCFieldSplitSetFields() API change

2012-03-23 Thread Jed Brown
On Fri, Mar 23, 2012 at 17:14, Barry Smith wrote: > But you are implicitly assuming that for example the first component of > input space is "somehow" tied to the first component of the output space > etc. I submit this is only true if the user has chosen first component of > the input space an

[petsc-dev] PCFieldSplitSetFields() API change

2012-03-23 Thread Barry Smith
On Mar 23, 2012, at 4:56 PM, Jed Brown wrote: > This changed the API for PCFieldSplitSetFields(), but didn't update the man > page, src/docs/website/documentation/changes/dev.html, or the examples that > called the function (one of the two examples was updated later). > > http://petsc.cs.iit.e

[petsc-dev] PCFieldSplitSetFields() API change

2012-03-23 Thread Jed Brown
This changed the API for PCFieldSplitSetFields(), but didn't update the man page, src/docs/website/documentation/changes/dev.html, or the examples that called the function (one of the two examples was updated later). http://petsc.cs.iit.edu/petsc/petsc-dev/rev/55721edbdaa2 But is this even the ri