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 | johnpye | 942 | 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 |