Is there any way to show what class of optimization problem we have? E.g. SOCP, SDP, or totally nonconvex?
Or do we just need to try a bunch of solvers and see when they fail? Is SNOPT the only one that supports nonconvex optimization?
You can refer to GetProgramType which returns if the program is LP, QP, SDP, etc.
Is SNOPT the only one that supports nonconvex optimization?
No, we also have IPOPT and NLOpt for non-convex nonlinear optimization.