<html><head></head><body><div style="font-family: Verdana;font-size: 12.0px;"><div>I see. No problem I was just curious. A work around for me is to put the result of MatMatMult onto a temporary matrix and use MatCopy to copy it on C with the correct local rows. </div>

<div> </div>

<div>
<div name="quote" style="margin:10px 5px 5px 10px; padding: 10px 0 10px 10px; border-left:2px solid #C3D9E5; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">
<div style="margin:0 0 10px 0;"> </div>

<div name="quoted-content"><br/>
Marius,<br/>
<br/>
The reason this is happening is because the routine MatMatMultSymbolic_MPIDense_MPIDense() works by converting the matrix to elemental format, doing the product and then converting back. Elemental format has some block cyclic storage format and so the row ownership knowledge is lost along the way.<br/>
<br/>
I do not have any suggestions, though others might.<br/>
<br/>
Barry<br/>
<br/>
<br/>
> On Mar 5, 2019, at 6:19 PM, Marius Buerkle via petsc-users <petsc-users@mcs.anl.gov> wrote:<br/>
><br/>
> Hi,<br/>
><br/>
><br/>
> I have a question regarding MatMatMult for MPIDENSE matrices. I have two dense matrices A and B for which I set the number up the number of local rows each processor owns manually (same for A and B) when creating them with MatCreateDense (which is different from what PETSC_DECIDE what do). When I calculate A*B=C using MatMatMult with MAT_INITIAL_MATRIX the resulting matrix C has a different distribution of the rows among the processes. Is this normal? I would have expected that C inherits the local row structure from A and B. Later on, I want to multiply C let’s say with A which gives then accordingly an error that the local size is not conform.<br/>
><br/>
> If on the other hand A is MATMPIAIJ then C has the same local row structure.<br/>
><br/>
><br/>
> Best,<br/>
><br/>
> Marius<br/>
><br/>
 </div>
</div>
</div></div></body></html>