<html>
  <head>
    <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <br>
    On 4/5/2012 9:28 PM, Matthew Knepley wrote:
    <blockquote
cite="mid:CAMYG4G=xWRftxiGowV=Nt9SJCEx0+AsH-ZQyMKWs5wUTeSzrBg@mail.gmail.com"
      type="cite">
      <div class="gmail_extra">On Fri, May 4, 2012 at 3:24 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">
            <br>
            On 4/5/2012 9:16 PM, Barry Smith wrote:<br>
            <blockquote class="gmail_quote" style="margin:0 0 0
              .8ex;border-left:1px #ccc solid;padding-left:1ex">    Do
              an hg pull and then run make in
              src/mat/interface/ftn-custom/<br>
              <br>
                  Then it should link.<br>
              <br>
                 Barry<br>
              <br>
                 There was a E missing from the all caps name of the
              function.<br>
            </blockquote>
            After hg pull, I did:<br>
            <br>
            cd src//mat/interface/ftn-custom/<br>
            <br>
            User@User-PC /cygdrive/c/temp/petsc-dev/src/mat/interface/ftn-custom<br>
            $ make<br>
            make[1]: Warning: File `/cygdrive/c/temp/petsc-dev/petsc-3.2-dev_win32_vs2008/lib/libpetsc.lib(zmatregf.o)'
            has modification time 787 s in the future<br>
            make[1]: Nothing to be done for `libc'.<br>
            make[1]: warning:  Clock skew detected.  Your build may be
            incomplete.<br>
            <br>
            But it still can't work.<br>
          </blockquote>
          <div><br>
          </div>
          <div>Something is messed up with the clock on this machine.</div>
          <div><br>
          </div>
          <div>HOWEVER, development requires certain basic skills in
            order to debug your work. We</div>
          <div>cannot be the ones debugging your code. Now</div>
          <div><br>
          </div>
          <div>  nm $PETSC_ARCH/lib/libpetsc.a | grep -i
            MatNullSpaceRemove</div>
          <div><br>
          </div>
          <div> will look for the symbol.</div>
          <div><br>
          </div>
          <div>    Matt</div>
        </div>
      </div>
    </blockquote>
    <br>
    Thanks everyone, it's now working. Sorry for all the trouble.<br>
    <blockquote
cite="mid:CAMYG4G=xWRftxiGowV=Nt9SJCEx0+AsH-ZQyMKWs5wUTeSzrBg@mail.gmail.com"
      type="cite">
      <div class="gmail_extra">
        <div class="gmail_quote">
          <div> </div>
          <blockquote class="gmail_quote" style="margin:0 0 0
            .8ex;border-left:1px #ccc solid;padding-left:1ex">
            <blockquote class="gmail_quote" style="margin:0 0 0
              .8ex;border-left:1px #ccc solid;padding-left:1ex">
              <br>
              <br>
              On May 4, 2012, at 2:11 PM, Matthew Knepley wrote:<br>
              <br>
              <blockquote class="gmail_quote" style="margin:0 0 0
                .8ex;border-left:1px #ccc solid;padding-left:1ex">
                On Fri, May 4, 2012 at 3:01 PM, TAY wee-beng&lt;<a
                  moz-do-not-send="true" href="mailto:zonexo@gmail.com"
                  target="_blank">zonexo@gmail.com</a>&gt;  wrote:<br>
                <br>
                On 4/5/2012 5:17 PM, Matthew Knepley wrote:<br>
                <blockquote class="gmail_quote" style="margin:0 0 0
                  .8ex;border-left:1px #ccc solid;padding-left:1ex">
                  On Fri, May 4, 2012 at 11:05 AM, TAY wee-beng&lt;<a
                    moz-do-not-send="true"
                    href="mailto:zonexo@gmail.com" target="_blank">zonexo@gmail.com</a>&gt;
                   wrote:<br>
                  <br>
                  On 4/5/2012 3:05 PM, Matthew Knepley wrote:<br>
                  <blockquote class="gmail_quote" style="margin:0 0 0
                    .8ex;border-left:1px #ccc solid;padding-left:1ex">
                    On Fri, May 4, 2012 at 8:59 AM, TAY wee-beng&lt;<a
                      moz-do-not-send="true"
                      href="mailto:zonexo@gmail.com" target="_blank">zonexo@gmail.com</a>&gt;
                     wrote:<br>
                    <br>
                    Hi,<br>
                    <br>
                    Is there anything else I can try to get it working
                    right?<br>
                    <br>
                    The MatGetNullSpaceRemove() is missing.<br>
                  </blockquote>
                  Where should I add MatGetNullSpaceRemove and what are
                  its syntax? I googled but there's no results.<br>
                  <br>
                  Fixed in p;etsc-dev:<br>
                  <br>
                    <a moz-do-not-send="true"
