help-octave
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

dassl


From: stein
Subject: dassl
Date: Thu, 18 Jun 1998 17:40:28 +0200 (MET DST)

Hi,

this is some question relating dassl. I've formulated a simple
differential-algebraic problem. At a singularity, dassl crashes
and leaves octave completely. So I end up with the following
question:

How can such a crashing be avoided? (Perhaps there is a bugfix
that at least helps to gracefully return to the interpreter)

Anyway, I tried to set the following hint from the handbook into operation:

"The fifth argument {to dassl} is optional, and may be used to specify a set of 
times that the DAE solver should not integrate past. It is useful for avoiding 
difficulties with singularities and points where there is a discontinuity in 
the derivative." 

But I failed because I didn't find any example of how to specify
a set of times that the DAE solver should not integrate past.

Can anybody give me a clue?


  Thank you very much,

  Benno

-----------------------------------------------------------------------------

# Example problem:

octave.bin:1> function res = f(x,xdot,t)
> res(1) = xdot(1)-x(2);
> res(2) = 16 - x(1) - sign(x(2)) * x(2) * x(2);
> end


# Dassl works fine for t<8 or t>8:

octave.bin:3> p = dassl("f",[0;4],[4;0],(t=linspace (0, 8)'));
octave.bin:4> gplot p(:,1)
octave.bin:5> gplot p(:,2)
octave.bin:6> p = dassl("f",[16;0],[0;0],(t=linspace (8, 16)'));


# However, at time point t=8, x(2) is not differentiable - and octave
# crashes completely when integrating beyond that point:

octave.bin:9> p = dassl("f",[0;4],[4;0],(t=linspace (0, 10)'));
 ***MESSAGE FROM ROUTINE DDASSL IN LIBRARY SLATEC.
 ***POTENTIALLY RECOVERABLE ERROR, PROG ABORTED, TRACEBACK REQUESTED
 *  AT T =    8.000001E+00  AND STEPSIZE H =    1.098303E-14  THE CORRECTOR
 *  FAILED TO CONVERGE REPEATEDLY OR WITH ABS(H)=HMIN
 *  ERROR NUMBER = -7
 *   
 ***END OF MESSAGE
 
 ***JOB ABORT DUE TO UNRECOVERED ERROR.
0          ERROR MESSAGE SUMMARY
 LIBRARY    SUBROUTINE MESSAGE START             NERR     LEVEL     COUNT
 SLATEC     DDASSL     AT T =    8.000001E+        -7         1         1

error: exception encountered in Fortran subroutine ddassl
error: unrecoverable error in dassl
error: segmentation violation -- stopping myself...
attempting to save variables to `octave-core'...
save to `octave-core' complete



reply via email to

[Prev in Thread] Current Thread [Next in Thread]