<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">
<br class="">
<div>
<blockquote type="cite" class="">
<div class="">On Apr 30, 2020, at 6:22 AM, Yingjie Wu <<a href="mailto:yjwu16@gmail.com" class="">yjwu16@gmail.com</a>> wrote:</div>
<br class="Apple-interchange-newline">
<div class="">
<div dir="ltr" class="">
<div style="margin: 0px; white-space: pre-wrap;" class="">I'm sorry for dropping the mailing list in previous mail.</div>
<div style="margin: 0px; white-space: pre-wrap;" class="">I went over the code and made sure I didn't set the maximum number or final time to zero for TS. And I found a very similar example in petsc/src/ts/tutorials/ex8.c.</div>
<div style="margin: 0px; white-space: pre-wrap;" class="">I made the following changes:</div>
<p style="margin:0px" class=""></p>
<ol style="white-space:pre-wrap" class="">
<li class=""><a href="https://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/TS/TSSetMaxStepRejections.html#TSSetMaxStepRejections" target="_blank" class="">TSSetMaxStepRejections</a><span style="" class="">(ts,10); ->
</span><a href="https://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/TS/TSSetMaxStepRejections.html#TSSetMaxStepRejections" target="_blank" class="">TSSetMaxStepRejections</a><span style="" class="">(ts,<b class="">0</b>);</span></li><li class=""><span style="" class=""><a href="https://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/TS/TSSetMaxSNESFailures.html#TSSetMaxSNESFailures" target="_blank" class="">TSSetMaxSNESFailures</a>(ts,-1); ->
</span><a href="https://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/TS/TSSetMaxSNESFailures.html#TSSetMaxSNESFailures" target="_blank" class="">TSSetMaxSNESFailures</a><span style="" class="">(ts,<b class="">0</b>);</span></li></ol>
</div>
</div>
</blockquote>
<div>Now it is clear why your code terminates early.</div>
<div><a href="https://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/TS/TSSetMaxStepRejections.html#TSSetMaxStepRejections" class="" style="white-space: pre-wrap;">TSSetMaxStepRejections</a> (-td_max_reject) specifies the maximum number of failed time
 steps that TS adapter allows.</div>
<div><a href="https://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/TS/TSSetMaxSNESFailures.html#TSSetMaxSNESFailures" target="_blank" class="" style="white-space: pre-wrap;">TSSetMaxSNESFailures</a> (-ts_max_snes_failures) specifies the maximum number
 of failed nonlinear solves that TS adapter allows.</div>
<div><br class="">
</div>
<div>The TS adapter can reject a time step and restart it with a decreased step size if the error criterion is not met. Diverged nonlinear solve is one of the reasons that cause a time step rejected.  </div>
<div><br class="">
</div>
<div>To avoid termination caused by these constraints, you can use</div>
<div>-ts_max_snes_failures -1 </div>
<div>-ts_max_reject -1</div>
<div>to set both of them unlimited.</div>
<div><br class="">
</div>
<div><span style="white-space: pre-wrap;" class="">When the nonlinear solve diverges (e.g. the number of SNES iterations reaches the limit set by -snes_max_it), TS adapter will decrease the step size by a factor (can be changed with -ts_adapt_scale_solve_failed)
 and repeat the time step. Sometimes you may end up with excessively small steps if the repeated nonlinear solves keep struggling. In that case, I would turn off the adapter with -ts_adapt_type none and stick with the fixed time stepping or control the step
 size myself.</span></div>
<div><span style="white-space: pre-wrap;" class=""><br class="">
</span></div>
<div><span style="white-space: pre-wrap;" class="">Hong (Mr.) </span></div>
<div> </div>
<blockquote type="cite" class="">
<div class="">
<div dir="ltr" class="">
<div class=""><br class="webkit-block-placeholder">
</div>
<div style="margin: 0px; white-space: pre-wrap;" class="">These changes adjust the Rejections and SNESFailures to the default state.</div>
<div style="margin: 0px; white-space: pre-wrap;" class="">Then test the following commands: mpiexec -n 1 ./ex8 -ts_atol 1e-2 -ts_rtol 1e-2 -ts_max_time 15 -ts_type arkimex -ts_arkimex_type 2e -problem_type orego -ts_arkimex_initial_guess_extrapolate 0 -ts_adapt_time_step_increase_delay
 4 -ts_monitor -snes_monitor -snes_converged_reason</div>
