<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">On 09/08/2013 03:00 PM, Matthew Knepley
      wrote:<br>
    </div>
    <blockquote
cite="mid:CAMYG4G=VOXkn6bzEYrAzmViYa0UN18iH67F2rk5FSUmUi+ac3Q@mail.gmail.com"
      type="cite">
      <meta http-equiv="Content-Type" content="text/html;
        charset=ISO-8859-1">
      <div dir="ltr">
        <div class="gmail_extra">
          <div class="gmail_quote"><br>
            <div><br>
            </div>
            <div>If you want to solve hard systems, you must learn to
              debug a solver yourself. What does "just hangs" mean?
              Start with a full</div>
            <div>Schur complement factorization with LU on block 1 and a
              tiny tolerance on block 2. This will converge in 1
              iterate. Then</div>
            <div>start slowly making the preconditioner weaker.</div>
          </div>
        </div>
      </div>
    </blockquote>
    Hi Matt,<br>
    <br>
    Thanks for the suggestion but I did not completely understand the
    options to use for this, I am still learning the fieldsplit
    interface. It was my mistake to not to give more in formation on
    what 'Just hangs' means, sorry.<br>
    <br>
    For the previous message: that meant extremely slow iterations, the
    iteration process was not advancing at all.<br>
    <br>
    After your reply and looking at the fieldsplit options a bit more, I
    came up with these set of options, now iterations are going fast but
    the decrease in relative residual is so slow. But apparently this
    does not converge in 1 iteration, I am still mistaken at some point.<br>
    <br>
    ./ex3 -pc_type fieldsplit -pc_fieldsplit_type schur
    -fieldsplit_1_pc_type lu -fieldsplit_1_ksp_type preonly
    -fieldsplit_1_pc_type icc -fieldsplit_2_ksp_type minres
    -fieldsplit_2_ksp_rtol 1e-8 -pc_fieldsplit_schur_factorization_type
    full -ksp_monitor_true_residual<br>
    <br>
    Maybe you can help me at this point again.<br>
    <br>
    Thanks.<br>
    Umut<br>
     <br>
    <blockquote
cite="mid:CAMYG4G=VOXkn6bzEYrAzmViYa0UN18iH67F2rk5FSUmUi+ac3Q@mail.gmail.com"
      type="cite">
      <div dir="ltr">
        <div class="gmail_extra">
          <div class="gmail_quote">
            <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">
              The system is a symmetric system in this case given as<br>
              <br>
              A =<br>
              A11 C<br>
              C^T A22<br>
              <br>
              C is of size 1490X2432<br>
              <br>
              Could you please comment on this point for me, do I still
              have an error on the problem setup or on the usage of the
              options?<br>
              <br>
              BR,<br>
              Umut
              <div class="HOEnZb">
                <div class="h5"><br>
                  <blockquote class="gmail_quote" style="margin:0 0 0
                    .8ex;border-left:1px #ccc solid;padding-left:1ex">
                    <br>
                       ISCreateBlock(PETSC_COMM_SELF,bs,n1,inputindices,PETSC_COPY_VALUES,&is_row1);<br>
                       ISCreateBlock(PETSC_COMM_SELF,bs,n2,inputindices,PETSC_COPY_VALUES,&is_row2);<br>
                    <br>
                    We could check for this case, but it would require a
                    little code and<br>
                    isn't currently done.  This is probably what you
                    wanted:<br>
                    <br>
                    diff --git i/ex2.c w/ex2.c<br>
                    index 94cea2c..0cce3e6 100644<br>
                    --- i/ex2.c<br>
                    +++ w/ex2.c<br>
                    @@ -45,7 +45,7 @@ int main(int argc,char **args)<br>
                        PetscInt bs = 2, n1=1, n2=1,
                    inputindices[]={0,1}; /* block size is 2 */<br>
                              ISCreateBlock(PETSC_COMM_SELF,bs,n1,inputindices,PETSC_COPY_VALUES,&is_row1);<br>
                    -  ISCreateBlock(PETSC_COMM_SELF,bs,n2,inputindices,PETSC_COPY_VALUES,&is_row2);<br>
                    +  ISCreateBlock(PETSC_COMM_SELF,bs,n2,inputindices+n1,PETSC_COPY_VALUES,&is_row2);<br>
                          ISView(is_row1,PETSC_VIEWER_STDOUT_SELF);<br>
                        ISView(is_row2,PETSC_VIEWER_STDOUT_SELF);<br>
                  </blockquote>
                  <br>
                </div>
              </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>