DianaICSolver: AdsColumn_error.py

File AdsColumn_error.py, 1.9 KB (added by miroshkin, 14 years ago)

Adsorption column python script with calling standard IDACalcIC() method

Line 
1import diana 
2try:
3  N = 10;
4  dmain=diana.GetDianaMain()
5
6  # get Diana model manger
7  mmanger=dmain.GetModelManager();
8
9  # create model
10  model=mmanger.CreateModel(diana.CAPE_CONTINUOUS, "Adscolumn.so");
11  model.Initialize();
12  eso=model.GetActiveESO();
13  esopar=eso.GetParameters();
14  esopar["n"].SetValue(N);
15  ri=dmain.CreateReportingInterface("basic");
16  ri.SetComponentName("data");
17  sfactory = dmain.GetSolverFactory();
18
19# create consistent initial conditions solver
20# icsolver=sfactory.CreateSolver(diana.CAPE_IC, model, "icsolver.so");
21# icsolver.Initialize();
22# icpar=icsolver.GetParameters();
23# icpar["VerboseLevel"].SetValue(0);
24# icsolver.Solve();
25
26# create solver
27  solver=sfactory.CreateSolver(diana.CAPE_DAE, model, "ida.so");
28  solver.Initialize();
29  solpar=solver.GetParameters();
30  solver.SetReportingInterface(ri);
31  ri.Add(solpar["T"]);
32
33  for i in range(1,N+1):
34        name = "c_a["+str(i)+"]";
35        ri.Add(eso.GetStateVariables().ItemByName(name));
36  for i in range(1,N+1):
37        name = "c_b["+str(i)+"]";
38        ri.Add(eso.GetStateVariables().ItemByName(name));
39  for i in range(1,N+1):
40        name = "q_a["+str(i)+"]";
41        ri.Add(eso.GetStateVariables().ItemByName(name));
42  for i in range(1,N+1):
43        name = "q_b["+str(i)+"]";
44        ri.Add(eso.GetStateVariables().ItemByName(name));
45
46  esopar["cina"].SetValue(8);
47  esopar["cinb"].SetValue(8);
48  esopar["v"].SetValue(1);
49  esopar["l"].SetValue(20);
50  esopar["n"].SetValue(N);
51  solpar["VerboseLevel"].SetValue(1);
52  solpar["Tend"].SetValue(2);
53  solver.Solve();
54  esopar["cina"].SetValue(0);
55  esopar["cinb"].SetValue(0);
56  solpar["Tend"].SetValue(100);
57  solver.Solve();
58
59# create directory and store results
60  import os
61  if not os.path.isdir('results'):
62          os.mkdir('results');
63  ri.WriteData("results/AdsColumn");
64  ri.WriteDataMatlab("results/AdsColumn.m");
65
66except diana.ECapeUser, exc:
67  print repr(exc)