when I use Ipopt as folows:

```
m = Model(Ipopt.Optimizer)
set_optimizer_attributes(m, "LOG" => 0)
...
g_p_max_soc=vcat(node[i].p̅ - g_p[i],arg_p)
@constraint(m, g_p_max_soc in SecondOrderCone())
```

there are errors as below:

```
MOI.VectorAffineFunction{Float64}`-in-`MOI.SecondOrderCone` constraints are not supported and cannot be bridged into supported constrained variables and constraints. See details below:
```

but when I use Mosek solver instead

```
m = Model(Mosek.Optimizer)
set_optimizer_attributes(m, "LOG" => 0)
```

The porgram is ok. I don’t know why. Thanks for your reply.

If you look here: Installation Guide · JuMP, it lists the solvers and what kinds of problems they support. Optimization with a constraint with `SecondOrderCone()`

like you have is called SOCP (second-order cone programming), so you need a solver that supports that, like Mosek. As the error message says, Ipopt doesn’t support that kind of problem, and JuMP can’t automatically reformulate the problem in a way that Ipopt does support.

2 Likes

Thank you very much, I have known it.

I thougt Ipopt could solve socp problem, until I just saw this instruction manual

1 Like

Side note, if you reformulate your `SecondOrderCone`

constraint in a polynomial or QCQP form then you can send it to Ipopt.

1 Like

Ok，thank you @ericphanson , I tried Gurobi solver, program could work well.

Also, thank you @ccoffrin , I will try reformulate `SecondOrderCone`

constraint in a polynomial or QCQP form, and solve problem with Ipopt.

2 Likes