<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <br>
    On 2/5/2012 10:11 PM, Matthew Knepley wrote:
    <blockquote
cite="mid:CAMYG4GkSc4dzoavG8=jM7GNo53c0Vdmumn4NEj2JacxxdLtw7Q@mail.gmail.com"
      type="cite">
      <div class="gmail_extra">On Wed, May 2, 2012 at 1:55 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">
            <div 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>
            </div>
          </blockquote>
          <div><br>
          </div>
          <div>Did you set the null space for the matrix when you have
            Neumann conditions?</div>
        </div>
      </div>
    </blockquote>
    Yes, for the matrix, I set as:<br>
    <br>
    call
MatNullSpaceCreate(PETSC_COMM_WORLD,PETSC_TRUE,0,PETSC_NULL_OBJECT,nullspace,ierr)<br>
    <br>
    &nbsp;&nbsp;&nbsp; call MatSetNullSpace(jac,nullspace,ierr)<br>
    <br>
    &nbsp;&nbsp;&nbsp; call MatNullSpaceDestroy(nullspace,ierr)<br>
    <br>
    for the Vec, <br>
    <br>
    call
MatNullSpaceCreate(PETSC_COMM_WORLD,PETSC_TRUE,0,PETSC_NULL_OBJECT,nullspace,ierr)<br>
    <br>
    &nbsp;&nbsp;&nbsp; <b>!call MatNullSpaceRemove(nullspace,b,PETSC_NULL,ierr)</b><br>
    <br>
    &nbsp;&nbsp;&nbsp; call MatNullSpaceDestroy(nullspace,ierr)<br>
    <br>
    MatNullSpaceRemove was comment out because there's error during
    linking<br>
    <br>
    <br>
    <blockquote
cite="mid:CAMYG4GkSc4dzoavG8=jM7GNo53c0Vdmumn4NEj2JacxxdLtw7Q@mail.gmail.com"
      type="cite">
      <div class="gmail_extra">
        <div class="gmail_quote">
          <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">
            <div bgcolor="#FFFFFF" text="#000000"> 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 cols="72">Yours sincerely,

TAY wee-beng</pre>
              <br>
              On 1/5/2012 11:54 PM, Matthew Knepley wrote:
              <blockquote 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>
                    <span class="HOEnZb"><font color="#888888"> </font></span></div>
                  <span class="HOEnZb"><font color="#888888"> -- <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>
                    </font></span></div>
              </blockquote>
            </div>
          </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<br>
      </div>
    </blockquote>
  </body>
</html>