<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sat, Jun 25, 2022 at 9:39 AM Barry Smith <<a href="mailto:bsmith@petsc.dev">bsmith@petsc.dev</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div style="overflow-wrap: break-word;"><div><br></div>  Does AMGX require sorted column indices? (Python indentation notation below)<div><br></div><div>  If not </div><div>     just use <span style="font-size:inherit">MatMPIAIJGetLocalMatMerge instead of </span>MatMPIAIJGetLocalMat.</div><div><br></div></div></blockquote><div><br></div><div>Ugh, I worked on this this AM without rebasing over main and lost my work ... there are conflicts in amgx.cxx that I don't understand.</div><div>amgx.cxx should not even be in main so I am puzzled.</div><div><br></div><div>Anyway, I added  MatMPIAIJGetLocalMatMerge (and lost it), but I'm not sure how to resolve the new ordering of the data.</div><div><div>MatMPIAIJGetLocalMatMerge returns an index set (IS) with the global columns of the diagonal block columns.<br></div><div>I am thinking that we could simply clobber the first 'n' column indices in the MatMPIAIJGetLocalMatMerge output matrix with this IS.<br></div><div>This would make it what Matt wants I think.</div><div>(Maybe this clobber should go into MatMPIAIJGetLocalMatMerge? Maybe I am missing something...)</div><div><br></div><div>I see:</div><div>PetscCall(MatGetRowIJ(amgx->localA, 0, PETSC_FALSE, PETSC_FALSE, &amgx->nLocalRows, &rowOffsets, &colIndices, &done));<br></div><div><br></div><div>Maybe something like this needs to be called next to get AMGx the new indices?</div><div><br></div><div><br></div></div></div></div>