Parent Directory
|
Revision Log
Incorporated 'SolverParameters' functionality into 'Integrator', both at C level and C++/Python. This shouldn't break Tcl/Tk as default parameters will be set and used invisibly.
1 | REQUIRE "ivpsystem.a4l"; |
2 | REQUIRE "atoms.a4l"; |
3 | |
4 | IMPORT "johnpye/extpy/extpy"; |
5 | IMPORT "johnpye/solve"; |
6 | |
7 | (* ASCEND model based on the 'idadenx.c' example problem that accomanpanies IDA *) |
8 | MODEL idadenx; |
9 | y1, y2, y3 IS_A factor; |
10 | dy1_dt IS_A factor; |
11 | dy2_dt IS_A factor; |
12 | |
13 | eq1: dy1_dt = -0.04 * y1 + 1e4 * y2*y3; |
14 | eq2: dy2_dt = +0.04 * y1 - 1e4 * y2*y3 - 3e7*y2^2; |
15 | eq3: 0 = y1 + y2 + y3 - 1; |
16 | |
17 | t IS_A time; |
18 | METHODS |
19 | |
20 | METHOD values; (* initial values *) |
21 | y1 := 1; |
22 | y2 := 0; |
23 | y3 := 0; |
24 | t := 0 {s}; |
25 | END values; |
26 | |
27 | METHOD specify; |
28 | FIX y1, y2; |
29 | END specify; |
30 | |
31 | METHOD ode_init; |
32 | FREE y1, y2; |
33 | t.ode_type := -1; t := 0 {s}; |
34 | dy1_dt.ode_id := 1; dy1_dt.ode_type := 2; |
35 | y1.ode_id := 1; y1.ode_type := 1; |
36 | |
37 | dy2_dt.ode_id := 2; dy2_dt.ode_type := 2; |
38 | y2.ode_id := 2; y2.ode_type := 1; |
39 | |
40 | y3.ode_id := 3; |
41 | END ode_init; |
42 | |
43 | METHOD on_load; |
44 | RUN reset; RUN values; |
45 | EXTERNAL solve(SELF); |
46 | RUN ode_init; |
47 | END on_load; |
48 | |
49 | END idadenx; |
john.pye@anu.edu.au | ViewVC Help |
Powered by ViewVC 1.1.22 |