6acb6bb7af818e66265bd756d3b283b06fc39287
[scilab.git] / scilab / modules / scicos / tests / unit_tests / Solvers / DAE / DDaskrK_Platform.win.dia.ref
1 // =============================================================================
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) 2013 - Scilab Enterprises - Paul Bignier
4 //
5 //  This file is distributed under the same license as the Scilab package.
6 // =============================================================================
7 //
8 // <-- ENGLISH IMPOSED -->
9 //
10 // <-- XCOS TEST -->
11 //
12 ilib_verbose(0); //to remove ilib_* traces
13 // Import diagram
14 assert_checktrue(importXcosDiagram("SCI/modules/xcos/tests/unit_tests/Solvers/DAE/Platform.zcos"));
15 // Redefining messagebox() to avoid popup
16 prot = funcprot();
17 funcprot(0);
18 function messagebox(msg, msg_title)
19 endfunction
20 Info = scicos_simulate(scs_m, list());
21 --------------------------------------------\
22  Main Modelica : TMPDIR\Platform_im.mo
23
24  Flat Modelica : TMPDIR\Platform_imf.mo
25  Simulation C code :TMPDIR\Platform_im.c
26 for i=1:2  // 'max step size' = 10^-i, precision
27     // Start by updating the clock block period (sampling)
28     Context.per = 5*10^-i;
29     // Modify solver + run DDaskr + save results
30     scs_m.props.tol(6) = 102;     // Solver
31     scicos_simulate(scs_m, Info, Context); // DDaskr
32     ddaskrval = res.values;       // Results
33     // Modify solver + run IDA + save results
34     scs_m.props.tol(6) = 100;     // Solver
35     scicos_simulate(scs_m, Info, Context); // IDA
36     idaval = res.values;          // Results
37     // Compare results
38     compa = abs(ddaskrval-idaval);
39     // Extract mean, standard deviation, maximum
40     mea = mean(compa);
41     [maxi, indexMaxi] = max(compa);
42     stdeviation = st_deviation(compa);
43     // Verifying closeness of the results
44     assert_checktrue(maxi <= 5*10^-(i+2));
45     assert_checktrue(mea <= 5*10^-(i+2));
46     assert_checktrue(stdeviation <= 5*10^-(i+2));
47 end
48 funcprot(prot);