ncp=1, contset=instance.t) # Interface pyomo model with nlp nlp = PyomoNLP(instance) print(nlp.variable_names()) x = nlp.create_new_vector('primals') x.fill(1.0) nlp.set_primals(x) lam = nlp.create_new_vector('duals') lam.fill(1.0) nlp.set_duals(lam) nlp.n_constraints(), nlp.n_eq_constraints(), nlp.n_ineq_constraints() # Evaluate jacobian jac = nlp.evaluate_jacobian() plt.spy(jac) plt.title('Jacobian of the constraints\n') plt.show() # Evaluate hessian of the lagrangian hess_lag = nlp.evaluate_hessian_lag() plt.spy(hess_lag) plt.title('Hessian of the Lagrangian function\n') plt.show() # Build KKT matrix kkt = BlockSymMatrix(2)
options = ScenarioTreeManagerFactory.register_options() options.scenario_tree_manager = 'serial' sp = ScenarioTreeManagerFactory(options, factory=instance_factory) sp.initialize() instance = create_ef_instance(sp.scenario_tree) #instance = create_model(1.0) nlp = PyomoNLP(instance) print("\n----------------------") print("Problem statistics:") print("----------------------") print("Number of variables: {:>25d}".format(nlp.n_primals())) print("Number of equality constraints: {:>14d}".format(nlp.n_eq_constraints())) print("Number of inequality constraints: {:>11d}".format( nlp.n_ineq_constraints())) print("Total number of constraints: {:>17d}".format(nlp.n_constraints())) print("Number of nnz in Jacobian: {:>20d}".format(nlp.nnz_jacobian())) print("Number of nnz in hessian of Lagrange: {:>8d}".format( nlp.nnz_hessian_lag())) x = nlp.init_primals().copy() y = nlp.create_new_vector('duals') y.fill(1.0) nlp.set_primals(x) nlp.set_duals(y) # Evaluate jacobian of all constraints jac_full = nlp.evaluate_jacobian() plt.spy(jac_full) plt.title('Jacobian of the all constraints\n')