Update for localization
[scilab.git] / scilab / modules / differential_equations / macros / odeoptions.sci
1 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
2 // Copyright (C) INRIA
3 // ...
4 // 
5 // This file must be used under the terms of the CeCILL.
6 // This source file is licensed as described in the file COPYING, which
7 // you should have received as part of this distribution.  The terms
8 // are also available at    
9 // http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
10
11 function [%ODEOPTIONS] = odeoptions(%ODEOPTIONS)
12
13 //%ODEOPTIONS=[itask,tcrit,h0,hmax,hmin,jactyp,mxstep,..
14 //             maxordn,maxords,ixpr, ml,mu]
15 // This function displays the command line 
16 // %ODEOPTIONS=[...] to be executed 
17 // for defining the variable %ODEOPTIONS
18 // This variables sets a number of optional parameters 
19 // for the lsod* fortran routines.
20
21 //** This function can be (ab)used from the Scilab command line and 
22 //** inside a Scicos "context". In order to handle the different situations,
23 //** the required library are loaded if not already present in the 
24 //** "semiglobal-local-environment".  
25
26 if exists('scicos_scicoslib')==0 then
27     load("SCI/modules/scicos/macros/scicos_scicos/lib") ;
28 end
29
30 if exists('scicos_autolib')==0 then
31     load("SCI/modules/scicos/macros/scicos_auto/lib") ;
32 end
33
34 if exists('scicos_utilslib')==0 then
35     load("SCI/modules/scicos/macros/scicos_utils/lib") ;
36 end
37
38   options = [1,0,0,%inf,0,2,500,12,5,0,-1,-1];
39   default = [string(options(1:10)),sci2exp(options(11:12))]
40   default(find(default=='Inf'))="%inf"
41
42   if argn(2)>0 then
43     options=%ODEOPTIONS
44   end
45
46   lab_=[string(options(1:10)),sci2exp(options(11:12))]
47   lab_(find(lab_=='Inf'))="%inf"
48
49
50 chapeau=[gettext("Defining %ODEOPTIONS variable");
51          "*****************************";
52          gettext("Meaning of itask and tcrit:");
53          gettext("1 : normal computation at specified times");
54          gettext("2 : computation at mesh points (given in first row of output of ode)");
55          gettext("3 : one step at one internal mesh point and return");
56          gettext("4 : normal computation without overshooting tcrit");
57          gettext("5 : one step, without passing tcrit, and return");
58          " ";
59          gettext("Meaning of jactype:");
60          gettext("0 : functional iterations (no jacobian used (''adams'' or ''stiff'' only))");
61          gettext("1 : user-supplied full jacobian");
62          gettext("2 : internally generated full jacobian");
63          gettext("3 : internally generated diagonal jacobian (''adams'' or ''stiff'' only)");
64          gettext("4 : user-supplied banded jacobian (see ml,mu)");
65          gettext("5 : internally generated banded jacobian (see ml,mu)");
66          " ";
67          gettext("Meaning of ml,mu:");
68          gettext("If jactype = 4 or 5 ml and mu are the lower and upper half-banwidths");
69          gettext("of the banded jacobian: the band is the i,j''s with i-ml <= j <= ny-1");
70          gettext("If jactype = 4 the jacobian function must return");
71          gettext("a matrix J which is  ml+mu+1 x ny (where ny=dim of y in ydot=f(t,y))");
72          gettext("such that column 1 of J is made of mu zeros followed by");
73          gettext("df1/dy1, df2/dy1, df3/dy1,... (1+ml possibly non-zero entries)");
74          gettext("column 2 is made of mu-1 zeros followed by df1/dx2, df2/dx2,etc");
75          " ";
76          gettext("Default values are given in square brackets");
77          gettext("If the function is called without argument, default values are used");
78         ]
79
80 dims = list("vec",1,"vec",1,"vec",1,"vec",1,"vec",1,..
81             "vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",2);
82
83
84 labels = ["itask (1,2,3,4,5) ","tcrit (assumes itask=4 or 5)",...
85           "h0 (first step tried)",...
86           "hmax (max step size)","hmin (min step size)",...
87           "jactype (0,1,2,3,4,5)","mxstep (max number of steps allowed)",...
88           "maxordn (maximum non-stiff order allowed, at most 12)",...
89           "maxords(maximum stiff order allowed, at most 5) ",...
90           "ixpr (print level 0 or 1)","[ml,mu]"] +'    ['+default+']';
91
92 [ok,itask,tcrit,h0,hmax,hmin,jactyp,mxstep,maxordn,maxords,ixpr,mlmu] = getvalue(chapeau,labels,dims,lab_);
93 ml = mlmu(1);
94 mu = mlmu(2);
95 ODEOPTIONS = [itask,tcrit,h0,hmax,hmin,jactyp,mxstep,maxordn,maxords,ixpr,ml,mu];
96
97 if ODEOPTIONS<>[] then
98   %ODEOPTIONS=ODEOPTIONS
99 else
100   %ODEOPTIONS=options
101 end
102
103 endfunction