[petsc-dev] [petsc-users] Using PETSc solvers and preconditioners with mfem

Stefano Zampini stefano.zampini at gmail.com
Mon Nov 7 08:45:47 CST 2016


Moving to petsc-dev

An initial implementation of MatHYPRE is in stefano_zampini/feature-mathypre

comments, suggestions etc are welcome.

Stefano

On Oct 25, 2016, at 9:45 PM, Matthew Knepley <knepley at gmail.com> wrote:

> On Tue, Oct 25, 2016 at 1:43 PM, Jed Brown <jed at jedbrown.org> wrote:
> Stefano Zampini <stefano.zampini at gmail.com> writes:
> > MATHYPRE could be a shell wrapping Hypre calls for the moment.
> > However, HypreParCSR and MATAIJ are mostly equivalent formats. As far as I know, the main (only?) difference resides in the fact that the diagonal term of the diagonal part is ordered first in the CSR.
> > For this reason, I think it should inherit from AIJ.
> 
> This is more delicate.  Derived classes need to *exactly* retain the AIJ
> structure because all unimplemented methods use the parent
> implementations.  If the rows are not sorted, MatSetValues, MatGetRow,
> and the like cease to work.  You can still make MatHypreParCSR respond
> to MatMPIAIJSetPreallocation, but I don't think it can be derived from
> AIJ unless you audit *all* reachable AIJ code to remove the assumption
> of sorted rows *and* document the API change for all users that could
> observe the lack of sorting.  (I don't think that's worthwhile.)
> 
> Note that the existing AIJ derived implementations merely augment the
> AIJ structure rather than modifying it.
> 
> <soapbox>
>   Inheritance is almost never useful except in contrived textbook examples. It was a tremendous pain to make
> work in PETSc, and I think if we did it again, I would just go back and make subobjects that packaged up lower
> level behavior instead of inheriting.
> </soapbox>
> 
>    Matt
> 
> > As soon  as I have time, I can start a new matrix class, but I don’t have much time to implement at the SetValues level yet.
> 
> That's not urgent, but if you write it as a Mat implementation instead
> of some utility functions, it would be easy to add later and would not
> disrupt existing users.  There is no requirement that all Mat
> implementations include all the methods that "make sense"; it can be
> fleshed out later according to demand.
> 
> 
> 
> -- 
> What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.
> -- Norbert Wiener

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20161107/c005ca1f/attachment.html>


More information about the petsc-dev mailing list