[petsc-dev] MATCOMPOSITE as fallback for matrix-matrix multiplication

Isaac, Tobin G tisaac at cc.gatech.edu
Sat Mar 9 15:42:36 CST 2019

Let's say I want to do Newton-Krylov on some DAG of computations.
Building the Jacobian is programmatic from the chain rule, requiring
just a lot of matrix-matrix multiplications in the correct sequence.

If it really is more efficient for two Jacobians to be contracted into
a matrix with random access, that's great, but if it's not, or if
the appropriate implementation of MatMatMult_X_Y does not exist,
having a MATCOMPOSITE is better than nothing.

So why not make MATCOMPOSITE something that our matrix-matrix
multiplication routines return when a specialization isn't found?
It moves the "Not Implemented" warning from MatMatMult() to
whenever I try to do something other than multiply with the output,
but in some situations that's desirable.

I'd be interested to hear what people think.


More information about the petsc-dev mailing list