<div style="margin: 0px; white-space: pre-wrap;" class="">The output on the screen is:<br class="">
</div>
<p style="margin:0px;white-space:pre-wrap" class=""></p>
<blockquote style="margin:0 0 0 40px;border:none;padding:0px" class="">
<div style="margin: 0px; white-space: pre-wrap;" class="">(......)</div>
</blockquote>
<div class=""><br class="webkit-block-placeholder">
</div>
<p style="margin:0px" class=""></p>
<blockquote style="white-space:pre-wrap;margin:0px 0px 0px 40px;border:none;padding:0px" class="">
<div style="margin: 0px; white-space: pre-wrap;" class="">7 TS dt 6.86235 time 3.47215<br class="">
    0 SNES Function norm 2.000433909025e-01 <br class="">
    1 SNES Function norm 1.991123862317e-01 <br class="">
    2 SNES Function norm 1.975627926780e-01 <br class="">
    3 SNES Function norm 1.946057832068e-01 <br class="">
    4 SNES Function norm 1.900556025613e-01 <br class="">
    5 SNES Function norm 1.840284735193e-01 <br class="">
    6 SNES Function norm 1.767727556549e-01 <br class="">
    7 SNES Function norm 1.685779659858e-01 <br class="">
    8 SNES Function norm 1.597281513554e-01 <br class="">
    9 SNES Function norm 1.504796576996e-01 <br class="">
   10 SNES Function norm 1.410521859210e-01 <br class="">
   11 SNES Function norm 1.316269768177e-01 <br class="">
   12 SNES Function norm 1.223486899848e-01 <br class="">
   13 SNES Function norm 1.127512649756e-01 <br class="">
   14 SNES Function norm 1.020567711262e-01 <br class="">
   15 SNES Function norm 8.979527463515e-02 <br class="">
   16 SNES Function norm 7.508859688939e-02 <br class="">
   17 SNES Function norm 7.355450203066e-02 <br class="">
   18 SNES Function norm 2.927834451754e-06 <br class="">
   19 SNES Function norm 4.107891676938e-15 <br class="">
  Nonlinear solve converged due to CONVERGED_FNORM_RELATIVE iterations 19<br class="">
    0 SNES Function norm 1.349799651143e-01 <br class="">
    1 SNES Function norm 1.333235099246e-01 <br class="">
    2 SNES Function norm 1.314928290684e-01 <br class="">
    3 SNES Function norm 1.295004620848e-01 <br class="">
    4 SNES Function norm 1.273561109747e-01 <br class="">
    5 SNES Function norm 1.250670006052e-01 <br class="">
    6 SNES Function norm 1.226381484156e-01 <br class="">
    7 SNES Function norm 1.200604281861e-01 <br class="">
    8 SNES Function norm 1.173313259697e-01 <br class="">
    9 SNES Function norm 1.144768440013e-01 <br class="">
   10 SNES Function norm 1.141593852677e-01 <br class="">
   11 SNES Function norm 1.121207287132e-01 <br class="">
   12 SNES Function norm 1.087640960519e-01 <br class="">
   13 SNES Function norm 1.044397486143e-01 <br class="">
   14 SNES Function norm 9.944173247962e-02 <br class="">
   15 SNES Function norm 9.401107464556e-02 <br class="">
   16 SNES Function norm 8.834148211449e-02 <br class="">
   17 SNES Function norm 8.258574767211e-02 <br class="">
   18 SNES Function norm 7.686203062639e-02 <br class="">
   19 SNES Function norm 7.076716424793e-02 <br class="">
   20 SNES Function norm 6.389435437215e-02 <br class="">
   21 SNES Function norm 5.587963465672e-02 <br class="">
   22 SNES Function norm 4.597296586383e-02 <br class="">
   23 SNES Function norm 3.649153890859e-02 <br class="">
   24 SNES Function norm 1.112024137036e-06 <br class="">
   25 SNES Function norm 1.368410750160e-14 <br class="">
  Nonlinear solve converged due to CONVERGED_FNORM_RELATIVE iterations 25<br class="">
