<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<span style="color: rgb(50, 49, 48); font-family: "Segoe UI", "Segoe UI Web (West European)", "Segoe UI", -apple-system, system-ui, Roboto, "Helvetica Neue", sans-serif; background-color: rgb(255, 255, 255); display: inline !important">Sajid Ali,</span><br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<span style="color: rgb(50, 49, 48); font-family: "Segoe UI", "Segoe UI Web (West European)", "Segoe UI", -apple-system, system-ui, Roboto, "Helvetica Neue", sans-serif; background-color: rgb(255, 255, 255); display: inline !important">It might be a bug in
 petsc when off-diagonal matrix B has ncols=0. I'll check it and get back to you soon.</span></div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<span style="color: rgb(50, 49, 48); font-family: "Segoe UI", "Segoe UI Web (West European)", "Segoe UI", -apple-system, system-ui, Roboto, "Helvetica Neue", sans-serif; background-color: rgb(255, 255, 255); display: inline !important">Hong</span></div>
<div id="appendonsend"></div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
<br>
</div>
<hr tabindex="-1" style="display:inline-block; width:98%">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" color="#000000" style="font-size:11pt"><b>From:</b> petsc-users <petsc-users-bounces@mcs.anl.gov> on behalf of Sajid Ali <sajidsyed2021@u.northwestern.edu><br>
<b>Sent:</b> Tuesday, September 8, 2020 1:20 PM<br>
<b>To:</b> PETSc <petsc-users@mcs.anl.gov><br>
<b>Subject:</b> [petsc-users] Question about MatGetRowMax</font>
<div> </div>
</div>
<div>
<div dir="ltr">
<div class="x_markdown-here-wrapper" style="">
<p style="margin:0px 0px 1.2em!important">Hi PETSc-developers, </p>
<p style="margin:0px 0px 1.2em!important">While trying to use <code style="font-size:0.85em; font-family:Consolas,Inconsolata,Courier,monospace; margin:0px 0.15em; padding:0px 0.3em; white-space:pre-wrap; border:1px solid rgb(234,234,234); background-color:rgb(248,248,248); border-radius:3px; display:inline">
MatGetRowMax</code>, I’m getting the following error : </p>
<pre style="font-size:0.85em; font-family:Consolas,Inconsolata,Courier,monospace; font-size:1em; line-height:1.2em; margin:1.2em 0px"><code style="font-size:0.85em; font-family:Consolas,Inconsolata,Courier,monospace; margin:0px 0.15em; padding:0px 0.3em; white-space:pre-wrap; border:1px solid rgb(234,234,234); background-color:rgb(248,248,248); border-radius:3px; display:inline; white-space:pre; overflow:auto; border-radius:3px; border:1px solid rgb(204,204,204); padding:0.5em 0.7em; display:block!important">[0]PETSC ERROR: ------------------------------------------------------------------------
[0]PETSC ERROR: Caught signal number 11 SEGV: Segmentation Violation, probably memory access out of range
[0]PETSC ERROR: Try option -start_in_debugger or -on_error_attach_debugger
[0]PETSC ERROR: or see <a href="https://www.mcs.anl.gov/petsc/documentation/faq.html#valgrind">https://www.mcs.anl.gov/petsc/documentation/faq.html#valgrind</a>
[0]PETSC ERROR: or try <a href="http://valgrind.org">http://valgrind.org</a> on GNU/linux and Apple Mac OS X to find memory corruption errors
[0]PETSC ERROR: likely location of problem given in stack below
[0]PETSC ERROR: ---------------------  Stack Frames ------------------------------------
[0]PETSC ERROR: Note: The EXACT line numbers in the stack are not available,
[0]PETSC ERROR:       INSTEAD the line number of the start of the function
[0]PETSC ERROR:       is given.
[0]PETSC ERROR: [0] MatGetRowMax_SeqAIJ line 3182 /home/sajid/packages/petsc/src/mat/impls/aij/seq/aij.c
[0]PETSC ERROR: [0] MatGetRowMax line 4798 /home/sajid/packages/petsc/src/mat/interface/matrix.c
[0]PETSC ERROR: [0] MatGetRowMax_MPIAIJ line 2432 /home/sajid/packages/petsc/src/mat/impls/aij/mpi/mpiaij.c
[0]PETSC ERROR: [0] MatGetRowMax line 4798 /home/sajid/packages/petsc/src/mat/interface/matrix.c
[0]PETSC ERROR: [0] construct_matrix line 25 /home/sajid/Documents/intern/pirt/src/matrix.cxx
[0]PETSC ERROR: --------------------- Error Message --------------------------------------------------------------
[0]PETSC ERROR: Signal received
[0]PETSC ERROR: See <a href="https://www.mcs.anl.gov/petsc/documentation/faq.html">https://www.mcs.anl.gov/petsc/documentation/faq.html</a> for trouble shooting.
[0]PETSC ERROR: Petsc Development GIT revision: v3.13.5-2756-g0264f47704  GIT Date: 2020-09-06 15:08:48 -0500
[0]PETSC ERROR: /home/sajid/Documents/intern/pirt/src/pirt on a arch-linux-c-debug named xrm-backup by sajid Tue Sep  8 13:56:53 2020
[0]PETSC ERROR: Configure options --with-hdf5=1 --with-debugging=yes
[0]PETSC ERROR: #1 User provided function() line 0 in  unknown file
application called MPI_Abort(MPI_COMM_WORLD, 50161059) - process 0
</code></pre>
<p style="margin:0px 0px 1.2em!important">Could someone point out what could cause such a segfault ?
</p>
<p style="margin:0px 0px 1.2em!important">PS : Should it be useful, the error occurs in the (nested) call to
<code style="font-size:0.85em; font-family:Consolas,Inconsolata,Courier,monospace; margin:0px 0.15em; padding:0px 0.3em; white-space:pre-wrap; border:1px solid rgb(234,234,234); background-color:rgb(248,248,248); border-radius:3px; display:inline">
MatGetRowMax</code> for the off-diagonal SeqAIJ matrix and the segmentation violation occurs for the first row of a matrix whose ncols=0 (for the off diagonal part).</p>
<p style="margin:0px 0px 1.2em!important"><code style="font-size:0.85em; font-family:Consolas,Inconsolata,Courier,monospace; margin:0px 0.15em; padding:0px 0.3em; white-space:pre-wrap; border:1px solid rgb(234,234,234); background-color:rgb(248,248,248); border-radius:3px; display:inline">MatGetOwnershipRangeColumn</code>
 was used to set the diagonal and off-diagonal preallocation and all the columns were set to be in the diagonal SeqAIJ matrix as shown below :
