<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Thu, Oct 23, 2014 at 7:20 AM, Tabrez Ali <span dir="ltr"><<a href="mailto:stali@geology.wisc.edu" target="_blank">stali@geology.wisc.edu</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">
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></div></blockquote><div><br></div><div>For reports, always run with </div><div><br></div><div> -ksp_view -ksp_monitor_true_residual -ksp_converged_reason</div><div><br></div><div>so that we can see exactly what you used.</div><div><br></div><div>I believe the default is a diagonal factorization. Since your outer iterates are increasing, I would strengthen this</div><div>to either upper or full</div><div><br></div><div> -pc_fieldsplit_schur_factorization_type <upper, full></div><div><br></div><div> Thanks,</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">
Thanks in advance.<span class="HOEnZb"><font color="#888888"><br>
<br>
Tabrez<br>
</font></span></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>