DianaICSolver: HafkeReactor.py

File HafkeReactor.py, 1.6 KB (added by miroshkin, 14 years ago)

Hafke Reactor: python script

Line 
1import diana 
2try: 
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    ri=dmain.CreateReportingInterface("basic");
13    ri.SetComponentName("data"); 
14    sfactory=dmain.GetSolverFactory(); 
15
16    # create consistent initial conditions solver
17    icsolver=sfactory.CreateSolver(diana.CAPE_IC, model, "icsolver.so");
18    icsolver.Initialize();
19    icpar=icsolver.GetParameters();
20    icpar["VerboseLevel"].SetValue(0);
21    icsolver.Solve();
22
23    # create solver
24    solver=sfactory.CreateSolver(diana.CAPE_DAE, model, "ida.so"); 
25    solver.Initialize(); 
26    solpar=solver.GetParameters(); 
27    solver.SetReportingInterface(ri); 
28    ri.Add(solpar["T"]); 
29    ri.Add(eso.GetStateVariables().ItemByName("c_[1]")); 
30    ri.Add(eso.GetStateVariables().ItemByName("c_[2]")); 
31    ri.Add(eso.GetStateVariables().ItemByName("c_[3]")); 
32    ri.Add(eso.GetStateVariables().ItemByName("c_[4]")); 
33    ri.Add(eso.GetStateVariables().ItemByName("temp")); 
34    ri.Add(eso.GetStateVariables().ItemByName("tk")); 
35
36    solpar["VerboseLevel"].SetValue(2);
37    solpar["Tend"].SetValue(16000); 
38    solver.Solve(); 
39
40    # create directory and store results
41    import os
42    if not os.path.isdir('results'): os.mkdir('results'); 
43    ri.WriteData("results/HafkeReactor"); 
44    ri.WriteDataMatlab("results/HafkeReactor.m"); 
45except diana.ECapeUser, exc: 
46    print exc