import diana 
try: 
    dmain=diana.GetDianaMain()
    # get Diana model manger 
    mmanger=dmain.GetModelManager();

    # create model 
    model=mmanger.CreateModel(diana.CAPE_CONTINUOUS, "Cstr.so");   
    model.Initialize(); 
    eso=model.GetActiveESO(); 
    esopar=eso.GetParameters(); 
    ri=dmain.CreateReportingInterface("basic");
    ri.SetComponentName("data"); 

    # create solver 
    sfactory=dmain.GetSolverFactory(); 
    solver=sfactory.CreateSolver(diana.CAPE_DAE, model, "petri_meta.so"); 
    solver.Initialize(); 
    solpar=solver.GetParameters(); 
    solver.SetReportingInterface(ri); 
    ri.Add(solpar["T"]); 
    ri.Add(eso.GetStateVariables().ItemByName("x1")); 
    ri.Add(eso.GetStateVariables().ItemByName("x2")); 

    solpar["VerboseLevel"].SetValue(2);
    solpar["Tend"].SetValue(100); 
    solver.Solve(); 

    # create directory and store results 
    import os
    if not os.path.isdir('results'): os.mkdir('results'); 
    ri.WriteData("results/dyn"); 
    ri.WriteDataMatlab("results/dyn.m"); 
except diana.ECapeUser, exc: 
    print exc
