<div dir="ltr"><div><div><div><div><div>No, you misunderstood. The 4 refers to <br><br></div>1 for i direction<br>+<br></div>1 for j direction<br>+<br></div>1 for k direction<br>+<br></div>1 for dof direction<br>=<br>4<br><br></div><div>Does it solve your problem ?<br></div><div><br></div><div>Best<br></div><div><br></div>Timothee<br></div><div class="gmail_extra"><br><div class="gmail_quote">2015-09-23 17:25 GMT+09:00 TAY wee-beng <span dir="ltr"><<a href="mailto:zonexo@gmail.com" target="_blank">zonexo@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  
    
  
  <div bgcolor="#FFFFFF" text="#000000"><span class="">
    <br>
    <pre cols="72">Thank you

Yours sincerely,

TAY wee-beng</pre>
    </span><span class=""><div>On 23/9/2015 4:18 PM, Timothée Nicolas
      wrote:<br>
    </div>
    <blockquote type="cite">
      <div dir="ltr">
        <div>
          <div>
            <div>
              <div>The first thing that strikes me is your definition of
                the stencils <br>
                <br>
                <b><i>MatStencil  :: row(6,1),col(6,7)</i></b><b><i><br>
                    <br>
                  </i></b></div>
              Why is it not defined with <br>
              <br>
              <b><i>MatStencil  :: row(4,1),col(4,7)</i></b><b><i><br>
                </i></b><br>
            </div>
            instead ?<br>
            <br>
          </div>
          Where does the 6 come from ?<br>
          <br>
        </div>
        Timothée<br>
      </div>
    </blockquote></span>
    Hi,<br>
    <br>
    Maybe I misunderstood. But in your email tutorial, last time, with 1
    dof, it's <br>
    <br>
    <br>
    <b><i>MatStencil  :: row(4,1),col(4,7)</i></b><b><i><br>
      </i></b><br>
    So now I have 3 dof, shouldn't it be<br>
    <br>
    <b><i>MatStencil  :: row(6,1),col(6,7)</i></b><b><i><br>
        ?<br>
        <br>
      </i></b><div><div class="h5">
    <blockquote type="cite">
      <div dir="ltr">
        <div>
          <div>
            <div><br>
            </div>
          </div>
        </div>
      </div>
      <div class="gmail_extra"><br>
        <div class="gmail_quote">2015-09-23 17:14 GMT+09:00 TAY wee-beng
          <span dir="ltr"><<a href="mailto:zonexo@gmail.com" target="_blank">zonexo@gmail.com</a>></span>:<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,<br>
              <br>
              I have successfully used MatSetValuesStencil to insert
              values into a Poisson eqn matrix which has 1 DOF
              (pressure). Now I'm trying to insert values in a momentum
              eqn matrix which has 3 DOF (u,v,w)<br>
              <br>
              However, I got the error: <br>
              <br>
              <i><b>[0]PETSC ERROR: --------------------- Error Message
                  ----------------------------</b></i><i><b><br>
                </b></i><i><b>----------------------------------</b></i><i><b><br>
                </b></i><i><b>[0]PETSC ERROR: Argument out of range</b></i><i><b><br>
                </b></i><i><b>[0]PETSC ERROR: Inserting a new nonzero at
                  (111,5) in the matrix</b></i><i><b><br>
                </b></i><i><b>[0]PETSC ERROR: See <a href="http://www.mcs.anl.gov/petsc/documentation/faq.html" target="_blank"></a><a href="http://www.mcs.anl.gov/petsc/documentation/faq.html" target="_blank">http://www.mcs.anl.gov/petsc/documentation/faq.html</a>
                  for trou</b></i><i><b><br>
                </b></i><i><b>ble shooting.</b></i><br>
              <br>
              I wonder what's wrong.  For the momentum eqn, for each
              DOF, at at node (dof,i,j,k), I have coupling i +/- 1, j
              +/- 1 and k +/- 1.<br>
              <br>
              The error happens at 111,5, which corresponds to i = 2, j
              = 2, k = 2, which is an internal node.<br>
              <br>
              Here's part of my code below. Hope someone can help.
              Thanks!<br>
              <b><i><br>
                </i></b><b><i>PetscScalar :: value_insert(7)</i></b><b><i><br>
                </i></b><b><i><br>
                </i></b><b><i>MatStencil  :: row(6,1),col(6,7)</i></b><b><i><br>
                </i></b><b><i><br>
                </i></b><b><i>ione = 1;   iseven = 7</i></b><b><i><br>
                </i></b><b><i><br>
                </i></b><b><i>if (cell_type == 'u') then</i></b><b><i><br>
                </i></b><b><i><br>
                </i></b><b><i>    offset = 1</i></b><b><i><br>
                </i></b><b><i>    </i></b><b><i><br>
                </i></b><b><i>else if (cell_type == 'v') then</i></b><b><i><br>
                </i></b><b><i><br>
                </i></b><b><i>    offset = 2</i></b><b><i><br>
                </i></b><b><i>    </i></b><b><i><br>
                </i></b><b><i>else if (cell_type == 'w') then</i></b><b><i><br>
                </i></b><b><i><br>
                </i></b><b><i>    offset = 3</i></b><b><i><br>
                </i></b><b><i>    </i></b><b><i><br>
                </i></b><b><i>end if</i></b><b><i><br>
                </i></b><b><i><br>
                </i></b><b><i>do k=ksta2,kend2</i></b><b><i><br>
                </i></b><b><i><br>
                </i></b><b><i>    do j = jsta2,jend2</i></b><b><i><br>
                </i></b><b><i><br>
                </i></b><b><i>        do i=2,size_x-1</i></b><b><i><br>
                </i></b><b><i>            </i></b><b><i><br>
                </i></b><b><i>            row(MatStencil_i,1) = i - 1</i></b><b><i><br>
                </i></b><b><i>            </i></b><b><i><br>
                </i></b><b><i>            row(MatStencil_j,1) = j - 1</i></b><b><i><br>
                </i></b><b><i>            </i></b><b><i><br>
                </i></b><b><i>            row(MatStencil_k,1) = k - 1</i></b><b><i><br>
                </i></b><b><i>            </i></b><b><i><br>
                </i></b><b><i>            row(MatStencil_c,1) = offset -
                  1</i></b><b><i><br>
                </i></b><b><i>            </i></b><b><i><br>
                </i></b><b><i>            value_insert = 0.d0</i></b><b><i><br>
                </i></b><b><i>            </i></b><b><i><br>
                </i></b><b><i>            col(MatStencil_i,3) = i + 1 -
                  1 !east</i></b><b><i><br>
                </i></b><b><i>                </i></b><b><i><br>
                </i></b><b><i>            col(MatStencil_j,3) = j - 1</i></b><b><i><br>
                </i></b><b><i>                </i></b><b><i><br>
                </i></b><b><i>            col(MatStencil_k,3) = k - 1</i></b><b><i><br>
                </i></b><b><i>                </i></b><b><i><br>
                </i></b><b><i>            col(MatStencil_c,3) = offset -
                  1</i></b><b><i><br>
                </i></b><b><i>                </i></b><b><i><br>
                </i></b><b><i>            value_insert(3) = -(
                  1./(cell_x(i)%pd_E+cell_x(i+1)%pd_W))*(c_yz(j,k)%fc_E)*inv_Re</i></b><b><i><br>
                </i></b><b><i>            </i></b><b><i><br>
                </i></b><b><i>            col(MatStencil_i,5) = i - 1 -
                  1 !west</i></b><b><i><br>
                </i></b><b><i>                </i></b><b><i><br>
                </i></b><b><i>            col(MatStencil_j,5) = j - 1</i></b><b><i><br>
                </i></b><b><i>                </i></b><b><i><br>
                </i></b><b><i>            col(MatStencil_k,5) = k - 1</i></b><b><i><br>
                </i></b><b><i>                </i></b><b><i><br>
                </i></b><b><i>            col(MatStencil_c,5) = offset -
                  1</i></b><b><i><br>
                </i></b><b><i>                </i></b><b><i><br>
                </i></b><b><i>            value_insert(5) = -(
                  1./(cell_x(i)%pd_W+cell_x(i-1)%pd_E))*(c_yz(j,k)%fc_E)*inv_Re</i></b><b><i><br>
                </i></b><b><i>            </i></b><b><i><br>
                </i></b><b><i>            col(MatStencil_i,2) = i - 1
                  !north</i></b><b><i><br>
                </i></b><b><i>                </i></b><b><i><br>
                </i></b><b><i>            col(MatStencil_j,2) = j + 1 -
                  1</i></b><b><i><br>
                </i></b><b><i>                </i></b><b><i><br>
                </i></b><b><i>            col(MatStencil_k,2) = k - 1</i></b><b><i><br>
                </i></b><b><i>                </i></b><b><i><br>
                </i></b><b><i>            col(MatStencil_c,2) = offset -
                  1</i></b><b><i><br>
                </i></b><b><i>                </i></b><b><i><br>
                </i></b><b><i>            value_insert(2) = -(
                  1./(cell_y(j)%pd_N+cell_y(j+1)%pd_S))*(c_zx(i,k)%fc_N)*inv_Re</i></b><b><i><br>
                </i></b><b><i>            </i></b><b><i><br>
                </i></b><b><i>            col(MatStencil_i,4) = i - 1
                  !south</i></b><b><i><br>
                </i></b><b><i>                </i></b><b><i><br>
                </i></b><b><i>            col(MatStencil_j,4) = j - 1 -
                  1</i></b><b><i><br>
                </i></b><b><i>                </i></b><b><i><br>
                </i></b><b><i>            col(MatStencil_k,4) = k - 1</i></b><b><i><br>
                </i></b><b><i>                </i></b><b><i><br>
                </i></b><b><i>            col(MatStencil_c,4) = offset -
                  1</i></b><b><i><br>
                </i></b><b><i>                </i></b><b><i><br>
                </i></b><b><i>            value_insert(4) = -(
                  1./(cell_y(j)%pd_S+cell_y(j-1)%pd_N))*(c_zx(i,k)%fc_N)*inv_Re</i></b><b><i><br>
                </i></b><b><i>            </i></b><b><i><br>
                </i></b><b><i>            col(MatStencil_i,6) = i - 1
                  !front</i></b><b><i><br>
                </i></b><b><i>                </i></b><b><i><br>
                </i></b><b><i>            col(MatStencil_j,6) = j - 1</i></b><b><i><br>
                </i></b><b><i>                </i></b><b><i><br>
                </i></b><b><i>            col(MatStencil_k,6) = k + 1 -
                  1</i></b><b><i><br>
                </i></b><b><i>                </i></b><b><i><br>
                </i></b><b><i>            col(MatStencil_c,6) = offset -
                  1</i></b><b><i><br>
                </i></b><b><i>                </i></b><b><i><br>
                </i></b><b><i>            value_insert(6) = -(
                  1./(cell_z(k)%pd_F+cell_z(k+1)%pd_B))*(c_xy(i,j)%fc_F)*inv_Re</i></b><b><i><br>
                </i></b><b><i>            </i></b><b><i><br>
                </i></b><b><i>            col(MatStencil_i,7) = i - 1
                  !back</i></b><b><i><br>
                </i></b><b><i>                </i></b><b><i><br>
                </i></b><b><i>            col(MatStencil_j,7) = j - 1</i></b><b><i><br>
                </i></b><b><i>                </i></b><b><i><br>
                </i></b><b><i>            col(MatStencil_k,7) = k - 1 -
                  1</i></b><b><i><br>
                </i></b><b><i>                </i></b><b><i><br>
                </i></b><b><i>            col(MatStencil_c,7) = offset -
                  1</i></b><b><i><br>
                </i></b><b><i>                </i></b><b><i><br>
                </i></b><b><i>            value_insert(7) = -(
                  1./(cell_z(k)%pd_B+cell_z(k-1)%pd_F))*(c_xy(i,j)%fc_F)*inv_Re</i></b><b><i><br>
                </i></b><b><i>            </i></b><b><i><br>
                </i></b><b><i>            col(MatStencil_i,1) = i - 1</i></b><b><i><br>
                </i></b><b><i>            </i></b><b><i><br>
                </i></b><b><i>            col(MatStencil_j,1) = j - 1</i></b><b><i><br>
                </i></b><b><i>            </i></b><b><i><br>
                </i></b><b><i>            col(MatStencil_k,1) = k - 1</i></b><b><i><br>
                </i></b><b><i>            </i></b><b><i><br>
                </i></b><b><i>            col(MatStencil_c,1) = offset -
                  1</i></b><b><i><br>
                </i></b><b><i>            </i></b><b><i><br>
                </i></b><b><i>            value_insert(1) =
                  2.*c(i,j,k)%vol/del_t -
(value_insert(2)+value_insert(3)+value_insert(4)+value_insert(5)+value_insert(6)+value_insert(7))</i></b><b><i><br>
                </i></b><b><i>            </i></b><b><i><br>
                </i></b><b><i>            call
MatSetValuesStencil(A_semi_xyz,ione,row,iseven,col,value_insert,INSERT_VALUES,ierr)</i></b><b><i><br>
                </i></b><b><i>            </i></b><b><i><br>
                </i></b><b><i>        end do</i></b><b><i><br>
                </i></b><b><i>        </i></b><b><i><br>
                </i></b><b><i>    end do</i></b><b><i><br>
                </i></b><b><i><br>
                </i></b><b><i>end do    </i></b><br>
              <pre cols="72">Thank you

Yours sincerely,

TAY wee-beng</pre>
              <br>
            </div>
          </blockquote>
        </div>
        <br>
      </div>
    </blockquote>
    <br>
  </div></div></div>

</blockquote></div><br></div>