<div dir="ltr">On Tue, Mar 12, 2013 at 1:14 AM, Sanjay Govindjee <span dir="ltr"><<a href="mailto:s_g@berkeley.edu" target="_blank">s_g@berkeley.edu</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I am having a problem with MatSetValues.  I have a two processor run that spits the following error:<br>
<br>
[0]PETSC ERROR: MatSetValues_MPIAIJ() line 564 in /Users/sg/petsc-3.3-p5/src/<u></u>mat/impls/aij/mpi/mpiaij.c New nonzero at (1,1) caused a malloc<br>
[1]PETSC ERROR: MatSetValues_MPIAIJ() line 564 in /Users/sg/petsc-3.3-p5/src/<u></u>mat/impls/aij/mpi/mpiaij.c New nonzero at (18,-1) caused a malloc<br></blockquote><div><br></div><div style>It is giving you local indices. This error occurs down inside the macro in aij.h for setting a value</div>
<div style>in a serial AIJ matrix. We have not found an easy way to do index translation on the way up.</div><div style><br></div><div style>  Thanks,</div><div style><br></div><div style>     Matt</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

I did a run with -on_error_attach_debugger.  Going up the stack I find:<br>
<br>
#9  0x000000010eec135d in matsetvalue_ (mat=0x1111151b8, i=0x7fff6dabdd04,<br>
    j=0x7fff6dabdd0c, va=0x7fff6dabdd88, mode=0x11076215c, ierr=0x7fff6dabdd10)<br>
    at /Users/sg/petsc-3.3-p5/src/<u></u>mat/ftn-custom/zmat.c:19<br>
19        *ierr = MatSetValues(*mat,1,i,1,j,va,*<u></u>mode);<br>
(gdb) print *i<br>
$1 = 1<br>
(gdb) print *j<br>
$2 = 42<br>
<br>
on one processor and<br>
<br>
#9  0x000000010c43235d in matsetvalue_ (mat=0x10e6861b8, i=0x7fff6b02ed04,<br>
    j=0x7fff6b02ed0c, va=0x7fff6b02ed88, mode=0x10dcd315c, ierr=0x7fff6b02ed10)<br>
    at /Users/sg/petsc-3.3-p5/src/<u></u>mat/ftn-custom/zmat.c:19<br>
19        *ierr = MatSetValues(*mat,1,i,1,j,va,*<u></u>mode);<br>
(gdb) print j<br>
$1 = (PetscInt *) 0x7fff6b02ed0c<br>
(gdb) print *i<br>
$2 = 42<br>
(gdb) print *j<br>
$3 = 1<br>
<br>
on the other.   If I pop the stack one more time to my application (which is in Fortran) I see 1,42 and 42,1 -- i.e. consistent with zmat.c.<br>
<br>
Thus I find it hard to understand the error message I am getting.  I was expecting to find<br>
that (i,j) match (1,1) and (18,-1) which would allow me to track my error.  Note I am using petsc-3.3-p5.<span class="HOEnZb"><font color="#888888"><br>
<br>
-sanjay<br>
</font></span></blockquote></div><br><br clear="all"><div><br></div>-- <br>What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>
-- Norbert Wiener
</div></div>