[petsc-dev] PCFieldSplitSetFields() API change

Dmitry Karpeev karpeev at mcs.anl.gov
Thu Jun 7 18:17:50 CDT 2012

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
DMCreateFieldDecomposition(DM dm, PetscInt *numsplits, char **splitnames,
IS *rowislist, IS *colislist, DM *dmlist)


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/d2fbccf8/attachment.html>

More information about the petsc-dev mailing list