<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=utf-8">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    Hello<br>
    <br>
    I am using the following options (below) for solving linear
    elasticity/poroelasticity problems involving slip between two
    surfaces involving non-trivial geometries, i.e., elements with high
    aspect ratios, large contrasts in material properties etc. The
    constraints are imposed using Lagrange Multipliers. <br>
    <br>
    A picture (shows displacement magnitude) is attached. The boundary
    nodes, i.e., the base and the four side are pinned.<br>
    <br>
    The following options appear to work well for the saddle point
    problem:<br>
    <br>
    <tt>-pc_type fieldsplit -pc_fieldsplit_type schur
      -pc_fieldsplit_detect_saddle_point -fieldsplit_0_pc_type gamg
      -fieldsplit_0_ksp_type preonly -fieldsplit_1_pc_type lsc
      -fieldsplit_1_ksp_type preonly -pc_fieldsplit_schur_fact_type
      lower -ksp_monitor</tt><br>
    <br>
    However, the number of iterations keep on increasing with the
    problems size (see attached plot), e.g.,<br>
    <br>
    <tt>120K Tets        <b>507</b> Iterations (KSP Residual norm
      8.827362494659e-05)</tt><tt> in  17 secs on   3 cores<br>
    </tt><tt>1 Million Tets  <b>1374</b> Iterations (KSP Residual norm
      7.164704416296e-05)</tt><tt> in 117 secs on  20 cores<br>
    </tt><tt>8 Million Tets  <b>2495</b> Iterations (KSP Residual norm
      9.101247550026e-05) in 225 secs on 160 cores</tt><br>
    <br>
    So what other options should I try to improve solver performance?
    Any tips/insights would be appreciated as preconditioning is black
    magic to me.<br>
    <br>
    Thanks in advance.<br>
    <br>
    Tabrez<br>
  </body>
</html>