<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    Hi,<br>
    <br>
    I did a MatView and VecView on both C and Fortran, right after Mat
    and Vec assembly. I have attached the printout below. They are
    exactly the same, but yet the result is different in Neumann
    condition. However, the dirichlet condition gives the correct ans.
    Is there anything else that could be wrong even if the Mat and Vec
    are the same?<br>
    <br>
    Thanks!<br>
    <br>
    Fortran:<br>
    <br>
    Matrix Object: 1 MPI processes<br>
    &nbsp; type: seqaij<br>
    row 0: (0, 2)&nbsp; (1, -1)&nbsp; (3, -1)<br>
    row 1: (0, -1)&nbsp; (1, 3)&nbsp; (2, -1)&nbsp; (4, -1)<br>
    row 2: (1, -1)&nbsp; (2, 2)&nbsp; (5, -1)<br>
    row 3: (0, -1)&nbsp; (3, 3)&nbsp; (4, -1)&nbsp; (6, -1)<br>
    row 4: (1, -1)&nbsp; (3, -1)&nbsp; (4, 4)&nbsp; (5, -1)&nbsp; (7, -1)<br>
    row 5: (2, -1)&nbsp; (4, -1)&nbsp; (5, 3)&nbsp; (8, -1)<br>
    row 6: (3, -1)&nbsp; (6, 2)&nbsp; (7, -1)<br>
    row 7: (4, -1)&nbsp; (6, -1)&nbsp; (7, 3)&nbsp; (8, -1)<br>
    row 8: (5, -1)&nbsp; (7, -1)&nbsp; (8, 2)<br>
    Vector Object:Vec_0000000084000000_0 1 MPI processes<br>
    &nbsp; type: mpi<br>
    Process [0]<br>
    0.25<br>
    0.0205213<br>
    1.135e-005<br>
    0.0205213<br>
    0.00168449<br>
    9.31663e-007<br>
    1.135e-005<br>
    9.31663e-007<br>
    5.15289e-010<br>
    Vector Object:Vec_0000000084000000_1 1 MPI processes<br>
    &nbsp; type: mpi<br>
    Process [0]<br>
    0.14924<br>
    0.0242397<br>
    -0.0260347<br>
    0.0242397<br>
    -0.0256192<br>
    -0.0400102<br>
    -0.0260347<br>
    -0.0400102<br>
    -0.0400102<br>
    Press any key to continue . . .<br>
    <br>
    C:<br>
    <br>
    Matrix Object: 1 MPI processes<br>
    &nbsp; type: seqaij<br>
    row 0: (0, 2)&nbsp; (1, -1)&nbsp; (3, -1) <br>
    row 1: (0, -1)&nbsp; (1, 3)&nbsp; (2, -1)&nbsp; (4, -1) <br>
    row 2: (1, -1)&nbsp; (2, 2)&nbsp; (5, -1) <br>
    row 3: (0, -1)&nbsp; (3, 3)&nbsp; (4, -1)&nbsp; (6, -1) <br>
    row 4: (1, -1)&nbsp; (3, -1)&nbsp; (4, 4)&nbsp; (5, -1)&nbsp; (7, -1) <br>
    row 5: (2, -1)&nbsp; (4, -1)&nbsp; (5, 3)&nbsp; (8, -1) <br>
    row 6: (3, -1)&nbsp; (6, 2)&nbsp; (7, -1) <br>
    row 7: (4, -1)&nbsp; (6, -1)&nbsp; (7, 3)&nbsp; (8, -1) <br>
    row 8: (5, -1)&nbsp; (7, -1)&nbsp; (8, 2) <br>
    Vector Object:Vec_0x1d3b000_0 1 MPI processes<br>
    &nbsp; type: mpi<br>
    Process [0]<br>
    0.25<br>
    0.0205212<br>
    1.135e-05<br>
    0.0205212<br>
    0.00168449<br>
    9.31663e-07<br>
    1.135e-05<br>
    9.31663e-07<br>
    5.15288e-10<br>
    Vector Object:Vec_0x1d3b000_1 1 MPI processes<br>
    &nbsp; type: mpi<br>
    Process [0]<br>
    0.139311<br>
    0.0305751<br>
    -0.0220633<br>
    0.0305751<br>
    -0.0135158<br>
    -0.042185<br>
    -0.0220633<br>
    -0.042185<br>
    -0.058449<br>
    <br>
    <br>
    <br>
    <pre class="moz-signature" cols="72">Yours sincerely,

