[petsc-dev] PCFieldSplitSetFields() API change

Dmitry Karpeev karpeev at mcs.anl.gov
Thu Jun 7 18:24:13 CDT 2012


On Thu, Jun 7, 2012 at 6:21 PM, Barry Smith <bsmith at mcs.anl.gov> 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 no way to set them separately,
> > at least not for IS-defined splits.  Should we add something like
> > PCFieldSplitSetSplit(PC pc, const char* name, IS rowis, IS colis, DM
> subDM)
> > or similar?  PCFieldSplitSetIS() will continue to work as before
> defining a "diagonal" split with rowis == colis,
> > and DMCreateFieldDecomposition() can be changed to
>
>   No way. Better to just change the old interface to support passing in
> the two IS. (for people who want "diagonal" just pass the same is twice).
>
So,
PCFieldSplitSetIS(PC pc, const char* name, IS rowis, IS colis)?
That's fine with me.  DMCreateFieldDecomposition() will have to change
accordingly to return two IS lists, but that's consistent with the above.

Dmitry.

>
>   Barry
>
> > DMCreateFieldDecomposition(DM dm, PetscInt *numsplits, char
> **splitnames, IS *rowislist, IS *colislist, DM *dmlist)
> >
> > Dmitry.
> >
> > On Wed, Jun 6, 2012 at 8:54 PM, Jed Brown <jedbrown at mcs.anl.gov> wrote:
> > On Wed, Jun 6, 2012 at 6:54 PM, Barry Smith <bsmith at mcs.anl.gov> 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 energy and density (residuals
> in two of your conservation equations) are nearly parallel and point in a
> very different direction from the primitive variables pressure and energy.
> (Never mind that primitive variables would be a very bad formulation here.)
> For high temperature and low velocity, total energy is essentially
> proportional to pressure and density is proportional to p/T. The point here
> is that in different nonlinear regimes, the conditioning of a given
> diagonal block can change substantially. You could say that one should just
> choose conservative variables so that at least the residual and the state
> use the same units, but that produces a very ill-conditioned basis in the
> low-Mach limit.
> >
> > > The reason this works for PCASM is that we demand that the
> input/output spaces are nested (e.g., the output space for RASM is a
> subspace of the input).
> >
> >   Actually RASM has an option where the output space is larger than the
> input space. (The subproblems are defined as extending the right hand side
> by zero, solving the subproblem and then keeping the entire solution (on
> the overlapped region).
> >
> > Well, I'm not sure that it makes sense to express RAS and ASH (AS with
> harmonic extension) that way. For example, DMCreateMatrix() for that
> problem needs to address the whole overlapping space. You solve it by
> restricting the input or restricting the output, but the mechanics of the
> solve needs the whole overlapping region.
> >
> >
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20120607/ec89705f/attachment.html>


More information about the petsc-dev mailing list