Ok, the SNES reason DIVERGED_FNORM_NAN is likely due to the TS using a dt of 
zero, and hence, the evaluation of the TS causing a divide by zero. 
   
   So the TS adapt needs to be understood better in this situation. My guess is 
still TS_EXACTFINALTIME_MATCHSTEP is buggy when one actually does get an exact 
match.

  Please try using a different initial timestep like 0.5e-12 s on the command 
line.

  Barry


> On Dec 13, 2024, at 4:40 PM, Blondel, Sophie <[email protected]> wrote:
> 
> Barry,
> 
> The short output is "SNESSolve has not converged due to Nan or Inf norm", the 
> full one is attached.
> 
> Cheers,
> 
> Sophie
> From: Barry Smith <[email protected] <mailto:[email protected]>>
> Sent: Friday, December 13, 2024 14:56
> To: Blondel, Sophie <[email protected] <mailto:[email protected]>>
> Cc: Jed Brown <[email protected] <mailto:[email protected]>>; Zhang, Hong 
> <[email protected] <mailto:[email protected]>>; Emil Constantinescu 
> <[email protected] <mailto:[email protected]>>; [email protected] 
> <mailto:[email protected]> <[email protected] 
> <mailto:[email protected]>>; 
> [email protected] 
> <mailto:[email protected]> 
> <[email protected] 
> <mailto:[email protected]>>
> Subject: Re: [petsc-users] "-ts_exact_final_time matchstep" leads to 
> DIVERGED_STEP_REJECTED
>  
> 
>     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 <[email protected] 
>> <mailto:[email protected]>> 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 <[email protected] <mailto:[email protected]>>
>> Sent: Friday, December 13, 2024 14:21
>> To: Blondel, Sophie <[email protected] <mailto:[email protected]>>; Jed Brown 
>> <[email protected] <mailto:[email protected]>>; Zhang, Hong 
>> <[email protected] <mailto:[email protected]>>; Emil Constantinescu 
>> <[email protected] <mailto:[email protected]>>
>> Cc: [email protected] <mailto:[email protected]> 
>> <[email protected] <mailto:[email protected]>>; 
>> [email protected] 
>> <mailto:[email protected]> 
>> <[email protected] 
>> <mailto:[email protected]>>
>> 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 <[email protected] 
>>> <mailto:[email protected]>> 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 
>>> <[email protected] 
>>> <mailto:[email protected]>>
>>> Sent: Monday, December 9, 2024 17:29
>>> To: Barry Smith <[email protected] <mailto:[email protected]>>
>>> Cc: [email protected] <mailto:[email protected]> 
>>> <[email protected] <mailto:[email protected]>>; 
>>> [email protected] 
>>> <mailto:[email protected]> 
>>> <[email protected] 
>>> <mailto:[email protected]>>
>>> 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 <[email protected] <mailto:[email protected]>>
>>> Sent: Monday, December 9, 2024 15:12
>>> To: Blondel, Sophie <[email protected] <mailto:[email protected]>>
>>> Cc: [email protected] <mailto:[email protected]> 
>>> <[email protected] <mailto:[email protected]>>; 
>>> [email protected] 
>>> <mailto:[email protected]> 
>>> <[email protected] 
>>> <mailto:[email protected]>>
>>> 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 
>>>> <[email protected] <mailto:[email protected]>> 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
> 
> <matchstep_reason.txt>

Reply via email to