← Back to team overview

cbc team mailing list archive

Re: [noreply@xxxxxxxxxxxxx: [Branch ~cbc-core/cbc.solve/main] Rev 99: Fixed auto time-step size corrector when T is a multiple of dt]

 

On 4/13/10 2:47 PM, Anders Logg wrote:
> On Tue, Apr 13, 2010 at 02:42:34PM +0200, Harish Narayanan wrote:
>> On 4/13/10 1:32 PM, Anders Logg wrote:
>>> What if T = 10 and dt = 0.9999999999. Then we get
>>>
>>>   ceil(T / dt) = 11.
>>
>> I am not sure I understand what is wrong with this.
>>
>> If dt = 1.0, then we get 10 time steps. If dt < 1.0, we get more time steps.
>>
>> Harish
> 
> Isn't there a chance that one might specify the time step to be k and
> the end time to be n*k and get T / k = n + eps?

This, in my mind, is a common case. But the same problem would have
existed in the earlier code as well. All I was doing was to replace the
earlier code which always added one time step. Now:

If T / k is an integer, dt = k.
If T / k is not, then dt = T /(int(T / k) + 1)

The earlier code was always using the second definition.

Harish



Follow ups

References