8 TS dt 7.74608 time 10.3345<br class="">
    0 SNES Function norm 2.851716167826e-01 <br class="">
    1 SNES Function norm 2.827877334190e-01 <br class="">
    2 SNES Function norm 2.803985313138e-01 <br class="">
    3 SNES Function norm 2.780035928632e-01 <br class="">
    4 SNES Function norm 2.756024874780e-01 <br class="">
    5 SNES Function norm 2.731947705882e-01 <br class="">
    6 SNES Function norm 2.707799825757e-01 <br class="">
    7 SNES Function norm 2.683576476261e-01 <br class="">
    8 SNES Function norm 2.659272724924e-01 <br class="">
    9 SNES Function norm 2.634883451605e-01 <br class="">
   10 SNES Function norm 2.610403334061e-01 <br class="">
   11 SNES Function norm 2.585826832306e-01 <br class="">
   12 SNES Function norm 2.561148171641e-01 <br class="">
   13 SNES Function norm 2.536361324179e-01 <br class="">
   14 SNES Function norm 2.511459988719e-01 <br class="">
   15 SNES Function norm 2.486437568755e-01 <br class="">
   16 SNES Function norm 2.461287148411e-01 <br class="">
   17 SNES Function norm 2.461031613348e-01 <br class="">
   18 SNES Function norm 2.455705375830e-01 <br class="">
   19 SNES Function norm 2.445878823765e-01 <br class="">
   20 SNES Function norm 2.432027776816e-01 <br class="">
   21 SNES Function norm 2.414549711706e-01 <br class="">
   22 SNES Function norm 2.393776915919e-01 <br class="">
   23 SNES Function norm 2.369987079777e-01 <br class="">
   24 SNES Function norm 2.343411787922e-01 <br class="">
   25 SNES Function norm 2.314243298882e-01 <br class="">
   26 SNES Function norm 2.282639927909e-01 <br class="">
   27 SNES Function norm 2.248730282013e-01 <br class="">
   28 SNES Function norm 2.212616539034e-01 <br class="">
   29 SNES Function norm 2.174376914167e-01 <br class="">
   30 SNES Function norm 2.134067415679e-01 <br class="">
   31 SNES Function norm 2.091722954520e-01 <br class="">
   32 SNES Function norm 2.047263028819e-01 <br class="">
   33 SNES Function norm 2.000468148325e-01 <br class="">
   34 SNES Function norm 1.951751560520e-01 <br class="">
   35 SNES Function norm 1.946187817680e-01 <br class="">
   36 SNES Function norm 1.912149142781e-01 <br class="">
   37 SNES Function norm 1.856377137631e-01 <br class="">
   38 SNES Function norm 1.784574187852e-01 <br class="">
   39 SNES Function norm 1.701485679136e-01 <br class="">
   40 SNES Function norm 1.611004146461e-01 <br class="">
   41 SNES Function norm 1.516277627394e-01 <br class="">
   42 SNES Function norm 1.419813980321e-01 <br class="">
   43 SNES Function norm 1.323577340278e-01 <br class="">
   44 SNES Function norm 1.224961331340e-01 <br class="">
   45 SNES Function norm 1.115622228182e-01 <br class="">
   46 SNES Function norm 9.910072225366e-02 <br class="">
   47 SNES Function norm 8.425984823824e-02 <br class="">
   48 SNES Function norm 6.475245098809e-02 <br class="">
   49 SNES Function norm 2.817391391875e-02 <br class="">
   50 SNES Function norm 2.187931938195e-06 <br class="">
  Nonlinear solve did not converge due to DIVERGED_MAX_IT iterations 50<br class="">