TAY wee-beng</pre>
    <br>
    On 1/5/2012 11:54 PM, Matthew Knepley wrote:
    <blockquote
cite="mid:CAMYG4Gk-vSa_kwRnp58up8cu7YPDN53Lb03JQviB+nduJSy9KQ@mail.gmail.com"
      type="cite">
      <div class="gmail_extra">On Tue, May 1, 2012 at 5:48 PM, TAY
        wee-beng <span dir="ltr">&lt;<a moz-do-not-send="true"
            href="mailto:zonexo@gmail.com" target="_blank">zonexo@gmail.com</a>&gt;</span>
        wrote:<br>
        <div class="gmail_quote">
          <blockquote class="gmail_quote" style="margin:0 0 0
            .8ex;border-left:1px #ccc solid;padding-left:1ex">
            Hi,<br>
            <br>
            Do you mean my method is wrong?<br>
            <br>
            I am following the template of ex22f,<br>
            <br>
            where the variables are declared as :<br>
            <br>
            PetscScalar &nbsp;v(5)<br>
            <br>
            MatStencil &nbsp; row(4),col(4,5)<br>
            <br>
            Hence,<br>
            <br>
            for the neumann BC<br>
            <br>
            num = 1<br>
            <br>
            &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (j/=0) then<br>
            <br>
            &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;v(num) = -rho*HxdHy<br>
            <br>
            &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;col(MatStencil_i,num) = i<br>
            <br>
            &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;col(MatStencil_j,num) = j-1<br>
            <br>
            &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;num = num + 1<br>
            <br>
            &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;end if<br>
            <br>
            &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (i/=0) then<br>
            <br>
            &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;v(num) = -rho*HydHx<br>
            <br>
            &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;col(MatStencil_i,num) = i-1<br>
            <br>
            &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;col(MatStencil_j,num) = j<br>
            <br>
            &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;num = num + 1<br>
            <br>
            &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;end if<br>
            <br>
            &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (i/=mx-1) then<br>
            <br>
            &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;v(num) = -rho*HydHx<br>
            <br>
            &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;col(MatStencil_i,num) = i+1<br>
            <br>
            &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;col(MatStencil_j,num) = j<br>
            <br>
            &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;num = num + 1<br>
            <br>
            &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;end if<br>
            <br>
            &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (j/=my-1) then<br>
            <br>
            &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;v(num) = -rho*HxdHy<br>
            <br>
            &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;col(MatStencil_i,num) = i<br>
            <br>
            &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;col(MatStencil_j,num) = j+1<br>
            <br>
            &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;num = num + 1<br>
            <br>
            &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;end if<br>
            <br>
            &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;v(num) = ((num-1)/2.0)*rho*(HxdHy + HydHx)<br>
            <br>
            &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;print *, v<br>
            <br>
            &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;col(MatStencil_i,num) = i<br>
            <br>
            &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;col(MatStencil_j,num) = j<br>
            <br>
            &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;!num = num + 1<br>
            <br>
            &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;call MatSetValuesStencil(jac,i1,row,num,col,v,INSERT_VALUES,ierr)<br>
            <br>
            I do not get any more out of range error. However,my ans is
            still different from that of ex29 in C.<br>
          </blockquote>
          <div><br>
          </div>
          <div>This is very simple. You have an error in your code.
            Checking it is very simple: run the code and</div>
          <div>break in MatSetValues(). Make sure ex29 makes calls with
            exactly the same indices as your ex29f.</div>
          <div><br>
          </div>
          <div>&nbsp; &nbsp; Matt</div>
          <div>&nbsp;</div>
          <blockquote class="gmail_quote" style="margin:0 0 0
            .8ex;border-left:1px #ccc solid;padding-left:1ex">
            Yours sincerely,<br>
            <br>
            TAY wee-beng<br>
          </blockquote>
        </div>
        <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<br>
      </div>
    </blockquote>
  </body>
</html>