As discussed with @matbesancon during the JuMP-dev call, we could add a PolyJuMP.Geometric.Optimizer meta-solver that supports ScalarPolynomialFunction as input and rewrites into exponential conic form using geometric programming (and errors if they are not posynomials).