[0]PETSC ERROR: --------------------- Error Message --------------------------------------------------------------<br class="">
[0]PETSC ERROR:   <br class="">
[0]PETSC ERROR: TSStep has failed due to DIVERGED_STEP_REJECTED<br class="">
[0]PETSC ERROR: See <a href="https://www.mcs.anl.gov/petsc/documentation/faq.html" target="_blank" class="">
https://www.mcs.anl.gov/petsc/documentation/faq.html</a> for trouble shooting.<br class="">
[0]PETSC ERROR: Petsc Release Version 3.12.4, unknown <br class="">
[0]PETSC ERROR: ./ex8 on a arch-linux2-c-debug named ubuntu103 by wuyj Thu Apr 30 10:40:07 2020<br class="">
[0]PETSC ERROR: Configure options --with-cc=gcc --with-cxx=g++ --with-fc=gfortran --download-mpich --download-fblaslapack<br class="">
[0]PETSC ERROR: #1 TSStep() line 3596 in /home/wuyj/petsc/src/ts/interface/ts.c<br class="">
[0]PETSC ERROR: #2 TSSolve() line 3768 in /home/wuyj/petsc/src/ts/interface/ts.c<br class="">
[0]PETSC ERROR: #3 main() line 416 in ex8.c<br class="">
[0]PETSC ERROR: PETSc Option Table entries:<br class="">
[0]PETSC ERROR: -problem_type orego<br class="">
[0]PETSC ERROR: -snes_converged_reason<br class="">
[0]PETSC ERROR: -snes_monitor<br class="">
[0]PETSC ERROR: -ts_adapt_time_step_increase_delay 4<br class="">
[0]PETSC ERROR: -ts_arkimex_initial_guess_extrapolate 0<br class="">
[0]PETSC ERROR: -ts_arkimex_type 2e<br class="">
[0]PETSC ERROR: -ts_atol 1e-2<br class="">
[0]PETSC ERROR: -ts_max_time 15<br class="">
[0]PETSC ERROR: -ts_monitor<br class="">
[0]PETSC ERROR: -ts_rtol 1e-2<br class="">
[0]PETSC ERROR: -ts_type arkimex<br class="">
[0]PETSC ERROR: ----------------End of Error Message -------send entire error message to
<a href="mailto:petsc-maint@mcs.anl.gov" class="">petsc-maint@mcs.anl.gov</a>----------<br class="">
application called MPI_Abort(MPI_COMM_WORLD, 91) - process 0<br class="">
</div>
</blockquote>
<span style="white-space:pre-wrap" class=""></span><span style="white-space:pre-wrap" class=""></span>
<div class=""><br class="webkit-block-placeholder">
</div>
<div style="margin: 0px;" class=""><span style="white-space:pre-wrap" class="">At the eighth time step, the maximum iterations number of SNES resulting in the failure of the time step calculation, the program reported errors.</span></div>
<div style="margin: 0px; white-space: pre-wrap;" class="">Then I tested the following commands: mpiexec -n 1 ./ex8 -ts_atol 1e-2 -ts_rtol 1e-2 -ts_max_time 15 -ts_type arkimex -ts_arkimex_type 2e -problem_type orego -ts_arkimex_initial_guess_extrapolate 0 -ts_adapt_time_step_increase_delay
 4 -snes_monitor -snes_converged_reason <b class="">-ts_monitor -ts_error_if_step_fails 0
