Frank, We do not have support of MatMatMult() for BAIJ*BAIJ matrices. For BAIJ matrix, we only support BAIJ*DENSE. You may have to convert BAIJ to AIJ to use MatMatMult(). Hong ________________________________ From: petsc-users <[email protected]> on behalf of Frank Bramkamp <[email protected]> Sent: Wednesday, May 29, 2024 9:23 AM To: petsc-users <[email protected]> Subject: [petsc-users] Question on MatMatmult Dear PETSc Team, I would like to make a matrix-matrix product of two matrices. I try to use CALL MatMatMult(Mat_A,MAT_B,MAT_INITIAL_MATRIX,PETSC_DEFAULT_REAL,MAT_AB,IERROR). // calling from fortran When I try to use this function I get the ZjQcmQRYFpfptBannerStart This Message Is From an External Sender This message came from outside your organization. ZjQcmQRYFpfptBannerEnd Dear PETSc Team, I would like to make a matrix-matrix product of two matrices. I try to use CALL MatMatMult(Mat_A,MAT_B,MAT_INITIAL_MATRIX,PETSC_DEFAULT_REAL,MAT_AB,IERROR). // calling from fortran When I try to use this function I get the following error message: "Unspecified symbolic phase for product AB with A seqbaij, B seqbaij. The product is not supported” I am using the seqbaij matrix format. Is MatMatMult and MatProductSymbolic only defined for the standard point-wise matrix format but not for a blocked format ?! In the documentation, I could not see a hint on supported matrix formats or any limitations. The examples also just use a point-wise format (AIJ), as I can see so far. Greetings, Frank Bramkamp
You can use MatConvert()
On May 29, 2024, at 10:53 AM, Frank Bramkamp <[email protected]> wrote:
This Message Is From an External Sender This message came from outside your organization. Hello Hong,
Thank you for the clarification. If I already have a BAIJ matrix format, can I then convert it later into AIJ format as well ?! In that case I would have two matrices, but that would be ok for testing. I think that you sometimes convert different matrix formats into each other ?!
Since I typically have BAIJ format, I also use a blocked ILU, which would turn into a point wise ILU for an AIJ matrix. That is why I typically have the BAIJ format.
Otherwise, I have to change it into an AIJ format from the beginning.
Thanks for the quick help,
Frank
Ah ok, Then I will have a look at matconvert. And then maybe later switch to AIJ as well. Thanks of the help, Frank
On 29 May 2024, at 16:57, Barry Smith <[email protected]> wrote:
You can use MatConvert()
On May 29, 2024, at 10:53 AM, Frank Bramkamp <[email protected]> wrote:
This Message Is From an External Sender This message came from outside your organization. Hello Hong,
Thank you for the clarification. If I already have a BAIJ matrix format, can I then convert it later into AIJ format as well ?! In that case I would have two matrices, but that would be ok for testing. I think that you sometimes convert different matrix formats into each other ?!
Since I typically have BAIJ format, I also use a blocked ILU, which would turn into a point wise ILU for an AIJ matrix. That is why I typically have the BAIJ format.
Otherwise, I have to change it into an AIJ format from the beginning.
Thanks for the quick help,
Frank
participants (3)
-
Barry Smith -
Frank Bramkamp -
Zhang, Hong