Intel® Ordinary Differential Equations Solver Library (Archived)

Getting unexpected results while using ode45

Hi,

I am trying to solve a system of differential equations by writting code in Matlab. I am posting on this forum, hoping that someone might be able to help me in some way.

I have a system of 10 coupled differential equations. It is a vector-host epidemic model, which captures the transmission of a disease between human population and insect population. Since it is a simple system of differential equations, I am using solvers (ode45) for non-stiff problem type.

About rhs subroutine

Good day,I have a question about rhs-subroutine.Short introduction:Coding a program I have to specify this rhs like an external procedure, if I compile it as a separete file or do not do if it is a module procedure.Q:In this rhs-procedure I must declare whole f(1:n) function being the right hand side of my system of ODE.But my rhs functions f(*) are complicatedfunction calling another procedure.Should I keep a calling tree of f(i) like a:!psedo-codef(i) = -F_some(i, dt, t, y) / foo(i)!end psedo-codewhere F_some is a function of an independed variable t and IN function y(1:n)?Or I`d better c

Large numbers as used for example in chemistry - "-1.#IND00..."

Hello all,
I hope this is still being actively developed as it seems
to be the simplest ODE solver I could find on the web (to use in a PhD).

However,
I have hit a potential issue with it - it seems it cannot cope with the
large numbers used in chemistry, unless I am doing something wrong. I
get "-1.#IND00..." which apparently is the error message in the
Microsoft compiler (which I am using) for "not a number" or excessively
large/small numbers.

intermediate values of y(t)

I would like to solve ODE and get a function. not just a final value.so i'd like to know a value of y(t) at all steps, for example incremented by 0.01.from my understanding the dodesol returns y(tmax) only. is there an efficient way to get the intermediate values?the routine that i was using before from numerical recipes used function evaluation during solving ode with adaptive step-size to interpolate the function so i can get an output for each increment of 0.01.

Interface to dodesol_rkm9st

Hello!I have to solve a system of ODE describing a Newtonian dynamics of some complex object. I decided to use the Intel ODE solver for this.I have coded my subroutine in a framework of Runge-Kutta 4rd order. It works perfectly. But I would like to use more adapted libraries for Intel processor performing calculations in a work-station.I downloaded the Intel ODE solver and extracted it respectively to installation manual.

Implementation to the complex system of ODE

Hello,I suppose this is a correct place for my question)
Does Intel ODE solver work well with complex system of ODE?Must I perform some simplification to reduce imaginaryand real parts (increasing an order of the system by 2, respectively)? And so, I solve Im and Re parts of ODE separately then I combine ones for the general solution like this y_g(t) = y_r(t) + i * y_i(t), where i = sqrt(-1.0)
P.S.The massive y and rhs are double precision. And so... I have to separate.
Oleg

Passing a Class Member Function to dodesol

Hi,How can I pass a class member function to the ODE solver. I need to do this because my rhs function is dependent on data from the class.class Foo { void rhs(...) { rhs[0] = classdata * y[0] .... ... } void updat_class_data() { classdata = ....... } void solve_ode_system() { ... dodesol(..........., rhs, .......); } double classdata;}Many thanksGennadiy

User data

This library has a great potential. You did a nice job here!If you want to push this forward, you may want to consider including amechanism to pass user data to the ode rhs function (e.g. by making both the ode rhs and the solver functions to take a void pointer as argument).Cheers,

Suscribirse a Intel® Ordinary Differential Equations Solver Library (Archived)