</b></div>
<div style="margin: 0px; white-space: pre-wrap;" class="">The output in screen:</div>
<blockquote style="margin:0 0 0 40px;border:none;padding:0px" class="">
<div style="margin: 0px; white-space: pre-wrap;" class="">(......)</div>
</blockquote>
<p style="margin:0px;white-space:pre-wrap" class=""></p>
<blockquote style="margin:0 0 0 40px;border:none;padding:0px" class="">
<div style="margin: 0px; white-space: pre-wrap;" class="">7 TS dt 6.86235 time 3.47215<br class="">
    0 SNES Function norm 2.000433909025e-01 <br class="">
    1 SNES Function norm 1.991123862317e-01 <br class="">
    2 SNES Function norm 1.975627926780e-01 <br class="">
    3 SNES Function norm 1.946057832068e-01 <br class="">
    4 SNES Function norm 1.900556025613e-01 <br class="">
    5 SNES Function norm 1.840284735193e-01 <br class="">
    6 SNES Function norm 1.767727556549e-01 <br class="">
    7 SNES Function norm 1.685779659858e-01 <br class="">
    8 SNES Function norm 1.597281513554e-01 <br class="">
    9 SNES Function norm 1.504796576996e-01 <br class="">
   10 SNES Function norm 1.410521859210e-01 <br class="">
   11 SNES Function norm 1.316269768177e-01 <br class="">
   12 SNES Function norm 1.223486899848e-01 <br class="">
   13 SNES Function norm 1.127512649756e-01 <br class="">
   14 SNES Function norm 1.020567711262e-01 <br class="">
   15 SNES Function norm 8.979527463515e-02 <br class="">
   16 SNES Function norm 7.508859688939e-02 <br class="">
   17 SNES Function norm 7.355450203066e-02 <br class="">
   18 SNES Function norm 2.927834451754e-06 <br class="">
   19 SNES Function norm 4.107891676938e-15 <br class="">
  Nonlinear solve converged due to CONVERGED_FNORM_RELATIVE iterations 19<br class="">
    0 SNES Function norm 1.349799651143e-01 <br class="">
    1 SNES Function norm 1.333235099246e-01 <br class="">
    2 SNES Function norm 1.314928290684e-01 <br class="">
    3 SNES Function norm 1.295004620848e-01 <br class="">
    4 SNES Function norm 1.273561109747e-01 <br class="">
    5 SNES Function norm 1.250670006052e-01 <br class="">
    6 SNES Function norm 1.226381484156e-01 <br class="">
    7 SNES Function norm 1.200604281861e-01 <br class="">
    8 SNES Function norm 1.173313259697e-01 <br class="">
    9 SNES Function norm 1.144768440013e-01 <br class="">
   10 SNES Function norm 1.141593852677e-01 <br class="">
   11 SNES Function norm 1.121207287132e-01 <br class="">
   12 SNES Function norm 1.087640960519e-01 <br class="">
   13 SNES Function norm 1.044397486143e-01 <br class="">
   14 SNES Function norm 9.944173247962e-02 <br class="">
   15 SNES Function norm 9.401107464556e-02 <br class="">
   16 SNES Function norm 8.834148211449e-02 <br class="">
   17 SNES Function norm 8.258574767211e-02 <br class="">
   18 SNES Function norm 7.686203062639e-02 <br class="">
   19 SNES Function norm 7.076716424793e-02 <br class="">
   20 SNES Function norm 6.389435437215e-02 <br class="">
   21 SNES Function norm 5.587963465672e-02 <br class="">
   22 SNES Function norm 4.597296586383e-02 <br class="">
   23 SNES Function norm 3.649153890859e-02 <br class="">
   24 SNES Function norm 1.112024137036e-06 <br class="">
   25 SNES Function norm 1.368410750160e-14 <br class="">
  Nonlinear solve converged due to CONVERGED_FNORM_RELATIVE iterations 25<br class="">
8 TS dt 7.74608 time 10.3345<br class="">
    0 SNES Function norm 2.851716167826e-01 <br class="">
    1 SNES Function norm 2.827877334190e-01 <br class="">
    2 SNES Function norm 2.803985313138e-01 <br class="">
    3 SNES Function norm 2.780035928632e-01 <br class="">
    4 SNES Function norm 2.756024874780e-01 <br class="">
    5 SNES Function norm 2.731947705882e-01 <br class="">
    6 SNES Function norm 2.707799825757e-01 <br class="">
    7 SNES Function norm 2.683576476261e-01 <br class="">
    8 SNES Function norm 2.659272724924e-01 <br class="">
    9 SNES Function norm 2.634883451605e-01 <br class="">
   10 SNES Function norm 2.610403334061e-01 <br class="">
   11 SNES Function norm 2.585826832306e-01 <br class="">
   12 SNES Function norm 2.561148171641e-01 <br class="">
   13 SNES Function norm 2.536361324179e-01 <br class="">
   14 SNES Function norm 2.511459988719e-01 <br class="">
   15 SNES Function norm 2.486437568755e-01 <br class="">
   16 SNES Function norm 2.461287148411e-01 <br class="">
   17 SNES Function norm 2.461031613348e-01 <br class="">
   18 SNES Function norm 2.455705375830e-01 <br class="">
   19 SNES Function norm 2.445878823765e-01 <br class="">
   20 SNES Function norm 2.432027776816e-01 <br class="">
   21 SNES Function norm 2.414549711706e-01 <br class="">
   22 SNES Function norm 2.393776915919e-01 <br class="">
   23 SNES Function norm 2.369987079777e-01 <br class="">
   24 SNES Function norm 2.343411787922e-01 <br class="">
   25 SNES Function norm 2.314243298882e-01 <br class="">
   26 SNES Function norm 2.282639927909e-01 <br class="">
   27 SNES Function norm 2.248730282013e-01 <br class="">
   28 SNES Function norm 2.212616539034e-01 <br class="">
   29 SNES Function norm 2.174376914167e-01 <br class="">
   30 SNES Function norm 2.134067415679e-01 <br class="">
   31 SNES Function norm 2.091722954520e-01 <br class="">
   32 SNES Function norm 2.047263028819e-01 <br class="">
   33 SNES Function norm 2.000468148325e-01 <br class="">
   34 SNES Function norm 1.951751560520e-01 <br class="">
   35 SNES Function norm 1.946187817680e-01 <br class="">
   36 SNES Function norm 1.912149142781e-01 <br class="">
   37 SNES Function norm 1.856377137631e-01 <br class="">
   38 SNES Function norm 1.784574187852e-01 <br class="">
   39 SNES Function norm 1.701485679136e-01 <br class="">
   40 SNES Function norm 1.611004146461e-01 <br class="">
   41 SNES Function norm 1.516277627394e-01 <br class="">
   42 SNES Function norm 1.419813980321e-01 <br class="">
   43 SNES Function norm 1.323577340278e-01 <br class="">
   44 SNES Function norm 1.224961331340e-01 <br class="">
   45 SNES Function norm 1.115622228182e-01 <br class="">
   46 SNES Function norm 9.910072225366e-02 <br class="">
   47 SNES Function norm 8.425984823824e-02 <br class="">
   48 SNES Function norm 6.475245098809e-02 <br class="">
   49 SNES Function norm 2.817391391875e-02 <br class="">
   50 SNES Function norm 2.187931938195e-06 <br class="">
  Nonlinear solve did not converge due to DIVERGED_MAX_IT iterations 50<br class="">
