<html>
  <head>
    <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">Hi Matthew,<br>
      <br>
      How about the matview output? Is this automatically permuted to
      the natural ordering too?<br>
      <br>
      Thanks,<br>
      <br>
      Danyang<br>
      <br>
      On 20/05/2014 12:25 PM, Matthew Knepley wrote:<br>
    </div>
    <blockquote
cite="mid:CAMYG4Gmb-pZ7Y7FNSt8qvjtMzRuMQs43ci9-xp35rs0ROTUBAA@mail.gmail.com"
      type="cite">
      <div dir="ltr">
        <div class="gmail_extra">
          <div class="gmail_quote">On Tue, May 20, 2014 at 1:31 PM,
            Danyang Su <span dir="ltr"><<a moz-do-not-send="true"
                href="mailto:danyang.su@gmail.com" target="_blank">danyang.su@gmail.com</a>></span>
            wrote:<br>
            <blockquote class="gmail_quote" style="margin:0 0 0
              .8ex;border-left:1px #ccc solid;padding-left:1ex">
              <div bgcolor="#FFFFFF" text="#000000"> Hi All,<br>
                <br>
                I use DMDA for a flow problem and found the local vector
                and global vector does not match for 2D and 3D problem
                when dof >1.<br>
                <br>
                For example, the mesh is as follows:<br>
                <br>
                |proc 1|   proc 2 |   proc 3  |<br>
                |7  8  9|16 17 18|25 26 27|<br>
                |4  5  6|13 14 15|22 23 24|<br>
                |1  2  3|10 11 12|19 20 21|<br>
                <br>
                <font color="#ff0000"><i>The following functions are
                    used to create DMDA object, global vector and local
                    vector.</i></font><br>
                <br>
                call
                DMDACreate2d(Petsc_Comm_World,DMDA_BOUNDARY_NONE,    
                &<br>
                                     DMDA_BOUNDARY_NONE,
                DMDA_STENCIL_BOX,             &<br>
                                    
                nvxgbl,nvzgbl,PETSC_DECIDE,PETSC_DECIDE,          &<br>
                                     dmda_flow%dof,
                dmda_flow%swidth,                  &<br>
                                    
                PETSC_NULL_INTEGER,PETSC_NULL_INTEGER,            &<br>
                                     dmda_flow%da,ierr) <br>
                call DMCreateGlobalVector(dmda_flow%da,x_flow,ierr)<br>
                call VecDuplicate(x_flow,b_flow,ierr)<br>
                call DMCreateLocalVector(dmda_flow%da,x_flow_loc,ierr)<br>
                call VecDuplicate(x_flow_loc,b_flow_loc,ierr)<br>
                <br>
                <i><font color="#ff0000">The following functions are
                    used to compute the function (b_flow_loc)</font></i><br>
                <br>
                call VecGetArrayF90(b_flow_loc, vecpointer, ierr)<br>
                <font color="#000099">vecpointer = (compute the values
                  here...)</font><br>
                call VecRestoreArrayF90(b_flow_loc,vecpointer,ierr)<br>
                call
                DMLocalToGlobalBegin(dmda_flow%,b_flow_loc,INSERT_VALUES,       
                &<br>
                                          b_flow,ierr)<br>
                call
                DMLocalToGlobalEnd(dmda_flow%,b_flow_loc,INSERT_VALUES,         
                &<br>
                                          b_flow,ierr)<br>
                <br>
                <br>
                <i><font color="#ff0000">The data of local vector
                    b_flow_loc for proc1, proc2 and proc3 are as follows
                    (just an example, without ghost value)</font></i><br>
                proc 1  proc 2   proc 3<br>
                  1        10        19<br>
                  2        11        20<br>
                  3        12        21<br>
                  4        13        22<br>
                  5        14        23<br>
                  6        15        24<br>
                  ...      ...       ...<br>
                <br>
                <i><font color="#ff0000">But the global vector b_flow
                    from Vecview shows that the data is stored as
                    follows (left column). I thought the global vector
                    b_flow is like the right column. Is anything wrong
                    here?</font></i></div>
            </blockquote>
            <div><br>
            </div>
            <div>On output, the global vectors are automatically
              permuted to the natural ordering.</div>
            <div><br>
            </div>
            <div>   Matt</div>
            <div> </div>
            <blockquote class="gmail_quote" style="margin:0 0 0
              .8ex;border-left:1px #ccc solid;padding-left:1ex">
              <div bgcolor="#FFFFFF" text="#000000"><br>
                Process [0]            Process [0]<br>
                1                              1<br>
                2                              2<br>
                3                              3<br>
                10                            4<br>
                11                            5<br>
                12                            6<br>
                ...                              ...                   <br>
                Process [1]            Process [1]<br>
                4                              10<br>
                5                              11<br>
                6                              12<br>
                13                            13<br>
                14                            14<br>
                15                            15<br>
                ...                              ...<br>
                Process [2]            Process [2]<br>
                ...                            ...<br>
                <br>
                Though the data distribution is different from what I
                thought before, the code works well for 1D problem and
                most of the 2D and 3D problem, but failed in newton
                iteration for some 2D problem with dof > 1. I use KSP
                solver, not SNES solver at present.<br>
                <br>
                Thanks and regards,<br>
                <br>
                Danyang<br>
                <br>
                <br>
              </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
        </div>
      </div>
    </blockquote>
    <br>
  </body>
</html>