This is a Python code segment for solving an optimal power flow problem: if self.ini_state: solver.read(self.pb_path[0]) # Problem parameters solver.param['BaseMVA'] = 1 solver.param['RefAngle'] = self.ref_angle solver.set_data(data=pd.DataFrame(self.params_dict['bus'], index=list(range(1, len(self.params_dict['bus']['bus_Pd']) + 1))), set_name='BUS') solver.set_data(data=pd.DataFrame(self.params_dict['branch'], index=list(range(1, len(self.params_dict['branch']['branch_fbus']) + 1))), set_name='BRANCH') solver.set_data(data=pd.DataFrame(self.params_dict['gen'], index=list(range(1, len(self.params_dict['gen']['gen_bus']) + 1))), set_name='GEN') solver.set_data(data=pd.DataFrame(self.params_dict['boundbus'], index=list(range(1, len(self.params_dict['boundbus']['boundbus_idx']) + 1))), set_name='BOUNDBUS') solver.read(self.pb_path[1]) # ACOPF problem self.ini_state = False else: solver.set_data(data=pd.DataFrame(self.params_dict['boundbus'], index=list(range(1, len(self.params_dict['boundbus']['boundbus_idx']) + 1))), set_name='BOUNDBUS') self.epoch += 1 for var in self.sol_dict.keys(): solver.getVariable(var).setValues(pd.Series(self.sol_dict[var], index=list(range(1, len(self.sol_dict[var]) + 1)))) solver.option["solver"] = "ipopt" solver.option["ipopt_options"] = "warm_start_init_point = yes" solver.get_output("solve;") After solving, the parameter in self.params_dict['boundbus'] is changed. To improve computational efficiency, I want to update only this parameter instead of reloading the entire problem model. I attempted to do this with: solver.set_data(data=pd.DataFrame(self.params_dict['boundbus'], index=list(range(1, len(self.params_dict['boundbus']['boundbus_idx']) + 1))), set_name='BOUNDBUS') However, AMPL throws a runtime error: "set BOUNDBUS already defined". Is there a valid way to update the parameter without redefining the entire model? Continue reading...