[petsc-users] [TimeStepping] Eventhandler

Huck, Moritz Moritz.Huck at rwth-aachen.de
Mon Feb 4 01:56:21 CST 2019


Hi,
yes there is one.
My system has a set of very different time contants.
At some events the fast one may be fully developped and only the slower ones are of concern after the event (depending on the postevent).
If the last step is not an option, setting it manually might be helpfull since I generall know which timeconstants will be relevant (TSSetTime step seems not to have an effect during the postevent call).

Moritz
________________________________________
Von: Abhyankar, Shrirang G <shrirang.abhyankar at pnnl.gov>
Gesendet: Montag, 4. Februar 2019 05:09:24
An: Huck, Moritz; Zhang, Hong
Betreff: RE: [petsc-users] [TimeStepping] Eventhandler

Is there any reason you'd like to use the last time step? We used the initial time-step (which is assumed to be small) so as (a) to minimize any numerical issues that may be caused by a large last time-step, and (b) to not miss any ensuing events that may be triggered by the discontinuity.

Shri

-----Original Message-----
From: petsc-users <petsc-users-bounces at mcs.anl.gov> On Behalf Of Moritz Huck via petsc-users
Sent: Sunday, February 3, 2019 10:45 AM
To: Zhang, Hong <hongzhang at anl.gov>
Cc: petsc-users at mcs.anl.gov
Subject: Re: [petsc-users] [TimeStepping] Eventhandler

Hi,

I see I am sorry, I misinterpreted the output -ts_adapt_monitor.

You are right point 2 is not an issue.

I there a way to let the time stepping continue with the last time step instead of the initial time step?

Best Regards,

Moritz

Am 03.02.19 um 17:04 schrieb Zhang, Hong:
> ex40 seems to work fine. Here is the output with -ts_monitor -ts_event_monitor -ts_dt 0.01 :
>
> 8 TS dt 0.5 time 3.11
> 9 TS dt 0.5 time 3.61
> TSEvent: iter 0 - Event 0 interval detected [3.61 - 4.11]
> 9 TS dt 0.467955 time 3.61 (r)
> TSEvent: iter 1 - Stepping forward as no event detected in interval
> [3.61 - 4.07796]
> 10 TS dt 0.00365179 time 4.07796
> TSEvent: iter 2 - Stepping forward as no event detected in interval
> [4.07796 - 4.08161]
> 11 TS dt 2.5403e-05 time 4.08161
> TSEvent: Event 0 zero crossing at time 4.08163 located in 3 iterations
> Ball hit the ground at t =  4.08 seconds
> 12 TS dt 0.0283673 time 4.08163
> 13 TS dt 0.01 time 4.11
> 14 TS dt 0.1 time 4.12
>
> The event occurs during the step [3.61- 4.11]. After the event is located at 4.08163, the next step after the event should be 4.11-4.08163 = 0.02837 (see 12 TS) to complete the original step. After 4.11, the specified initial stepsize dt=0.01 will be used.
>
> Hong (Mr.)
>
>> On Feb 3, 2019, at 6:08 AM, Moritz Huck via petsc-users <petsc-users at mcs.anl.gov> wrote:
>>
>> Hi Barry,
>>
>> src/ts/examples/tutorials/ex40.c (run with ARKIMEX3 and initial dt=1e-2) has the same behavior:
>>
>> TSEvent: iter 0 - Event 0 interval detected [3.61 - 4.11]
>> TSEvent: iter 1 - Stepping forward as no event detected in interval
>> [3.61 - 4.07796]
>> TSEvent: iter 2 - Stepping forward as no event detected in interval
>> [4.07796 - 4.08161]
>> TSEvent: Event 0 zero crossing at time 4.08163 located in 3
>> iterations Ball hit the ground at t =  4.08 seconds
>>        TSAdapt basic arkimex 0:3 step  13 accepted t=4.11       + 1.000e-02 dt=1.000e-01  wlte=    0  wltea=   -1 wlter=   -1
>>
>>        TSAdapt basic arkimex 0:3 step  14 accepted t=4.12       + 1.000e-01 dt=5.000e-01  wlte=    0  wltea=   -1 wlter=   -1
>>
>> It continues at the end of the "event interval" with the initial timestep.
>>
>> Best Regards,
>>
>> Moritz
>>
>>
>>
>>
>> Am 03.02.19 um 02:43 schrieb Smith, Barry F.:
>>>> On Feb 2, 2019, at 12:08 PM, Moritz Huck via petsc-users <petsc-users at mcs.anl.gov> wrote:
>>>>
>>>> Hi,
>>>> I am trying to use SetEventHandler.
>>>> I hav eencountered two "problems":
>>>>
>>>> 1. after an event is encountered the next time step is needlessly small (h=1e-6), even if a don't change anything in the function (for testing).
>>>>
>>>>
>>>> 2. the integration does not continue at the event encounter e.g. my
>>>> eventfunction is g(t,u)=t-1, the event is found in the step from t=
>>>> 0.9 to 1.1 at tevent=1 but the next step is not 1+dt but it is 1.1
>>>> + dt I would expect the next step to be 1.+dt
>>>       Hmm, this sounds like it could be an error. Could you send us a simple code that exhibits it?
>>>
>>>     Thanks
>>>
>>>     Barry
>>>
>>>> Best Regards,
>>>> Moritz
>>>>


More information about the petsc-users mailing list