Hi, I am currently using a callback function to get the number of inner iterations.
Firstly, I have this: set_optimizer_attributes(model, “mu_target” => μ, “mu_init” => μ);
Where μ is updated outside of IPOPT ( I have my reasons for doing so) However, I am calling the callback function like this,
iters = []
function my_callback(
alg_mod::Cint,
iter_count::Cint,
obj_value::Float64,
inf_pr::Float64,
inf_du::Float64,
mu::Float64,
d_norm::Float64,
regularization_size::Float64,
alpha_du::Float64,
alpha_pr::Float64,
ls_trials::Cint)
append!(iters, iter_count)
[...]
After IPOPT has successfully found the solution for my specific barrier parameter, I want to know the number of iterations IPOPT used. As I set the barrier parameter myself there will be no “outer” iterations. I believe that I should get the number of iterations by taking: j += last(iters)
. However, when I debug my way into the iters vector I see this,
where the purple color represent the element in the vector. I expected that length(iters) -1 = last(iters) (-1 because the iteration starts at 0 which is the initial value and therefore not counted as an iteration) Why is this not the case?