Sure, will it support the same “.mod” file format. The following is the format of themod file
options ipopt_options “print_level=12 output_file=‘ipopt_output.txt’”;
#Variables:
var s_tin >= 0;
var s_pi_foundry_grade >= 0;
var s_pi_steel_grade >= 0;
var s_crc_scrap >= 0;
var s_ms_scrap >= 0;
var s_inoculant_ladle >= 6.0;
var s_inoculant_stream >= 1.0;
var s_fesimg >= 24;
var s_fecr >= 0;
var s_simn >= 0;
var s_fesi >= 0;
var s_cpc >= 0;
var s_calcined_anthracite >= 0;
param s_heel = 3000.0000;
param s_ladle = 2000.0000;
var Sfinal >= 0.007;
var Mgfinal >= 0.05;
var optimised_cost = 1 * s_tin + 25 * s_pi_foundry_grade + 25 * s_pi_steel_grade + 25 * s_crc_scrap + 25 * s_ms_scrap + 1 * s_inoculant_ladle + 1 * s_inoculant_stream + 10 * s_fesimg + 1 * s_fecr + 1 * s_simn + 1 * s_fesi + 1 * s_cpc + 1 * s_calcined_anthracite + 1 * s_heel;
var furnace_buffer = (0.97 * s_pi_foundry_grade+0.97 * s_pi_steel_grade+0.97 * s_crc_scrap+0.97 * s_ms_scrap+1 * s_heel);
var Sn_pred_bath = (0.00654655274596392 * s_heel+(95.0 * 100.0/100) * s_tin)/furnace_buffer;
var Sn_pred_final = Sn_pred_bath + (0.0)/s_ladle;
var Sn_mean_dev >= 0, <= 0.04 - 0.03;
var C_pred_bath = (4.02 * s_pi_foundry_grade + 4.28 * s_pi_steel_grade + 0.017 * s_crc_scrap + 0.18 * s_ms_scrap + 3.723474944394807 * s_heel+(0.0 * 100.0/100) * s_fecr + (0.0 * 100.0/100) * s_simn + (0.0 * 100.0/100) * s_fesi + (88.0 * 100.0/100) * s_cpc + (80.0 * 100.0/100) * s_calcined_anthracite)/furnace_buffer;
var C_pred_final = C_pred_bath + ((0.0 * 100.0/100) * s_inoculant_ladle + (0.0 * 100.0/100) * s_inoculant_stream + (0.0 * 100.0/100) * s_fesimg)/s_ladle;
var C_mean_dev_bath >= 0, <= 3.8 - 3.65;
var C_mean_dev_final >= 0, <= 3.7 - 3.55;
var Si_pred_bath = (1.75 * s_pi_foundry_grade + 0.5 * s_pi_steel_grade + 0.21 * s_crc_scrap + 0.15 * s_ms_scrap + 1.561061733353812 * s_heel+(0.0 * 100.0/100) * s_fecr + (13.0 * 100.0/100) * s_simn + (60.0 * 100.0/100) * s_fesi + (0.0 * 100.0/100) * s_cpc + (0.0 * 100.0/100) * s_calcined_anthracite)/furnace_buffer;
var Si_pred_final = Si_pred_bath + ((65.0 * 100.0/100) * s_inoculant_ladle + (65.0 * 100.0/100) * s_inoculant_stream + (40.0 * 100.0/100) * s_fesimg)/furnace_buffer;
var Si_mean_dev_bath >= 0, <= 1.75 - 1.65;
var Si_mean_dev_final >= 0, <= 2.5 - 2.375;
var Mn_pred_bath = (0.18 * s_pi_foundry_grade + 0.08 * s_pi_steel_grade + 0.27 * s_crc_scrap + 0.475 * s_ms_scrap + 0.4507366145214538 * s_heel+(0.0 * 100.0/100) * s_fecr + (57.0 * 100.0/100) * s_simn + (0.0 * 100.0/100) * s_fesi + (0.0 * 100.0/100) * s_cpc + (0.0 * 100.0/100) * s_calcined_anthracite)/furnace_buffer;
var Mn_pred_final = Mn_pred_bath + ((0.0 * 100.0/100) * s_inoculant_ladle + (0.0 * 100.0/100) * s_inoculant_stream + (0.0 * 100.0/100) * s_fesimg)/furnace_buffer;
var P_pred_bath = (0.11 * s_pi_foundry_grade + 0.07 * s_pi_steel_grade + 0.023 * s_crc_scrap + 0.05 * s_ms_scrap + 0.07044083047855525 * s_heel+(0.0 * 100.0/100) * s_fecr + (0.0 * 100.0/100) * s_simn + (0.0 * 100.0/100) * s_fesi + (0.0 * 100.0/100) * s_cpc + (0.0 * 100.0/100) * s_calcined_anthracite)/furnace_buffer;
var P_pred_final = Mn_pred_bath + ((0.0 * 100.0/100) * s_inoculant_ladle + (0.0 * 100.0/100) * s_inoculant_stream + (0.0 * 100.0/100) * s_fesimg)/furnace_buffer;
var Cr_pred_bath = (0.0 * s_pi_foundry_grade + 0.0 * s_pi_steel_grade + 0.03 * s_crc_scrap + 0.0 * s_ms_scrap + 0.05718614448611581 * s_heel+(57.0 * 100.0/100) * s_fecr + (0.0 * 100.0/100) * s_simn + (0.0 * 100.0/100) * s_fesi + (0.0 * 100.0/100) * s_cpc + (0.0 * 100.0/100) * s_calcined_anthracite)/furnace_buffer;
var Cr_pred_final = Cr_pred_bath + ((0.0 * 100.0/100) * s_inoculant_ladle + (0.0 * 100.0/100) * s_inoculant_stream + (0.0 * 100.0/100) * s_fesimg)/furnace_buffer;
var S_pred_bath = (0.035 * s_pi_foundry_grade + 0.03 * s_pi_steel_grade + 0.01 * s_crc_scrap + 0.05 * s_ms_scrap + 0.03243645172500395 * s_heel)/furnace_buffer;
Objective:
minimize z: optimised_cost + 10000 * Sn_mean_dev + 10000 * (C_mean_dev_bath + C_mean_dev_final) + 10000 * (Si_mean_dev_bath + Si_mean_dev_final);
#Constraints
subject to c_furnace: s_tin + s_pi_foundry_grade + s_pi_steel_grade + s_crc_scrap + s_ms_scrap + s_fecr + s_simn + s_fesi + s_cpc + s_calcined_anthracite + s_heel <= 3000 + 300.0000;
subject to max_s_inoculant_ladle: s_inoculant_ladle <= 6.0;
subject to max_s_inoculant_stream: s_inoculant_stream <= 1.2;
subject to max_s_fesimg: s_fesimg <= 26;
subject to nod_Mgfinal: Mgfinal <= 0.07;
subject to nod_Sfinal: Sfinal <= 0.025;
subject to nod_SiSf: S_pred_bath >= Sfinal;
subject to Sn_mean_min_bath: Sn_pred_bath + Sn_mean_dev >= 0.03;
subject to Sn_mean_max_bath: Sn_pred_bath - (Sn_mean_dev) <= 0.03;
subject to Sn_mean_min_final: Sn_pred_final + Sn_mean_dev >= 0.03;
subject to Sn_mean_max_final: Sn_pred_final - (Sn_mean_dev) <= 0.03;
subject to C_mean_min_bath: C_pred_bath + C_mean_dev_bath >= 3.65;
subject to C_mean_max_bath: C_pred_bath - (C_mean_dev_bath) <= 3.65;
subject to C_mean_min_final: C_pred_final+ C_mean_dev_final >= 3.55;
subject to C_mean_max_final: C_pred_final - (C_mean_dev_final) <= 3.55;
subject to Si_mean_min_bath: Si_pred_bath + Si_mean_dev_bath >= 1.65;
subject to Si_mean_max_bath: Si_pred_bath - (Si_mean_dev_bath) <= 1.65;
subject to Si_mean_min_final: Si_pred_final + Si_mean_dev_final >= 2.375;
subject to Si_mean_max_final: Si_pred_final - (Si_mean_dev_final) <= 2.375;
subject to Mn_min_bath: Mn_pred_bath >= 0.4;
subject to Mn_max_bath: Mn_pred_bath <= 0.7;
subject to Mn_min_final: Mn_pred_final >= 0.4;
subject to Mn_max_final: Mn_pred_final <= 0.7;
subject to P_max_bath: P_pred_bath <= 0.08;
subject to P_max_final: P_pred_final <= 0.08;
subject to Cr_max_bath: Cr_pred_bath <= 0.08;
subject to Cr_max_final: Cr_pred_final <= 0.08;
#subject to S_max_bath: S_pred_bath <= 0.04;
subject to nodularization : s_fesimg = s_ladle * ((Mgfinal + 0.76 * (S_pred_bath - Sfinal) + 0.001 * 2.0) / (8.5 * 45.0/100)) * (1485/1450)^2 ;
end;