1 | import diana |
---|
2 | try: |
---|
3 | dmain=diana.GetDianaMain() |
---|
4 | # get Diana model manger |
---|
5 | mmanger=dmain.GetModelManager(); |
---|
6 | |
---|
7 | # create model |
---|
8 | model=mmanger.CreateModel(diana.CAPE_CONTINUOUS, "HafkeReactor.so"); |
---|
9 | model.Initialize(); |
---|
10 | eso=model.GetActiveESO(); |
---|
11 | esopar=eso.GetParameters(); |
---|
12 | |
---|
13 | ri=dmain.CreateReportingInterface("basic"); |
---|
14 | ri.SetComponentName("data"); |
---|
15 | |
---|
16 | # create solver |
---|
17 | sfactory=dmain.GetSolverFactory(); |
---|
18 | solver=sfactory.CreateSolver(diana.CAPE_DAE, model, "ida.so"); |
---|
19 | solver.Initialize(); |
---|
20 | solpar=solver.GetParameters(); |
---|
21 | solver.SetReportingInterface(ri); |
---|
22 | ri.Add(solpar["T"]); |
---|
23 | ri.Add(eso.GetStateVariables().ItemByName("tk")); |
---|
24 | |
---|
25 | solpar["VerboseLevel"].SetValue(2); |
---|
26 | solpar["Tend"].SetValue(16000); |
---|
27 | solver.Solve(); |
---|
28 | # create directory and store results |
---|
29 | import os |
---|
30 | if not os.path.isdir('results'): os.mkdir('results'); |
---|
31 | ri.WriteData("results/dyn"); |
---|
32 | ri.WriteDataMatlab("results/dyn.m"); |
---|
33 | except diana.ECapeUser, exc: |
---|
34 | print exc |
---|