[SciPy-User] odeint - Excess work done on this call

Warren Weckesser warren.weckesser at gmail.com
Wed Oct 15 11:33:11 EDT 2014


On Wed, Oct 15, 2014 at 11:11 AM, nicky van foreest <vanforeest at gmail.com>
wrote:

> Hi,
>
> On 14 October 2014 17:08, Farid Afandiyev <faridafandiyev at gmail.com>
> wrote:
>
>> Hi Nicky,
>>
>> Correct, flow will stop after pressures are equalized. I would like it to
>> stop integration at that point, i.e. after pressure equilibrium is reached
>> odeint should stop calling derivative function.
>>
>
> Ok. I don't know how to stop odeint at a point that you know that
> pressures are the same. BTW, I find it a bit strange that the pressures
> balance in finite time. My intuition tells me that the pressure difference
> should go down like an exponential function. Is all ok in your problem
> formulation, or I am just wrong?
>
>

That's what can happen when the differential equation doesn't satisfy a
Lipschitz condition (http://en.wikipedia.org/wiki/Lipschitz_continuity).
The classic example is dx/dt = x**(1/2).   x(t) == 0 is a solution.  Other
solutions are parabolas with their vertices on the x axis (i.e. they reach
0 in finite time).

Warren


Nicky
>
>>
>> Thanks,
>>
>> Farid.
>>
>> On Tue, Oct 14, 2014 at 5:05 PM, nicky van foreest <vanforeest at gmail.com>
>> wrote:
>>
>>> Hi Farid,
>>>
>>> Please see below.
>>>
>>> [[  4.00000000e+03   2.64000000e-01   2.00000000e+03   3.30000000e-01]
>>>>  [  3.49242034e+03   2.30499743e-01   2.20303186e+03   3.63500257e-01]
>>>>  [  3.09580400e+03   2.04323064e-01   2.36167840e+03   3.89676936e-01]
>>>>  [  2.81015098e+03   1.85469965e-01   2.47593961e+03   4.08530035e-01]
>>>>  [  2.63546127e+03   1.73940444e-01   2.54581549e+03   4.20059556e-01]
>>>>  [  2.57173487e+03   1.69734501e-01   2.57130605e+03   4.24265499e-01]
>>>>  [  2.57142857e+03   1.69714286e-01   2.57142857e+03   4.24285714e-01]
>>>>
>>>
>>> It appears that your P1 - P2 = 0 at this line. It might mean that the
>>> pressure in both vessels is the same at that moment in time, and then the
>>> flow should stop, right?  So, what should the integrator tell you after
>>> this point in time?
>>>
>>> Nicky
>>>
>>>
>>>>  [  0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00]
>>>>  [  0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00]
>>>>  [  0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00]]
>>>>
>>>>
>>
>> _______________________________________________
>> SciPy-User mailing list
>> SciPy-User at scipy.org
>> http://mail.scipy.org/mailman/listinfo/scipy-user
>>
>>
>
> _______________________________________________
> SciPy-User mailing list
> SciPy-User at scipy.org
> http://mail.scipy.org/mailman/listinfo/scipy-user
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.scipy.org/pipermail/scipy-user/attachments/20141015/798afbe1/attachment.html>


More information about the SciPy-User mailing list