9 TS dt 1.93652 time 10.3345<br class="">
steps 9 (1 rejected, 1 SNES fails), ftime 10.3345, nonlinits 126, linits 126<br class="">
</div>
</blockquote>
<div class=""><br class="webkit-block-placeholder">
</div>
<p style="margin:0px;white-space:pre-wrap" class=""></p>
<div style="margin: 0px; white-space: pre-wrap;" class="">Although the program did not report errors, but end the operation after the eighth time step, and output results.
</div>
<div style="margin: 0px; white-space: pre-wrap;" class="">Note that the program did not reach the set termination time (-ts_max_time 15).<br class="">
</div>
<div style="margin: 0px; white-space: pre-wrap;" class="">This indicates that the command
<b class="">-ts_error_if_step_fails 0</b>, while avoiding program errors, ends TS solving after a failed SNES and does not proceed to the next step.</div>
<div style="margin: 0px; white-space: pre-wrap;" class="">And I'd like to continue the next step with the result after a failed SNES time step (although this result is not converged).</div>
<div style="margin: 0px; white-space: pre-wrap;" class="">In addition, I would like to ask the function of these two functions:
<a href="https://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/TS/TSSetMaxStepRejections.html#TSSetMaxStepRejections" class="">
TSSetMaxStepRejections</a> <span style="" class="">and </span><a href="https://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/TS/TSSetMaxSNESFailures.html#TSSetMaxSNESFailures" class="">TSSetMaxSNESFailures</a><span style="" class="">().</span></div>
<div style="margin: 0px; white-space: pre-wrap;" class=""><span style="" class=""></span>I looked it up in manualpages/singleindex.html, but there were very few explanations, and I still didn't quite understand the meaning of Rejection and SNES Failures variables.</div>
<div style="margin: 0px; white-space: pre-wrap;" class="">Thank you very much for your reply and I hope you can help me to answer these questions.</div>
<div style="margin: 0px; white-space: pre-wrap;" class=""><br class="">
</div>
<div style="margin: 0px; white-space: pre-wrap;" class="">Thanks,</div>
<div style="margin: 0px; white-space: pre-wrap;" class="">Yingjie</div>
<p style="margin:0px;white-space:pre-wrap" class=""></p>
<p style="margin:0px;white-space:pre-wrap" class=""></p>
<div style="margin: 0px; white-space: pre-wrap;" class=""><br class="">
</div>
<p style="margin:0px;white-space:pre-wrap" class=""></p>
<br class="">
<br class="">
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">Zhang, Hong <<a href="mailto:hongzhang@anl.gov" target="_blank" class="">hongzhang@anl.gov</a>> 于2020年4月30日周四 下午1:22写道:<br class="">
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
Please do not drop the mailing list when replying.<br class="">
<br class="">
It looks like the max steps or the final time has been set to zero for TS. You might want to check your code to see if the TS settings are correct or if they are overwritten in some callback functions by mistake.<br class="">
<br class="">
Hong (Mr.)<br class="">
<br class="">
> On Apr 29, 2020, at 10:16 PM, Yingjie Wu <<a href="mailto:yjwu16@gmail.com" target="_blank" class="">yjwu16@gmail.com</a>> wrote:<br class="">
> <br class="">
> Command: mpiexec -n 1 ./SGts -snes_fd -pc_type lu -ts_error_if_step_fails 0 -ts_monitor -snes_monitor \<br class="">
>                          -ksp_monitor \<br class="">
>                          -ksp_converged_reason \<br class="">
>                          -snes_converged_reason \<br class="">
>                          -snes_rtol 1.e-2 \<br class="">
>                          -ksp_rtol 1.e-5 \<br class="">
>                          -snes_max_it 2 \<br class="">
>                          -snes_view <br class="">
> Output: Timestep 0:<br class="">
> CurrentTime 0.:<br class="">
> 0 TS dt 1. time 0.<br class="">
> iter = 0, SNES Function norm 245.204<br class="">
>      0 SNES Function norm 2.452043863308e+02<br class="">
>       0 KSP Residual norm 1.641317090793e+04<br class="">
>       1 KSP Residual norm 2.717662845608e-10<br class="">
>     Linear solve converged due to CONVERGED_RTOL iterations 1<br class="">
> iter = 1, SNES Function norm 170.58<br class="">
>      1 SNES Function norm 1.705802879797e+02<br class="">
>       0 KSP Residual norm 1.146216600447e+04<br class="">
>       1 KSP Residual norm 3.272076151518e-11<br class="">
>     Linear solve converged due to CONVERGED_RTOL iterations 1<br class="">
> iter = 2, SNES Function norm 140.625<br class="">
>      2 SNES Function norm 1.406249065994e+02<br class="">
>   Nonlinear solve did not converge due to DIVERGED_MAX_IT iterations 2<br class="">
> SNES Object: 1 MPI processes<br class="">
>   type: newtonls   maximum iterations=2, maximum function evaluations=-1530494976<br class="">
>   tolerances: relative=0.01, absolute=1e-50, solution=1e-08<br class="">
>   total number of linear solver iterations=2<br class="">
>   total number of function evaluations=1063<br class="">
>   norm schedule ALWAYS<br class="">
>   Jacobian is built using finite differences one column at a time<br class="">
>   SNESLineSearch Object: 1 MPI processes<br class="">
>     type: bt<br class="">
>       interpolation: cubic<br class="">
>       alpha=1.000000e-04<br class="">
>     maxstep=1.000000e+08, minlambda=1.000000e-12<br class="">
>     tolerances: relative=1.000000e-08, absolute=1.000000e-15, lambda=1.000000e-08<br class="">
>     maximum iterations=40<br class="">
>   KSP Object: 1 MPI processes<br class="">
>     type: gmres<br class="">
>       restart=30, using Classical (unmodified) Gram-Schmidt Orthogonalization with no iterative refinement<br class="">
>       happy breakdown tolerance 1e-30<br class="">
>     maximum iterations=10000, initial guess is zero<br class="">
>     tolerances:  relative=1e-05, absolute=1e-50, divergence=10000.<br class="">
>     left preconditioning<br class="">
>     using PRECONDITIONED norm type for convergence test<br class="">
>   PC Object: 1 MPI processes<br class="">
>     type: lu<br class="">
>       out-of-place factorization<br class="">
>       tolerance for zero pivot 2.22045e-14<br class="">
>       matrix ordering: nd<br class="">
>       factor fill ratio given 5., needed 2.84376<br class="">
>         Factored matrix follows:<br class="">
>           Mat Object: 1 MPI processes<br class="">
>             type: seqaij             rows=528, cols=528<br class="">
>             package used to perform factorization: petsc<br class="">
>             total: nonzeros=7863, allocated nonzeros=7863<br class="">
>             total number of mallocs used during MatSetValues calls=0<br class="">
>               not using I-node routines<br class="">
>     linear system matrix = precond matrix:<br class="">
>     Mat Object: 1 MPI processes<br class="">
>       type: seqaij       rows=528, cols=528<br class="">
>       total: nonzeros=2765, allocated nonzeros=5280<br class="">
>       total number of mallocs used during MatSetValues calls=0<br class="">
>         not using I-node routines<br class="">
> Timestep 1:<br class="">
> CurrentTime 0.:<br class="">
> 1 TS dt 1. time 0.<br class="">
> <br class="">
> Number of timesteps = 1 final time 0.00e+00<br class="">
> <br class="">
>  After the first time step, the program directly ends the TS solution process. I've set up 50 time steps, so the program is not running properly.<br class="">
>  Although the program accepted that first time step SNES did not achieve convergence, and there is no error information, but did not continue to go to the next time step calculation, chose to end the program. I hope that when the SNES not converge at a certain
 time step and reaches the set maximum number SNES iteration steps, it can go to the next time step calculation.
