There is a bit of complicated logic to determine the "adjusted" timestep in 
TSAdaptChoose() when if (*accept && ts->exact_final_time == 
TS_EXACTFINALTIME_MATCHSTEP) {

    Is it possible that hmax = tmax - t; is exactly zero, and the logic below 
does not correctly handle that case?

0 TS dt 0. time 0.
0 TS dt 0. time 0.
0 TS dt 0. time 0.
0 TS dt 0. time 0.
      TSAdapt basic step   0 stage rejected (SNES reason DIVERGED_FNORM_NAN) 
t=0          + 0.000e+00 retrying with dt=0.000e+00 
      TSAdapt basic step   0 stage rejected (SNES reason DIVERGED_FNORM_NAN) 
t=0          + 0.000e+00 retrying with dt=0.000e+00 
      TSAdapt basic step   0 stage rejected (SNES reason DIVERGED_FNORM_NAN) 
t=0          + 0.000e+00 retrying with dt=0.000e+00 
      TSAdapt basic step   0 stage rejected (SNES reason DIVERGED_FNORM_NAN) 
t=0          + 0.000e+00 retrying with dt=0.000e+00 
      TSAdapt basic step   0 stage rejected (SNES reason DIVERGED_FNORM_NAN) 
t=0          + 0.000e+00 retrying with dt=0.000e+00 
      TSAdapt basic step   0 stage rejected (SNES reason DIVERGED_FNORM_NAN) 
t=0          + 0.000e+00 retrying with dt=0.000e+00 
      TSAdapt basic step   0 stage rejected (SNES reason DIVERGED_FNORM_NAN) 
t=0          + 0.000e+00 retrying with dt=0.000e+00 
      TSAdapt basic step   0 stage rejected (SNES reason DIVERGED_FNORM_NAN) 
t=0          + 0.000e+00 retrying with dt=0.000e+00 
      TSAdapt basic step   0 stage rejected (SNES reason DIVERGED_FNORM_NAN) 
t=0          + 0.000e+00 retrying with dt=0.000e+00 
      TSAdapt basic step   0 stage rejected (SNES reason DIVERGED_FNORM_NAN) 
t=0          + 0.000e+00 retrying with dt=0.000e+00 
      TSAdapt basic step   0 stage rejected (SNES reason DIVERGED_FNORM_NAN) 
t=0          + 0.000e+00 retrying with dt=0.000e+00 

  Sophie,

     Any idea why SNES reason DIVERGED_FNORM_NAN?   Could you run with 
-snes_error_if_not_converged? 

> On Dec 13, 2024, at 2:34 PM, Blondel, Sophie <sblon...@utk.edu> wrote:
> 
> Hi everyone,
> 
> The first max time it is trying to reach is 1.0e-12 s, and the initial dt is 
> set to 1.0e-12 s from the commandline options. I believe it's not a 
> formatting issue and that the dt is actually set somewhere to 0 s because 
> that's why the step is rejected.
> 
> Best,
> 
> Sophie
> From: Barry Smith <bsm...@petsc.dev <mailto:bsm...@petsc.dev>>
> Sent: Friday, December 13, 2024 14:21
> To: Blondel, Sophie <sblon...@utk.edu <mailto:sblon...@utk.edu>>; Jed Brown 
> <j...@jedbrown.org <mailto:j...@jedbrown.org>>; Zhang, Hong 
> <hongzh...@anl.gov <mailto:hongzh...@anl.gov>>; Emil Constantinescu 
> <emcon...@anl.gov <mailto:emcon...@anl.gov>>
> Cc: petsc-users@mcs.anl.gov <mailto:petsc-users@mcs.anl.gov> 
> <petsc-users@mcs.anl.gov <mailto:petsc-users@mcs.anl.gov>>; 
> xolotl-psi-developm...@lists.sourceforge.net 
> <mailto:xolotl-psi-developm...@lists.sourceforge.net> 
> <xolotl-psi-developm...@lists.sourceforge.net 
> <mailto:xolotl-psi-developm...@lists.sourceforge.net>>
> Subject: Re: [petsc-users] "-ts_exact_final_time matchstep" leads to 
> DIVERGED_STEP_REJECTED
>  
> 
>    Hm, what is the final time you are stepping towards in this run?
> 
>    There is something wrong with the adapt code since it seems to start with 
> a dt of 0 but then tries "adapting" several times, but it could be the 
> monitor function does not correctly format numbers smaller than 1.e-12 and it 
> is just using truly small dt.
> 
>    Jed, Hong, Emil?
> 
>    Barry
> 
> 
>> On Dec 10, 2024, at 11:08 AM, Blondel, Sophie <sblon...@utk.edu 
>> <mailto:sblon...@utk.edu>> wrote:
>> 
>> Good morning Barry,
>> 
>> Attached are the updated files, there is more useful information in them.
>> 
>> Cheers,
>> 
>> Sophie
>>  
>> From: Blondel, Sophie via Xolotl-psi-development 
>> <xolotl-psi-developm...@lists.sourceforge.net 
>> <mailto:xolotl-psi-developm...@lists.sourceforge.net>>
>> Sent: Monday, December 9, 2024 17:29
>> To: Barry Smith <bsm...@petsc.dev <mailto:bsm...@petsc.dev>>
>> Cc: petsc-users@mcs.anl.gov <mailto:petsc-users@mcs.anl.gov> 
>> <petsc-users@mcs.anl.gov <mailto:petsc-users@mcs.anl.gov>>; 
>> xolotl-psi-developm...@lists.sourceforge.net 
>> <mailto:xolotl-psi-developm...@lists.sourceforge.net> 
>> <xolotl-psi-developm...@lists.sourceforge.net 
>> <mailto:xolotl-psi-developm...@lists.sourceforge.net>>
>> Subject: Re: [Xolotl-psi-development] [petsc-users] "-ts_exact_final_time 
>> matchstep" leads to DIVERGED_STEP_REJECTED
>>  
>> Hi Barry,
>> 
>> I hope you are doing well.
>> 
>> Attached are the output. To give a little more context, this is a "new" way 
>> of running the code where multiple instances are created and communicate 
>> together every few time steps (like coupling the code with itself in 
>> memory). Here there are 3 instances that each have a separate TS object, 
>> plus one "main" instance that doesn't solve anything but compute rates to 
>> exchange between the other instances.
>> 
>> Cheers,
>> 
>> Sophie
>>  
>> From: Barry Smith <bsm...@petsc.dev <mailto:bsm...@petsc.dev>>
>> Sent: Monday, December 9, 2024 15:12
>> To: Blondel, Sophie <sblon...@utk.edu <mailto:sblon...@utk.edu>>
>> Cc: petsc-users@mcs.anl.gov <mailto:petsc-users@mcs.anl.gov> 
>> <petsc-users@mcs.anl.gov <mailto:petsc-users@mcs.anl.gov>>; 
>> xolotl-psi-developm...@lists.sourceforge.net 
>> <mailto:xolotl-psi-developm...@lists.sourceforge.net> 
>> <xolotl-psi-developm...@lists.sourceforge.net 
>> <mailto:xolotl-psi-developm...@lists.sourceforge.net>>
>> Subject: Re: [petsc-users] "-ts_exact_final_time matchstep" leads to 
>> DIVERGED_STEP_REJECTED
>>  
>> 
>> 
>>> On Dec 9, 2024, at 2:56 PM, Blondel, Sophie via petsc-users 
>>> <petsc-users@mcs.anl.gov <mailto:petsc-users@mcs.anl.gov>> wrote:
>>> 
>>> Hi,
>>> 
>>> I am trying to understand a strange behavior I'm encountering: when running 
>>> my application with "-ts_exact_final_time stepover" everything goes well, 
>>> but when I switch to "matchstep" I get DIVERGED_STEP_REJECTED before the 
>>> first time step is finished.
>> 
>>    This is in the very first time-step in TSSolve? 
>> 
>>     Please run with -ts_monitor and send all the output (best for a short 
>> time interval and do it twice once with -ts_exact_final_time stepover and 
>> once with exact.
>> 
>>    Barry
>> 
>> 
>>> I tried increasing the maximum number of rejections and it just takes 
>>> longer to diverge, and if I set the value to "unlimited" it is basically an 
>>> infinite loop.
>>> 
>>> Is there a way to check why is the step rejected? Could the "matchstep" 
>>> option change tolerances somewhere that would cause that behavior?
>>> 
>>> Let me know if I should provide more information.
>>> 
>>> Best,
>>> 
>>> Sophie Blondel

Reply via email to