Hi Cig-Short,<br><br>I&#39;m having an issue where I&#39;m only able to achieve a slow rate of linear convergence using the nonlinear solver, resulting in prohibitively long run times.  I&#39;ve attached a tarball with the relevant configuration, mesh, and spatialdb files to run my problem.  <br>
<br>The gist of the problem I&#39;m trying run is an extension of the dyke-opening example in the manual, with a horizontal opening under the action of a constant pressure (normal traction) distribution between a viscoelastic and elastic layer.  This is a two dimensional model.  I&#39;m using the following preconditioner scheme to insure rapid convergence of the linear solver (1-2 iterations):<br>
<br>[pylithapp.petsc]<br>ksp_rtol = 1.0e-15<br>pc_type = lu<br>sub_pc_factor_shift_positive_definite = 0<br>sub_pc_factor_shift_nonzero = <br><br>fs_pc_type = fieldsplit<br>fs_pc_fieldsplit_real_diagonal = true<br>fs_pc_fieldsplit_type = schur<br>
fs_pc_fieldsplit_schur_factorization_type = full<br><br>fs_fieldsplit_0_pc_type = lu<br>fs_fieldsplit_0_ksp_type = preonly<br>fs_fieldsplit_1_pc_type = jacobi<br>fs_fieldsplit_1_ksp_type = gmres<br>fs_fieldsplit_1_ksp_rtol = 1.0e-15<br>
fs_fieldsplit_2_pc_type = jacobi<br>fs_fieldsplit_2_ksp_type = gmres<br>fs_fieldsplit_2_ksp_rtol = 1.0e-15<br>fs_fieldsplit_3_pc_type = jacobi<br>fs_fieldsplit_3_ksp_type = gmres<br>fs_fieldsplit_3_ksp_rtol = 1.0e-15<br><br>
log_summary = true<br>ksp_max_it = 100<br>ksp_gmres_restart = 50<br>ksp_converged_reason = true<br><br>snes_ls_monitor = true<br>snes_rtol = 1.0e-8<br>snes_atol = 1.0e-7<br>snes_max_it = 10000<br>snes_monitor = true<br>snes_converged_reason = true<br>
<br>However, as I mentioned earlier, the SNES residual only drops linearly with the default solving scheme past the first SNES iteration.  I&#39;ve tried using different PETSc options for SNES, but none of the scheme I&#39;ve tried had better results (and many were worse or never converged).  To summarize these attempts:<br>
NGMRES: did not converge (residual remained constant)<br>NCG: Tried the 5 different flavours, all either diverged or never converged (bounced between a few residuals)<br>other LINESEARCH options: none were as good as the default behavior<br>
<br>I&#39;ve also tried different non-dimensionalization options and found a set that gives the optimal initial residual (i.e., the lowest value of SNES residual number 0).  It seems like for this problem, only the nondimensional length-scale directly impacts the SNES residual.<br>
<br>The result of all of this is that I currently need around 800-1000 non-linear iterations to converge on a single time-step at best.  I have a feeling that I must be doing something wrong, but I can&#39;t tell if this is a solver issue or some other type of problem (bad mesh, poorly defined boundary conditions, etc).  Any advice would be appreciated!<br>
<br>Thanks for the help!<br>Jeff Thompson<br>Caltech Seismolab<br><br><br>