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.
I decided to run the rkm9mkn solver as it is the most "flexible" in terms of solving a problem.
This is my input, with y[0] being 10 (as a random starter, all other initial values are zero).
double af1=1.e-10;
double af2=3.e09;
double af3=3.e09;
double af4=3.e09;
double af5=3.e09;
double af6=3.e09;
double af7=3.e09;
double af8=3.e09;
double af9=3.e09;
double af10=3.e09;
double af11=1.e15;
double af12=3.e09;
double af13=1.e16;
double af14=3.e09;
double af15=3.e09;
double af16=3.e09;
double af17=3.e09;
f[0] =-af1*y[1];
f[1] = af1*y[0]-af2*y[3]+af3*y[3]*y[7]+af6*y[5]*y[7]-af10*y[2]+af12*y[3]*y[7]+af14*y[12]*y[7]+af16*y[19]*y[7];
f[2] = af10*y[1]*y[1];
f[3] = af2*y[1]*y[11]-af3*y[9]*y[1]-af4*y[20]-af5*y[9]*y[6];
f[4] =-af11*y[9]-af12*y[13]*y[1]-af13*y[19]*y[15]-af15*y[20];
f[5] =-af6*y[7]*y[1]+af7*y[6]*y[11]-af8*y[7]*y[6]-af9*y[14];
f[6] = af5*y[3]*y[8]+af8*y[5]*y[8]-af7*y[5];
f[7] =-af3*y[9]*y[1]-af6*y[10]*y[6]-af12*y[13]*y[1]-af14*y[16]*y[1]-af16*y[17]*y[1];
f[8] =-af5*y[9]*y[6]-af8*y[10]*y[6];
f[9] = af3*y[3]*y[7]+af5*y[3]*y[8]-af11*y[4]*y[12]-af17*y[14];
f[10]= af6*y[5]*y[7]+af8*y[5]*y[8];
f[11]=-af2*y[3]-af7*y[5];
f[12]= af11*y[9]-af14*y[16]*y[1];
f[13]= af12*y[4]*y[7];
f[14]= af9*y[5]*y[5]+af17*y[9]*y[18];
f[15]= af13*y[4];
f[16]= af14*y[12]*y[7];
f[17]= af16*y[19]*y[7];
f[18]=-af17*y[14];
f[19]= af13*y[4]-af16*y[17]*y[1];
f[20]=-af14*y[3]*y[3]+af15*y[4]*y[4];
I
don't quite see why this would be too large. If I scale down the
numbers by a magnitude of 9, it works (or doesn't crash haven't looked
at the detailed numbers yet) - but even using a e10 as a maximum
magnitude leads to an issue.
So basically, my question boilds down to "what is the largest number supported"?
Many thanks :)



