<div class="gmail_quote">On Wed, May 23, 2012 at 8:36 AM, Barry Smith <span dir="ltr"><<a href="mailto:bsmith@mcs.anl.gov" target="_blank">bsmith@mcs.anl.gov</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im"><br>
On May 22, 2012, at 9:32 PM, Jed Brown wrote:<br>
<br>
> Well, here's the problem:<br>
><br>
> MatSetBlockSize() used to call mat->ops->setblocksize() which the MPI matrices forwarded down to their seq submatrices.<br>
><br>
> But then this patch removed that behavior so MatSetBlockSize() is processed immediately and not forwarded down.<br>
><br>
> <a href="http://petsc.cs.iit.edu/petsc/petsc-dev/rev/80ec81eb9db9" target="_blank">http://petsc.cs.iit.edu/petsc/petsc-dev/rev/80ec81eb9db9</a><br>
><br>
> Since the Seq inner matrices have different PetscLayouts, they don't inherit the block sizes set on their parent.<br>
><br>
> Barry, why did you remove this MatOp? How do you want the MPI matrices to forward block sizes now?<br>
<br>
</div> Blocksize is now suppose to be known "early" now. That is, you cannot change it after MatSetUp() is called. It is the job of each matrix implementation to use the already set block size in the appropriate way. Generally this means before the "Seq" matrices are created or finalized. One could possible arrange moving the blocksize information down during the MatSetUp() of that implementation or the MatXXXXSetPreallocation() or when the inner Mat objects are created.<br>
<br>
If you tell me the EXACT change of events of the "inner" block size not being set properly I can take a look at it.<br></blockquote><div><br></div><div>This is EXACTLY where the inner blocks now need to be set. ;-)</div>
<div><br></div><div><a href="http://petsc.cs.iit.edu/petsc/petsc-dev/rev/0bb703470caa">http://petsc.cs.iit.edu/petsc/petsc-dev/rev/0bb703470caa</a></div></div>