You’re pretty close, you just needed vec(A):
julia> using JuMP
julia> model = Model()
A JuMP Model
Feasibility problem with:
Variables: 0
Model mode: AUTOMATIC
CachingOptimizer state: NO_OPTIMIZER
Solver name: No optimizer attached.
julia> @variable(model, A[1:3, 1:3])
3×3 Matrix{VariableRef}:
A[1,1] A[1,2] A[1,3]
A[2,1] A[2,2] A[2,3]
A[3,1] A[3,2] A[3,3]
julia> @constraint(model, [1; vec(A)] in SecondOrderCone())
[1, A[1,1], A[2,1], A[3,1], A[1,2], A[2,2], A[3,2], A[1,3], A[2,3], A[3,3]] ∈ MathOptInterface.SecondOrderCone(10)
julia> [1; A]
4×3 Matrix{AffExpr}:
1 1 1
A[1,1] A[1,2] A[1,3]
A[2,1] A[2,2] A[2,3]
A[3,1] A[3,2] A[3,3]
julia> [1; vec(A)]
10-element Vector{AffExpr}:
1
A[1,1]
A[2,1]
A[3,1]
A[1,2]
A[2,2]
A[3,2]
A[1,3]
A[2,3]
A[3,3]