href="http://www.mcs.anl.gov/petsc/petsc-dev/docs/manualpages/Mat/MatNullSpaceRemove.html"
                    target="_blank">http://www.mcs.anl.gov/petsc/petsc-dev/docs/manualpages/Mat/MatNullSpaceRemove.html</a><br>
                </blockquote>
                I just compiled the updated petsc-dev but I got the same
                error msg when I use:<br>
                <br>
                call MatNullSpaceRemove(nullspace,b,PETSC_NULL,ierr)<br>
                <br>
                error LNK2019: unresolved external symbol
                MATNULLSPACEREMOVE referenced in function COMPUTERHS<br>
                1&gt;c:\obj_tmp\ex29f\Debug\ex29f.exe : fatal error
                LNK1120: 1 unresolved externals<br>
                <br>
                That function is in:<br>
                <br>
                  src/mat/interface/ftn-custom/zmatrixf.c<br>
                <br>
                Did that compile? Can you see the symbol in libpetsc.a?<br>
                <br>
                    Matt<br>
                <br>
                <blockquote class="gmail_quote" style="margin:0 0 0
                  .8ex;border-left:1px #ccc solid;padding-left:1ex">    
                   Matt<br>
                  <br>
                  Thanks.<br>
                  <blockquote class="gmail_quote" style="margin:0 0 0
                    .8ex;border-left:1px #ccc solid;padding-left:1ex">  
                     Matt<br>
                    <br>
                    Thanks!<br>
                    <br>
                    <br>
                    On 2/5/2012 10:11 PM, Matthew Knepley wrote:<br>
                    <blockquote class="gmail_quote" style="margin:0 0 0
                      .8ex;border-left:1px #ccc solid;padding-left:1ex">
                      On Wed, May 2, 2012 at 1:55 PM, TAY wee-beng&lt;<a
                        moz-do-not-send="true"
                        href="mailto:zonexo@gmail.com" target="_blank">zonexo@gmail.com</a>&gt;
                       wrote:<br>
                      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>
                      Did you set the null space for the matrix when you
                      have Neumann conditions?<br>
                    </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>
                        call MatSetNullSpace(jac,nullspace,ierr)<br>
                    <br>
                        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>
                        !call MatNullSpaceRemove(nullspace,b,PETSC_NULL,ierr)<br>
                    <br>
                        call MatNullSpaceDestroy(nullspace,ierr)<br>
                    <br>
                    MatNullSpaceRemove was comment out because there's
                    error during linking<br>
                    <br>
                    <br>
                    <blockquote class="gmail_quote" style="margin:0 0 0
                      .8ex;border-left:1px #ccc solid;padding-left:1ex">
                         Matt<br>
                      <br>
                      Thanks!<br>
                      <br>
                      Fortran:<br>
                      <br>
                      Matrix Object: 1 MPI processes<br>
                        type: seqaij<br>
                      row 0: (0, 2)  (1, -1)  (3, -1)<br>
                      row 1: (0, -1)  (1, 3)  (2, -1)  (4, -1)<br>
                      row 2: (1, -1)  (2, 2)  (5, -1)<br>
                      row 3: (0, -1)  (3, 3)  (4, -1)  (6, -1)<br>
                      row 4: (1, -1)  (3, -1)  (4, 4)  (5, -1)  (7, -1)<br>
                      row 5: (2, -1)  (4, -1)  (5, 3)  (8, -1)<br>
                      row 6: (3, -1)  (6, 2)  (7, -1)<br>
                      row 7: (4, -1)  (6, -1)  (7, 3)  (8, -1)<br>
                      row 8: (5, -1)  (7, -1)  (8, 2)<br>
                      Vector Object:Vec_0000000084000000_0 1 MPI
                      processes<br>
                        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>
                        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>
                        type: seqaij<br>
                      row 0: (0, 2)  (1, -1)  (3, -1)<br>
                      row 1: (0, -1)  (1, 3)  (2, -1)  (4, -1)<br>
                      row 2: (1, -1)  (2, 2)  (5, -1)<br>
                      row 3: (0, -1)  (3, 3)  (4, -1)  (6, -1)<br>
                      row 4: (1, -1)  (3, -1)  (4, 4)  (5, -1)  (7, -1)<br>
                      row 5: (2, -1)  (4, -1)  (5, 3)  (8, -1)<br>
                      row 6: (3, -1)  (6, 2)  (7, -1)<br>
                      row 7: (4, -1)  (6, -1)  (7, 3)  (8, -1)<br>
                      row 8: (5, -1)  (7, -1)  (8, 2)<br>
                      Vector Object:Vec_0x1d3b000_0 1 MPI processes<br>
                        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>
                        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>
                      Yours sincerely,<br>
                      <br>
                      TAY wee-beng<br>
                      <br>
                      <br>
                      On 1/5/2012 11:54 PM, Matthew Knepley wrote:<br>
                      <blockquote class="gmail_quote" style="margin:0 0
                        0 .8ex;border-left:1px #ccc
                        solid;padding-left:1ex">
                        On Tue, May 1, 2012 at 5:48 PM, TAY wee-beng&lt;<a
                          moz-do-not-send="true"
                          href="mailto:zonexo@gmail.com" target="_blank">zonexo@gmail.com</a>&gt;
                         wrote:<br>
                        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  v(5)<br>
                        <br>
                        MatStencil   row(4),col(4,5)<br>
                        <br>
                        Hence,<br>
                        <br>
                        for the neumann BC<br>
                        <br>
                        num = 1<br>
                        <br>
                                       if (j/=0) then<br>
                        <br>
                                           v(num) = -rho*HxdHy<br>
                        <br>
                                           col(MatStencil_i,num) = i<br>
                        <br>
                                           col(MatStencil_j,num) = j-1<br>
                        <br>
                                           num = num + 1<br>
                        <br>
                                       end if<br>
                        <br>
                                       if (i/=0) then<br>
                        <br>
                                           v(num) = -rho*HydHx<br>
                        <br>
                                           col(MatStencil_i,num) = i-1<br>
                        <br>
                                           col(MatStencil_j,num) = j<br>
                        <br>
                                           num = num + 1<br>
                        <br>
                                       end if<br>
                        <br>
                                       if (i/=mx-1) then<br>
                        <br>
                                           v(num) = -rho*HydHx<br>
                        <br>
                                           col(MatStencil_i,num) = i+1<br>
                        <br>
                                           col(MatStencil_j,num) = j<br>
                        <br>
                                           num = num + 1<br>
                        <br>
                                       end if<br>
                        <br>
                                       if (j/=my-1) then<br>
                        <br>
                                           v(num) = -rho*HxdHy<br>
                        <br>
                                           col(MatStencil_i,num) = i<br>
                        <br>
                                           col(MatStencil_j,num) = j+1<br>
                        <br>
                                           num = num + 1<br>
                        <br>
                                       end if<br>
                        <br>
                                       v(num) = ((num-1)/2.0)*rho*(HxdHy
                        + HydHx)<br>
                        <br>
                                       print *, v<br>
                        <br>
                                       col(MatStencil_i,num) = i<br>
                        <br>
                                       col(MatStencil_j,num) = j<br>
                        <br>
                                       !num = num + 1<br>
                        <br>
                                       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>
                        <br>
                        This is very simple. You have an error in your
                        code. Checking it is very simple: run the code
                        and<br>
                        break in MatSetValues(). Make sure ex29 makes
                        calls with exactly the same indices as your
                        ex29f.<br>
                        <br>
                            Matt<br>
                        <br>
                        Yours sincerely,<br>
                        <br>
                        TAY wee-beng<br>
                        <br>
                        -- <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>
                      </blockquote>
                      <br>
                      <br>
                      -- <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>
                    </blockquote>
                    <br>
                    <br>
                    -- <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>
                  </blockquote>
                  <br>
                  <span class="HOEnZb"><font color="#888888">
                      <br>
                      -- <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></blockquote>
                <span class="HOEnZb"><font color="#888888">
                    <br>
                    <br>
                    -- <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></blockquote>
            </blockquote>
          </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>