PC_FieldSplitLink

Jed Brown jed at 59A2.org
Tue Jul 14 19:57:21 CDT 2009


Barry Smith wrote:
> 
>   I just used a link list to support flexibly adding more fields without
> needing to allocate a new array and copying over the old values.
> If array storage makes the implementation easier that is fine with me. 
> Since there are not many blocks why bother with CSR to store the
> (say 5 by 5 = 25 values) I would just use a dense array.

Yeah, CSR vs dense isn't an issue of storage or speed and I didn't have
a strong opinion either way.

I'm still waffling on this, mainly because it's natural to lump
everything right of a diagonal into one matrix rather than keeping them
separate.  You never need to apply them separately and keeping them
separate is an unacceptable hit when application of that block involves
the whole row (the natural decomposition when each physics is managed
separately) and it adds nontrivial communication overhead even with
proper submatrices (more scatters per PCApply).

So I'm back to thinking that the links aren't so bad after all.  There
will be some added complexity to take care of pivoting schemes, but then
at each link we would have:

* list/array of the subdiagonal matrices (only for factorization, commonly dropped)
* diagonal block (submatrix or Schur complement)
* preconditioner for diagonal block
* the whole block right of the diagonal (submatrix or Schur complement)

I doubt these choices will make a big difference in complexity either
way, they just push it around to different places.  I'll implement once
I stop doubting.

>> As a related issue, do you think an implementation of
>> MatGetSubMatrix_MFFD
>> would be a good thing?  It would simplify PC_FieldSplit, but might not be
>> worthwhile unless it would be useful elsewhere.
> 
>    Yes, I've been wanting that for a while.

Pushed (for all matrix types that don't implement MatGetSubMatrix).

Jed

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 260 bytes
Desc: OpenPGP digital signature
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20090715/8d55e7dc/attachment.sig>


More information about the petsc-dev mailing list