<html><head><meta http-equiv="Content-Type" content="text/html; charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><div class=""><br class=""></div>  Zakariae,<div class=""><br class=""></div><div class="">    MatGetSubMatrix() was removed a long time ago, the routine is now MatCreateSubMatrix() but it does not work in way you had hoped. There is currently no mechanism to move values you put into the sub matrix back into the original larger matrix (though perhaps there should be?). </div><div class=""><br class=""></div><div class="">    Please look at MatCreateSubMatrixVirtual() and also MatCreateNest() to see if either of those approaches satisfy your needs. </div><div class=""><br class=""></div><div class="">    Please let us know if there are extensions that would be useful for you to accomplish what you need. </div><div class=""><br class=""></div><div class="">  Barry</div><div class=""><br class=""><div><br class=""><blockquote type="cite" class=""><div class="">On Jul 16, 2021, at 7:45 PM, Jorti, Zakariae via petsc-users <<a href="mailto:petsc-users@mcs.anl.gov" class="">petsc-users@mcs.anl.gov</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div id="divtagdefaultwrapper" dir="ltr" style="font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; font-size: 12pt; font-family: Calibri, Helvetica, sans-serif;" class=""><div style="margin-top: 0px; margin-bottom: 0px;" class="">Hello,</div><div style="margin-top: 0px; margin-bottom: 0px;" class=""><br class=""></div><div style="margin-top: 0px; margin-bottom: 0px;" class="">I have a matrix A = [A00 , A01 ; A10, A11]. </div><div style="margin-top: 0px; margin-bottom: 0px;" class="">I extract the submatrix A11 with MatGetSubMatrix.</div><div style="margin-top: 0px; margin-bottom: 0px;" class="">I only know the global IS is1 and is2, so to get A11 I call: </div><div style="margin-top: 0px; margin-bottom: 0px;" class="">MatGetSubMatrix(A,is2,is2,MAT_INITIAL_MATRIX,&A11);</div><div style="margin-top: 0px; margin-bottom: 0px;" class="">I want to modify A11 and update the changes on the global matrix A but I could not find any <span style="font-size: 12pt;" class="">MatRestoreSubMatrix routine.</span></div><div style="margin-top: 0px; margin-bottom: 0px;" class=""><span style="font-size: 12pt;" class="">Is there something similar to </span><span style="font-size: 12pt;" class="">VecGetSubVector and VecRestoreSubVector for matrices that uses only global indices?</span></div><div style="margin-top: 0px; margin-bottom: 0px;" class=""><span style="font-size: 12pt;" class="">Many thanks.</span></div><div style="margin-top: 0px; margin-bottom: 0px;" class=""><span style="font-size: 12pt;" class="">Best regards,</span></div><div style="margin-top: 0px; margin-bottom: 0px;" class=""><span style="font-size: 12pt;" class=""><br class=""></span></div><div style="margin-top: 0px; margin-bottom: 0px;" class=""><span style="font-size: 12pt;" class="">Zakariae </span></div></div></div></blockquote></div><br class=""></div></body></html>