octave-maintainers
[Top][All Lists]
Advanced

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

Re: GSoC ode15{i,s} - type conversion and approximation problems


From: Carlo de Falco
Subject: Re: GSoC ode15{i,s} - type conversion and approximation problems
Date: Mon, 20 Jun 2016 10:20:11 +0200

Francesco,
For now I think it is OK to just consider the cases where the user passes the complete Jacobian or he/she passes nothing. If we have only part of the Jacobian we can just ignore it for now or issue a warning that this feature is not implemented yet
c.

Il 18 giu 2016 5:52 PM, "Francesco Faccio" <address@hidden> ha scritto:

Dear Carlo,

thank you for your suggestions. 

Carlo De Falco wrote:
>On 16 Jun 2016, at 17:25, Francesco Faccio <address@hidden> wrote:
>
>> Sundials uses its own types: realtype and N_Vector. An N_Vector is a vector of realtype, while a realtype can be both a float, a double or a long double, depending on how Sundials has been built (default type is double).
>
>I think you should make sure at compile time that realtime in sundials is double and the 
>use double instead of realtime in the code

I think I can write a macro inside m4/acinclude.m4 and call it from configure.ac to check this.

>I'm not sure Matlab supports solving DAEs/IDEs using floats for state vector and jacobian, 
>can you check? 

Matlab allows the user to use values of single or double precision.

>According to the documentation, IDA can apprroximate the jacobian itself if needed:

IDA can approximate only a modified Jacobian in the form J = DF/DY + cj*DF/DYP, where cj is a scalar proportional to the inverse of the step size (cj is computed by IDA's solver).

In the Dense case, according to Matlab code, there can be 5 different situations and this is how we could solve them:

- the user doesn't supply a Jacobian: IDA approximates it by difference-quotients
- the user provides a modified Jacobian   { [ DF/DY ], [ DF/DYP ] } : I can pass it to IDA
- the user provides { [ DF/DY ], [ ] } : I need to approximate DF/DYP before passing it to IDA
- the user provides { [ ], [ DF/DYP] } : I need to approximate DF/DY before passing it to IDA
- the user provides a function returning [ DF/DY, DF/DYP ] : I can pass it to IDA

Since IDA makes all its approximations inside IDASOLVE  I will need to interface with an other library (or to modify Sundials' code).


Francesco 



reply via email to

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