<br class="">
> I am looking forward to your suggestion.<br class="">
> <br class="">
> Thanks,<br class="">
> Yingjie<br class="">
> <br class="">
> Zhang, Hong <<a href="mailto:hongzhang@anl.gov" target="_blank" class="">hongzhang@anl.gov</a>> 于2020年4月29日周三 下午11:26写道:<br class="">
> Please send the list of your command line options and the screen output with -ts_monitor.<br class="">
> <br class="">
> Hong (Mr.)<br class="">
> <br class="">
>> On Apr 28, 2020, at 11:00 PM, Yingjie Wu <<a href="mailto:yjwu16@gmail.com" target="_blank" class="">yjwu16@gmail.com</a>> wrote:<br class="">
>> <br class="">
>> Thank you very much for your reply.<br class="">
>> I tried both switches, but unfortunately they didn't seem to meet my needs.<br class="">
>>  -ts_adapt_always_accept     <br class="">
>>  The switch doesn't seem to work, reporting errors<br class="">
>>  when the maximum number of steps is reached without convergence, then the program exits.<br class="">
>> <br class="">
>>  -ts_error_if_step_fails  0        This switch accepts the non-convergence time step and outputs the result, but does not continue into the next time step calculation (<br class="">
>> <br class="">
>>  The time step hasn't reached the maximum time step I set<br class="">
>> ).<br class="">
>> <br class="">
>> And I wonder if the variable behind this switch is optional? What does it mean?<br class="">
>> I hope to achieve in the case of non-convergence Newton step( for example, the maximum number of Newton iteration steps reached -snes_max_it 50), can go in the next time step calculation.<br class="">
>> <br class="">
>> Thanks,<br class="">
>> Yingjie<br class="">
>> <br class="">
>> Zhang, Hong <<a href="mailto:hongzhang@anl.gov" target="_blank" class="">hongzhang@anl.gov</a>> 于2020年4月28日周二 下午10:51写道:<br class="">
>> -ts_error_if_step_fails 0<br class="">
>> <br class="">
>> You might want to find out why the nonlinear solver does not converge first. If you have a hand-written Jacobian, you can validate it with -snes_test_jacobian 1 (for a small test case).<br class="">
>> <br class="">
>> Hong (Mr.)<br class="">
>> <br class="">
>> > On Apr 28, 2020, at 8:21 AM, Yingjie Wu <<a href="mailto:yjwu16@gmail.com" target="_blank" class="">yjwu16@gmail.com</a>> wrote:<br class="">
>> > <br class="">
>> > Dear PETSc developers            <br class="">
>> > Hi, <br class="">
>> > <br class="">
>> > I have recently used TS to solve nonlinear equations with time terms. since the convergence of my model is not very good, i would like to set to iterative fixed nonlinear steps per time step. If the problem does not meet the SNES convergence criteria after
 fixed number of nonlinear steps , then go to the next time step calculation. I tried -snes_max_it , but didn't achieve the effect I wanted, and the program stopped after iterating the fixed number of steps. How should I set up in the program?<br class="">
>> > <br class="">
>> > Thanks,<br class="">
>> > Yingjie<br class="">
>> <br class="">
> <br class="">
<br class="">
</blockquote>
</div>
</div>
</div>
</blockquote>
</div>
<br class="">
</body>
</html>