</p>
<pre style="font-size:0.85em; font-family:Consolas,Inconsolata,Courier,monospace; font-size:1em; line-height:1.2em; margin:1.2em 0px"><code style="font-size:0.85em; font-family:Consolas,Inconsolata,Courier,monospace; margin:0px 0.15em; padding:0px 0.3em; white-space:pre-wrap; border:1px solid rgb(234,234,234); background-color:rgb(248,248,248); border-radius:3px; display:inline; white-space:pre; overflow:auto; border-radius:3px; border:1px solid rgb(204,204,204); padding:0.5em 0.7em; display:block!important">(gdb) frame
#0  MatGetRowMax (mat=0x7ed340, v=0x982470, idx=0x0) at /home/sajid/packages/petsc/src/mat/interface/matrix.c:4803
4803      if (!mat->ops->getrowmax) SETERRQ1(PetscObjectComm((PetscObject)mat),PETSC_ERR_SUP,"Mat type %s",((PetscObject)mat)->type_name);
(gdb) print mat->cmap->rstart
$12 = 0
(gdb) print mat->cmap->rend
$13 = 65536
(gdb) step
4804      MatCheckPreallocated(mat,1);
(gdb) next
4806      ierr = (*mat->ops->getrowmax)(mat,v,idx);CHKERRQ(ierr);
(gdb) next

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff60ca248 in MatGetRowMax_SeqAIJ (A=0x8d1450, v=0x9b1220, idx=0x99a620) at /home/sajid/packages/petsc/src/mat/impls/aij/seq/aij.c:3195
3195          x[i] = *aa; if (idx) idx[i] = 0;
(gdb)
</code></pre>
<p style="margin:0px 0px 1.2em!important">Thank You,<br>
Sajid Ali | PhD Candidate<br>
Applied Physics<br>
Northwestern University<br>
<a href="http://s-sajid-ali.github.io">s-sajid-ali.github.io</a></p>
<div title="MDH:PGRpdj48ZGl2PjxkaXY+SGkgUEVUU2MtZGV2ZWxvcGVycywgPGJyPjxicj48L2Rpdj5XaGlsZSB0
cnlpbmcgdG8gdXNlIGBNYXRHZXRSb3dNYXhgLCBJJ20gZ2V0dGluZyB0aGUgZm9sbG93aW5nIGVy
cm9yIDogPGJyPmBgYDxicj5bMF1QRVRTQyBFUlJPUjogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPGJyPlswXVBF
VFNDIEVSUk9SOiBDYXVnaHQgc2lnbmFsIG51bWJlciAxMSBTRUdWOiBTZWdtZW50YXRpb24gVmlv
bGF0aW9uLCBwcm9iYWJseSBtZW1vcnkgYWNjZXNzIG91dCBvZiByYW5nZTxicj5bMF1QRVRTQyBF
UlJPUjogVHJ5IG9wdGlvbiAtc3RhcnRfaW5fZGVidWdnZXIgb3IgLW9uX2Vycm9yX2F0dGFjaF9k
ZWJ1Z2dlcjxicj5bMF1QRVRTQyBFUlJPUjogb3Igc2VlIGh0dHBzOi8vd3d3Lm1jcy5hbmwuZ292
L3BldHNjL2RvY3VtZW50YXRpb24vZmFxLmh0bWwjdmFsZ3JpbmQ8YnI+WzBdUEVUU0MgRVJST1I6
IG9yIHRyeSBodHRwOi8vdmFsZ3JpbmQub3JnIG9uIEdOVS9saW51eCBhbmQgQXBwbGUgTWFjIE9T
IFggdG8gZmluZCBtZW1vcnkgY29ycnVwdGlvbiBlcnJvcnM8YnI+WzBdUEVUU0MgRVJST1I6IGxp
a2VseSBsb2NhdGlvbiBvZiBwcm9ibGVtIGdpdmVuIGluIHN0YWNrIGJlbG93PGJyPlswXVBFVFND
IEVSUk9SOiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0gJm5ic3A7U3RhY2sgRnJhbWVzIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLTxicj5bMF1QRVRTQyBFUlJPUjogTm90ZTogVGhl
IEVYQUNUIGxpbmUgbnVtYmVycyBpbiB0aGUgc3RhY2sgYXJlIG5vdCBhdmFpbGFibGUsPGJyPlsw
XVBFVFNDIEVSUk9SOiAmbmJzcDsgJm5ic3A7ICZuYnNwOyBJTlNURUFEIHRoZSBsaW5lIG51bWJl
ciBvZiB0aGUgc3RhcnQgb2YgdGhlIGZ1bmN0aW9uPGJyPlswXVBFVFNDIEVSUk9SOiAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyBpcyBnaXZlbi48YnI+WzBdUEVUU0MgRVJST1I6IFswXSBNYXRHZXRSb3dN
YXhfU2VxQUlKIGxpbmUgMzE4MiAvaG9tZS9zYWppZC9wYWNrYWdlcy9wZXRzYy9zcmMvbWF0L2lt
cGxzL2Fpai9zZXEvYWlqLmM8YnI+WzBdUEVUU0MgRVJST1I6IFswXSBNYXRHZXRSb3dNYXggbGlu
ZSA0Nzk4IC9ob21lL3NhamlkL3BhY2thZ2VzL3BldHNjL3NyYy9tYXQvaW50ZXJmYWNlL21hdHJp
eC5jPGJyPlswXVBFVFNDIEVSUk9SOiBbMF0gTWF0R2V0Um93TWF4X01QSUFJSiBsaW5lIDI0MzIg
L2hvbWUvc2FqaWQvcGFja2FnZXMvcGV0c2Mvc3JjL21hdC9pbXBscy9haWovbXBpL21waWFpai5j
PGJyPlswXVBFVFNDIEVSUk9SOiBbMF0gTWF0R2V0Um93TWF4IGxpbmUgNDc5OCAvaG9tZS9zYWpp
ZC9wYWNrYWdlcy9wZXRzYy9zcmMvbWF0L2ludGVyZmFjZS9tYXRyaXguYzxicj5bMF1QRVRTQyBF
UlJPUjogWzBdIGNvbnN0cnVjdF9tYXRyaXggbGluZSAyNSAvaG9tZS9zYWppZC9Eb2N1bWVudHMv
aW50ZXJuL3BpcnQvc3JjL21hdHJpeC5jeHg8YnI+WzBdUEVUU0MgRVJST1I6IC0tLS0tLS0tLS0t
LS0tLS0tLS0tLSBFcnJvciBNZXNzYWdlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPGJyPlswXVBFVFNDIEVSUk9SOiBTaWduYWwg
cmVjZWl2ZWQ8YnI+WzBdUEVUU0MgRVJST1I6IFNlZSBodHRwczovL3d3dy5tY3MuYW5sLmdvdi9w
ZXRzYy9kb2N1bWVudGF0aW9uL2ZhcS5odG1sIGZvciB0cm91YmxlIHNob290aW5nLjxicj5bMF1Q
RVRTQyBFUlJPUjogUGV0c2MgRGV2ZWxvcG1lbnQgR0lUIHJldmlzaW9uOiB2My4xMy41LTI3NTYt
ZzAyNjRmNDc3MDQgJm5ic3A7R0lUIERhdGU6IDIwMjAtMDktMDYgMTU6MDg6NDggLTA1MDA8YnI+
WzBdUEVUU0MgRVJST1I6IC9ob21lL3NhamlkL0RvY3VtZW50cy9pbnRlcm4vPHNwYW4gemV1bTRj
NT0iUFJfMjZfMCIgZGF0YS1kZG53YWI9IlBSXzI2XzAiIGFyaWEtaW52YWxpZD0ic3BlbGxpbmci
IGNsYXNzPSJMSSBuZyI+cGlydDwvc3Bhbj4vc3JjLzxzcGFuIHpldW00YzU9IlBSXzI3XzAiIGRh
dGEtZGRud2FiPSJQUl8yN18wIiBhcmlhLWludmFsaWQ9InNwZWxsaW5nIiBjbGFzcz0iTEkgbmci
PnBpcnQ8L3NwYW4+IG9uIGEgYXJjaC1saW51eC1jLWRlYnVnIG5hbWVkIHhybS1iYWNrdXAgYnkg
c2FqaWQgVHVlIFNlcCAmbmJzcDs4IDEzOjU2OjUzIDIwMjA8YnI+WzBdUEVUU0MgRVJST1I6IENv
bmZpZ3VyZSBvcHRpb25zIC0td2l0aC1oZGY1PTEgLS13aXRoLWRlYnVnZ2luZz15ZXM8YnI+WzBd
UEVUU0MgRVJST1I6ICMxIFVzZXIgcHJvdmlkZWQgZnVuY3Rpb24oKSBsaW5lIDAgaW4gJm5ic3A7
dW5rbm93biBmaWxlPGJyPmFwcGxpY2F0aW9uIGNhbGxlZCBNUElfQWJvcnQoTVBJX0NPTU1fV09S
TEQsIDUwMTYxMDU5KSAtIHByb2Nlc3MgMDxicj5gYGA8YnI+PGJyPjwvZGl2PjxkaXY+Q291bGQg
c29tZW9uZSBwb2ludCBvdXQgd2hhdCBjb3VsZCBjYXVzZSBzdWNoIGEgc2VnZmF1bHQgPyA8YnI+
PC9kaXY+PGRpdj48YnI+PC9kaXY+UFMgOiZuYnNwOyBTaG91bGQgaXQgYmUgb2YgaGVscCwgdGhl
IGVycm9ub3VzIGNhbGwgb2NjdXJzIGZyb20gdGhlIG5lc3RlZCBjYWxsIHRvIGBNYXRHZXRSb3dN
YXhgIG9mIHRoZSBvZmYtZGlhZ29uYWwgU2VxQUlKIG1hdHJpeCBhbmQgdGhlIFNlZ21lbnRhdGlv
biB2aW9sYXRpb24gb2NjdXJzIGZvciB0aGUgZmlyc3Qgcm93IG9mIGEgbWF0cml4IHdob3NlIG5j
b2xzPTAgZm9yIHRoZSBvZmYgZGlhZ29uYWwgcGFydC48YnI+PGJyPjwvZGl2PmBNYXRHZXRPd25l
cnNoaXBSYW5nZUNvbHVtbmAgd2FzIHVzZWQgdG8gc2V0IHRoZSBkaWFnb25hbCBhbmQgb2ZmLWRp
YWdvbmFsIHByZWFsbG9jYXRpb24gYW5kIGl0IGxvb2tzIGxpa2UgYWxsIHRoZSBjb2x1bW5zIHdl
cmUgc2V0IHRvIGJlIGluIHRoZSBkaWFnb25hbCBTZXFBSUogbWF0cml4IGFzIHNob3duIGJlbG93
IDogPGJyPmBgYDxicj4oZ2RiKSBmcmFtZTxicj4jMCDCoE1hdEdldFJvd01heCAobWF0PTB4N2Vk
MzQwLCB2PTB4OTgyNDcwLCBpZHg9MHgwKSBhdCAvaG9tZS9zYWppZC9wYWNrYWdlcy9wZXRzYy9z
cmMvbWF0L2ludGVyZmFjZS9tYXRyaXguYzo0ODAzPGJyPjQ4MDMgwqAgwqAgwqBpZiAoIW1hdC0m
Z3Q7b3BzLSZndDtnZXRyb3dtYXgpIDxzcGFuIHpldW00YzU9IlBSXzI5XzAiIGRhdGEtZGRud2Fi
PSJQUl8yOV8wIiBhcmlhLWludmFsaWQ9InNwZWxsaW5nIiBjbGFzcz0iTEkgbmciPlNFVEVSUlEx
PC9zcGFuPig8c3BhbiB6ZXVtNGM1PSJQUl8zMF8wIiBkYXRhLWRkbndhYj0iUFJfMzBfMCIgYXJp
YS1pbnZhbGlkPSJzcGVsbGluZyIgY2xhc3M9IkxJIG5nIj5QZXRzY09iamVjdENvbW08L3NwYW4+
KChQZXRzY09iamVjdCltYXQpLFBFVFNDX0VSUl9TVVAsIk1hdCB0eXBlICVzIiwoKFBldHNjT2Jq
ZWN0KW1hdCktJmd0O3R5cGVfbmFtZSk7PGJyPihnZGIpIHByaW50IG1hdC0mZ3Q7Y21hcC0mZ3Q7
cnN0YXJ0PGJyPiQxMiA9IDA8YnI+KGdkYikgcHJpbnQgbWF0LSZndDtjbWFwLSZndDtyZW5kPGJy
PiQxMyA9IDY1NTM2PGJyPihnZGIpIHN0ZXA8YnI+NDgwNCDCoCDCoCDCoE1hdENoZWNrUHJlYWxs
b2NhdGVkKG1hdCwxKTs8YnI+KGdkYikgbmV4dDxicj40ODA2IMKgIMKgIMKgaWVyciA9ICgqbWF0
LSZndDtvcHMtJmd0O2dldHJvd21heCkobWF0LHYsaWR4KTtDSEtFUlJRKGllcnIpOzxicj4oZ2Ri
KSBuZXh0PGJyPjxicj5Qcm9ncmFtIHJlY2VpdmVkIHNpZ25hbCBTSUdTRUdWLCBTZWdtZW50YXRp
b24gZmF1bHQuPGJyPjB4MDAwMDdmZmZmNjBjYTI0OCBpbiBNYXRHZXRSb3dNYXhfU2VxQUlKIChB
PTB4OGQxNDUwLCB2PTB4OWIxMjIwLCBpZHg9MHg5OWE2MjApIGF0IC9ob21lL3NhamlkL3BhY2th
Z2VzL3BldHNjL3NyYy9tYXQvaW1wbHMvYWlqL3NlcS9haWouYzozMTk1PGJyPjMxOTUgwqAgwqAg
wqAgwqAgwqB4W2ldID0gKmFhOyBpZiAoaWR4KSBpZHhbaV0gPSAwOzxicj4oZ2RiKTxicj5gYGA8
YnI+PGRpdj48ZGl2PjxkaXY+PGRpdj48YnI+PC9kaXY+PGRpdj5UaGFuayBZb3UsPGJyPjwvZGl2
PjxkaXY+PGRpdiBkaXI9Imx0ciIgY2xhc3M9ImdtYWlsX3NpZ25hdHVyZSIgZGF0YS1zbWFydG1h
aWw9ImdtYWlsX3NpZ25hdHVyZSI+PGRpdiBkaXI9Imx0ciI+PGRpdj48ZGl2IGRpcj0ibHRyIj48
ZGl2PjxkaXYgZGlyPSJsdHIiPjxkaXYgc3R5bGU9ImZvbnQtc2l6ZToxMi44cHgiPlNhamlkIEFs
aSB8IFBoRCBDYW5kaWRhdGU8YnI+PC9kaXY+PGRpdiBzdHlsZT0iZm9udC1zaXplOjEyLjhweCI+
QXBwbGllZCBQaHlzaWNzPGJyPjwvZGl2PjxkaXYgc3R5bGU9ImZvbnQtc2l6ZToxMi44cHgiPk5v
cnRod2VzdGVybiBVbml2ZXJzaXR5PC9kaXY+PGRpdiBzdHlsZT0iZm9udC1zaXplOjEyLjhweCI+
PGEgaHJlZj0iaHR0cDovL3Mtc2FqaWQtYWxpLmdpdGh1Yi5pbyIgdGFyZ2V0PSJfYmxhbmsiPnMt
c2FqaWQtYWxpLmdpdGh1Yi5pbzwvYT48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rp
dj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj4=" style="height:0; width:0; max-height:0; max-width:0; overflow:hidden; font-size:0em; padding:0; margin:0">
</div>
</div>
</div>
</div>
</body>
</html>