Buckling-Constrained Truss Optimization with SDP Constraints

Description

This tutorial demonstrates buckling-constrained topology optimization on a truss structure. The goal is to minimize compliance while ensuring the combined stiffness matrix K + c·Kσ remains positive semidefinite — i.e., the structure does not buckle under the applied load scaled by buckling factor c.

We use differentiable building blocks (ElementKFun, AssembleKFun, TrussElementKσFun, apply_boundary_with_zerodiag!, apply_boundary_with_meandiag!) and enforce the PSD constraint via semidefinite programming (SDP) using NonconvexSemidefinite.jl with an IPM barrier method.

Setup

using TopOpt, LinearAlgebra, Zygote
using Nonconvex, NonconvexSemidefinite, NonconvexIpopt

Load Truss Geometry

Download the truss geometry file: tim_2d.json.

ndim = 2
node_points, elements, _, _, fixities, load_cases = load_truss_json(
    joinpath(@__DIR__, "tim_$(ndim)d.json")
)
ndim, nnodes, ncells = length(node_points[1]), length(node_points), length(elements)
loads = load_cases["0"]

# Override material and cross-section: a large area (A=800) makes the
# stiffness matrix K dominate the geometric stiffness Kσ, so the initial
# all-solid design is stable (K + c·Kσ ≻ 0) while still allowing the
# compliance-only optimum to go unstable.
mats = TrussFEAMaterial(1.0, 0.3)
crosssecs = TrussFEACrossSec(800.0)

problem = TrussProblem(
    Val{:Linear}, node_points, elements, loads, fixities, mats, crosssecs
)

Parameter Settings

xmin = 0.0001   # minimum density
p = 1.0         # SIMP penalty exponent
V = 0.5         # volume fraction
x0 = fill(1.0, ncells)  # initial design (all solid)

FEA Solver and Buckling Helpers

solver = FEASolver(DirectSolver, problem; xmin=xmin)
ch = problem.ch

comp = ComplianceFun(solver)
dp = DisplacementFun(solver)
assemble_k = AssembleKFun(problem)
element_k = ElementKFun(solver)
truss_element_kσ = TrussElementKσFun(problem, solver)

Five differentiable building blocks:

  1. ComplianceFun — objective to minimize
  2. DisplacementFun — solves K·u = f for displacements
  3. ElementKFun — per-element stiffness matrices
  4. AssembleKFun — assembles global sparse matrix
  5. TrussElementKσFun — geometric (stress) stiffness matrices

Buckling Constraint Function

c = 1.0  # buckling load multiplier — large enough that the constraint binds

function buckling_matrix_constr(x)
    xd = PseudoDensities(x)
    u = dp(xd)
    Kes = element_k(xd)
    K = assemble_k(Kes)
    K = apply_boundary_with_meandiag!(K, ch)
    Kσs = truss_element_kσ(u, xd)
= assemble_k(Kσs)
= apply_boundary_with_zerodiag!(Kσ, ch)
    return Array(K + c * Kσ)
end

The constraint returns the combined matrix K + c·Kσ which must be PSD (all eigenvalues ≥ 0).

Check Initial Design

S0 = buckling_matrix_constr(x0)
println("Initial design minimum eigenvalue: $(minimum(eigen(S0).values))")
Initial design minimum eigenvalue: 0.3412528944345227

The initial all-solid design should have positive eigenvalues (stable).

Volume Constraint

vol_constr(x) = sum(x) / length(x) - V

Compliance-Only Optimization (Baseline)

obj = x -> comp(PseudoDensities(x))

model = Model(obj)
addvar!(model, zeros(length(x0)), ones(length(x0)))
add_ineq_constraint!(model, vol_constr)

alg = MMA87()
options = MMAOptions(; maxiter=200, tol=Tolerance(; kkt=1e-4))
r1 = optimize(model, alg, x0; options=options)

println("ComplianceFun-only result:")
println("  obj = $(obj(r1.minimizer))")
println("  vol = $(vol_constr(r1.minimizer))")
[ Info:   iter       obj      Δobj  violation  kkt_residual  
[ Info:      0   5.4e-03       Inf   5.0e-01   5.0e-01
[ Info:      1   9.8e-03   4.4e-03   5.0e-02   2.4e+32
[ Info:      2   9.3e-03   4.7e-04   0.0e+00   8.1e-04
[ Info:      3   7.9e-03   1.5e-03   0.0e+00   3.8e-04
[ Info:      4   6.8e-03   1.1e-03   0.0e+00   1.2e-03
[ Info:      5   6.2e-03   6.0e-04   0.0e+00   1.9e-04
[ Info:      6   6.2e-03   6.6e-06   0.0e+00   6.0e-05
ComplianceFun-only result:
  obj = 0.006161931529729129
  vol = -0.016356884179759223

This baseline ignores buckling — the result may be unstable.

Add Buckling SDP Constraint

# Add semidefinite constraint: K + c·Kσ ≽ 0
add_sd_constraint!(model, buckling_matrix_constr)

alg2 = SDPBarrierAlg(; sub_alg=IpoptAlg())
options2 = SDPBarrierOptions(; 
    sub_options=IpoptOptions(; max_iter=200),
    keep_all=true
)
r2 = optimize(model, alg2, x0; options=options2)

println("Buckling-constrained result:")
println("  obj = $(obj(r2.minimizer))")
println("  vol = $(vol_constr(r2.minimizer))")

******************************************************************************
This program contains Ipopt, a library for large-scale nonlinear optimization.
 Ipopt is released as open source code under the Eclipse Public License (EPL).
         For more information visit https://github.com/coin-or/Ipopt
******************************************************************************

This is Ipopt version 3.14.19, running with linear solver MUMPS 5.9.0.

Number of nonzeros in equality constraint Jacobian...:        0
Number of nonzeros in inequality constraint Jacobian.:       42
Number of nonzeros in Lagrangian Hessian.............:        0

Total number of variables............................:       42
                     variables with only lower bounds:        0
                variables with lower and upper bounds:       42
                     variables with only upper bounds:        0
Total number of equality constraints.................:        0
Total number of inequality constraints...............:        1
        inequality constraints with only lower bounds:        0
   inequality constraints with lower and upper bounds:        0
        inequality constraints with only upper bounds:        1

iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
   0 -2.5831925e+02 4.90e-01 1.12e+00   0.0 0.00e+00    -  0.00e+00 0.00e+00   0
   1 -2.4597102e+02 2.16e-01 2.13e+01  -0.3 4.84e-01    -  1.00e+00 5.68e-01f  1
   2 -2.3214378e+02 0.00e+00 3.03e-01  -0.5 2.84e-01    -  1.00e+00 1.00e+00h  1
   3 -2.3258589e+02 0.00e+00 3.34e-02  -1.7 4.93e-02    -  9.59e-01 1.00e+00f  1
   4 -2.3268254e+02 0.00e+00 1.03e-02  -3.1 2.45e-02    -  9.98e-01 1.00e+00f  1
   5 -2.3268360e+02 0.00e+00 1.15e-03  -4.8 3.87e-03    -  9.97e-01 1.00e+00f  1
   6 -2.3268361e+02 0.00e+00 1.54e-04  -6.8 4.27e-04    -  1.00e+00 1.00e+00f  1
   7 -2.3268361e+02 0.00e+00 7.05e-05  -8.8 5.98e-05    -  1.00e+00 1.00e+00f  1
   8 -2.3268361e+02 0.00e+00 8.16e-07 -11.0 1.82e-05    -  1.00e+00 1.00e+00h  1
   9 -2.3268361e+02 0.00e+00 8.93e-08 -11.0 2.35e-07    -  1.00e+00 1.00e+00h  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  10 -2.3268361e+02 0.00e+00 1.32e-08 -11.0 2.83e-08    -  1.00e+00 1.00e+00h  1
  11 -2.3268361e+02 0.00e+00 9.09e-10 -11.0 5.00e-09    -  1.00e+00 1.00e+00h  1

Number of Iterations....: 11

                                   (scaled)                 (unscaled)
Objective...............:  -2.3268361058670968e+02   -2.3268361058670968e+02
Dual infeasibility......:   9.0860468237565487e-10    9.0860468237565487e-10
Constraint violation....:   0.0000000000000000e+00    0.0000000000000000e+00
Variable bound violation:   0.0000000000000000e+00    0.0000000000000000e+00
Complementarity.........:   1.0000000000000001e-11    1.0000000000000001e-11
Overall NLP error.......:   9.0860468237565487e-10    9.0860468237565487e-10


Number of objective function evaluations             = 12
Number of objective gradient evaluations             = 12
Number of equality constraint evaluations            = 0
Number of inequality constraint evaluations          = 12
Number of equality constraint Jacobian evaluations   = 0
Number of inequality constraint Jacobian evaluations = 12
Number of Lagrangian Hessian evaluations             = 0
Total seconds in IPOPT                               = 9.887

EXIT: Optimal Solution Found.
This is Ipopt version 3.14.19, running with linear solver MUMPS 5.9.0.

Number of nonzeros in equality constraint Jacobian...:        0
Number of nonzeros in inequality constraint Jacobian.:       42
Number of nonzeros in Lagrangian Hessian.............:        0

Total number of variables............................:       42
                     variables with only lower bounds:        0
                variables with lower and upper bounds:       42
                     variables with only upper bounds:        0
Total number of equality constraints.................:        0
Total number of inequality constraints...............:        1
        inequality constraints with only lower bounds:        0
   inequality constraints with lower and upper bounds:        0
        inequality constraints with only upper bounds:        1

iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
   0 -2.3259806e+01 0.00e+00 1.55e-01   0.0 0.00e+00    -  0.00e+00 0.00e+00   0
   1 -2.3304391e+01 5.86e-03 2.00e+00  -1.7 2.45e-02    -  9.97e-01 4.04e-01h  1
   2 -2.3258771e+01 0.00e+00 1.54e-04  -3.0 6.64e-03    -  1.00e+00 1.00e+00h  1
   3 -2.3259806e+01 0.00e+00 2.79e-04  -9.1 2.29e-03    -  9.95e-01 1.00e+00f  1
   4 -2.3259813e+01 0.00e+00 2.21e-05  -7.5 1.07e-03    -  1.00e+00 1.00e+00f  1
   5 -2.3259813e+01 0.00e+00 8.83e-06 -11.0 8.01e-05    -  1.00e+00 1.00e+00f  1
   6 -2.3259813e+01 0.00e+00 8.90e-07 -11.0 2.14e-05    -  1.00e+00 1.00e+00h  1
   7 -2.3259813e+01 0.00e+00 2.64e-07 -11.0 2.64e-06    -  1.00e+00 1.00e+00h  1
   8 -2.3259813e+01 0.00e+00 1.07e-09 -11.0 1.11e-06    -  1.00e+00 1.00e+00h  1

Number of Iterations....: 8

                                   (scaled)                 (unscaled)
Objective...............:  -2.3259812936628055e+01   -2.3259812936628055e+01
Dual infeasibility......:   1.0679504172484743e-09    1.0679504172484743e-09
Constraint violation....:   0.0000000000000000e+00    0.0000000000000000e+00
Variable bound violation:   0.0000000000000000e+00    0.0000000000000000e+00
Complementarity.........:   1.0000000000003840e-11    1.0000000000003840e-11
Overall NLP error.......:   1.0679504172484743e-09    1.0679504172484743e-09


Number of objective function evaluations             = 9
Number of objective gradient evaluations             = 9
Number of equality constraint evaluations            = 0
Number of inequality constraint evaluations          = 9
Number of equality constraint Jacobian evaluations   = 0
Number of inequality constraint Jacobian evaluations = 9
Number of Lagrangian Hessian evaluations             = 0
Total seconds in IPOPT                               = 0.017

EXIT: Optimal Solution Found.
This is Ipopt version 3.14.19, running with linear solver MUMPS 5.9.0.

Number of nonzeros in equality constraint Jacobian...:        0
Number of nonzeros in inequality constraint Jacobian.:       42
Number of nonzeros in Lagrangian Hessian.............:        0

Total number of variables............................:       42
                     variables with only lower bounds:        0
                variables with lower and upper bounds:       42
                     variables with only upper bounds:        0
Total number of equality constraints.................:        0
Total number of inequality constraints...............:        1
        inequality constraints with only lower bounds:        0
   inequality constraints with lower and upper bounds:        0
        inequality constraints with only upper bounds:        1

iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
   0 -2.3174405e+00 0.00e+00 5.43e-03   0.0 0.00e+00    -  0.00e+00 0.00e+00   0
   1 -2.3168985e+00 0.00e+00 7.84e-04  -6.3 9.31e-03    -  9.88e-01 1.00e+00h  1
   2 -2.3173917e+00 0.00e+00 6.02e-05  -8.2 7.77e-03    -  9.79e-01 1.00e+00f  1
   3 -2.3175081e+00 0.00e+00 1.66e-05  -5.8 1.29e-02    -  9.98e-01 1.00e+00f  1
   4 -2.3175100e+00 0.00e+00 3.62e-06 -11.0 1.01e-03    -  9.99e-01 1.00e+00f  1
   5 -2.3175100e+00 0.00e+00 1.17e-06 -11.0 1.29e-04    -  1.00e+00 1.00e+00h  1
   6 -2.3175100e+00 0.00e+00 7.63e-08 -11.0 2.93e-05    -  1.00e+00 1.00e+00h  1
   7 -2.3175100e+00 0.00e+00 1.59e-08 -11.0 2.45e-06    -  1.00e+00 1.00e+00h  1
   8 -2.3175100e+00 0.00e+00 1.23e-09 -11.0 6.43e-07    -  1.00e+00 1.00e+00h  1

Number of Iterations....: 8

                                   (scaled)                 (unscaled)
Objective...............:  -2.3175099519889897e+00   -2.3175099519889897e+00
Dual infeasibility......:   1.2330595622710363e-09    1.2330595622710363e-09
Constraint violation....:   0.0000000000000000e+00    0.0000000000000000e+00
Variable bound violation:   0.0000000000000000e+00    0.0000000000000000e+00
Complementarity.........:   1.0000000000000085e-11    1.0000000000000085e-11
Overall NLP error.......:   1.2330595622710363e-09    1.2330595622710363e-09


Number of objective function evaluations             = 9
Number of objective gradient evaluations             = 9
Number of equality constraint evaluations            = 0
Number of inequality constraint evaluations          = 9
Number of equality constraint Jacobian evaluations   = 0
Number of inequality constraint Jacobian evaluations = 9
Number of Lagrangian Hessian evaluations             = 0
Total seconds in IPOPT                               = 0.017

EXIT: Optimal Solution Found.
This is Ipopt version 3.14.19, running with linear solver MUMPS 5.9.0.

Number of nonzeros in equality constraint Jacobian...:        0
Number of nonzeros in inequality constraint Jacobian.:       42
Number of nonzeros in Lagrangian Hessian.............:        0

Total number of variables............................:       42
                     variables with only lower bounds:        0
                variables with lower and upper bounds:       42
                     variables with only upper bounds:        0
Total number of equality constraints.................:        0
Total number of inequality constraints...............:        1
        inequality constraints with only lower bounds:        0
   inequality constraints with lower and upper bounds:        0
        inequality constraints with only upper bounds:        1

iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
   0 -2.2334622e-01 0.00e+00 2.14e-02   0.0 0.00e+00    -  0.00e+00 0.00e+00   0
   1 -2.2307990e-01 0.00e+00 3.26e-03  -6.3 7.13e-03    -  9.82e-01 1.00e+00h  1
   2 -2.2316310e-01 0.00e+00 8.30e-05  -8.1 8.05e-03    -  9.77e-01 1.00e+00f  1
   3 -2.2371842e-01 0.00e+00 7.40e-05  -4.8 6.88e-02    -  9.93e-01 1.00e+00f  1
   4 -2.2382086e-01 0.00e+00 3.35e-05  -6.3 3.97e-02    -  1.00e+00 1.00e+00f  1
   5 -2.2382203e-01 0.00e+00 5.35e-06  -7.9 9.53e-03    -  1.00e+00 1.00e+00f  1
   6 -2.2382206e-01 0.00e+00 1.23e-06  -9.7 1.75e-03    -  1.00e+00 1.00e+00f  1
   7 -2.2382206e-01 0.00e+00 5.88e-07 -11.0 3.19e-04    -  1.00e+00 1.00e+00h  1
   8 -2.2382206e-01 0.00e+00 1.69e-08 -11.0 1.00e-04    -  1.00e+00 1.00e+00h  1
   9 -2.2382206e-01 0.00e+00 4.77e-09 -11.0 3.28e-06    -  1.00e+00 1.00e+00h  1

Number of Iterations....: 9

                                   (scaled)                 (unscaled)
Objective...............:  -2.2382205830251009e-01   -2.2382205830251009e-01
Dual infeasibility......:   4.7684535055537021e-09    4.7684535055537021e-09
Constraint violation....:   0.0000000000000000e+00    0.0000000000000000e+00
Variable bound violation:   0.0000000000000000e+00    0.0000000000000000e+00
Complementarity.........:   1.0000000000001235e-11    1.0000000000001235e-11
Overall NLP error.......:   4.7684535055537021e-09    4.7684535055537021e-09


Number of objective function evaluations             = 10
Number of objective gradient evaluations             = 10
Number of equality constraint evaluations            = 0
Number of inequality constraint evaluations          = 10
Number of equality constraint Jacobian evaluations   = 0
Number of inequality constraint Jacobian evaluations = 10
Number of Lagrangian Hessian evaluations             = 0
Total seconds in IPOPT                               = 0.018

EXIT: Optimal Solution Found.
This is Ipopt version 3.14.19, running with linear solver MUMPS 5.9.0.

Number of nonzeros in equality constraint Jacobian...:        0
Number of nonzeros in inequality constraint Jacobian.:       42
Number of nonzeros in Lagrangian Hessian.............:        0

Total number of variables............................:       42
                     variables with only lower bounds:        0
                variables with lower and upper bounds:       42
                     variables with only upper bounds:        0
Total number of equality constraints.................:        0
Total number of inequality constraints...............:        1
        inequality constraints with only lower bounds:        0
   inequality constraints with lower and upper bounds:        0
        inequality constraints with only upper bounds:        1

iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
   0 -1.4819689e-02 0.00e+00 2.30e-02   0.0 0.00e+00    -  0.00e+00 0.00e+00   0
   1 -1.4757724e-02 0.00e+00 3.58e-03  -6.3 7.04e-03    -  9.79e-01 1.00e+00h  1
   2 -1.4769341e-02 0.00e+00 3.04e-05  -4.1 2.15e-03    -  9.92e-01 1.00e+00f  1
   3 -1.5440986e-02 0.00e+00 5.54e-05  -5.0 9.56e-02    -  9.27e-01 1.00e+00f  1
   4 -1.5889369e-02 0.00e+00 5.99e-05  -6.0 1.13e-01    -  9.93e-01 1.00e+00f  1
   5 -1.5949831e-02 0.00e+00 3.61e-05  -7.1 4.62e-02    -  1.00e+00 9.30e-01f  1
   6 -1.5953073e-02 0.00e+00 9.42e-06  -7.6 1.26e-02    -  1.00e+00 1.00e+00f  1
   7 -1.5953935e-02 0.00e+00 4.73e-06  -8.5 5.36e-03    -  1.00e+00 1.00e+00f  1
   8 -1.5954027e-02 0.00e+00 1.44e-06 -10.4 1.52e-03    -  1.00e+00 9.92e-01f  1
   9 -1.5954029e-02 0.00e+00 6.83e-07 -11.0 9.22e-04    -  1.00e+00 1.00e+00h  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  10 -1.5954029e-02 0.00e+00 1.49e-07 -11.0 6.95e-04    -  1.00e+00 1.00e+00h  1
  11 -1.5954029e-02 0.00e+00 5.86e-08 -11.0 1.10e-04    -  1.00e+00 1.00e+00h  1
  12 -1.5954029e-02 0.00e+00 8.04e-09 -11.0 2.73e-05    -  1.00e+00 1.00e+00h  1

Number of Iterations....: 12

                                   (scaled)                 (unscaled)
Objective...............:  -1.5954029329887522e-02   -1.5954029329887522e-02
Dual infeasibility......:   8.0383938352728991e-09    8.0383938352728991e-09
Constraint violation....:   0.0000000000000000e+00    0.0000000000000000e+00
Variable bound violation:   0.0000000000000000e+00    0.0000000000000000e+00
Complementarity.........:   9.9999999999999994e-12    9.9999999999999994e-12
Overall NLP error.......:   8.0383938352728991e-09    8.0383938352728991e-09


Number of objective function evaluations             = 13
Number of objective gradient evaluations             = 13
Number of equality constraint evaluations            = 0
Number of inequality constraint evaluations          = 13
Number of equality constraint Jacobian evaluations   = 0
Number of inequality constraint Jacobian evaluations = 13
Number of Lagrangian Hessian evaluations             = 0
Total seconds in IPOPT                               = 0.024

EXIT: Optimal Solution Found.
This is Ipopt version 3.14.19, running with linear solver MUMPS 5.9.0.

Number of nonzeros in equality constraint Jacobian...:        0
Number of nonzeros in inequality constraint Jacobian.:       42
Number of nonzeros in Lagrangian Hessian.............:        0

Total number of variables............................:       42
                     variables with only lower bounds:        0
                variables with lower and upper bounds:       42
                     variables with only upper bounds:        0
Total number of equality constraints.................:        0
Total number of inequality constraints...............:        1
        inequality constraints with only lower bounds:        0
   inequality constraints with lower and upper bounds:        0
        inequality constraints with only upper bounds:        1

iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
   0  4.3397036e-03 0.00e+00 2.32e-02   0.0 0.00e+00    -  0.00e+00 0.00e+00   0
   1  4.3538233e-03 0.00e+00 3.00e-03  -6.3 7.74e-03    -  9.73e-01 1.00e+00h  1
   2  4.3498295e-03 0.00e+00 3.29e-05  -7.9 8.23e-04    -  9.89e-01 1.00e+00f  1
   3  4.1432178e-03 0.00e+00 2.48e-06  -9.8 4.73e-02    -  9.49e-01 1.00e+00f  1
   4  3.9362369e-03 0.00e+00 1.35e-05  -6.6 7.31e-02    -  1.00e+00 8.35e-01f  1
   5  3.9463892e-03 0.00e+00 6.74e-06  -6.3 1.59e-02    -  9.77e-01 1.00e+00f  1
   6  3.9409456e-03 0.00e+00 2.15e-06  -6.3 4.48e-03    -  1.00e+00 1.00e+00f  1
   7  3.9318881e-03 0.00e+00 2.05e-06  -9.0 3.64e-03    -  9.98e-01 9.91e-01f  1
   8  3.9318541e-03 0.00e+00 4.07e-07  -9.7 1.38e-03    -  1.00e+00 1.00e+00f  1
   9  3.9318503e-03 0.00e+00 3.30e-08 -11.0 3.07e-04    -  1.00e+00 1.00e+00h  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  10  3.9318503e-03 0.00e+00 5.29e-09 -11.0 4.64e-05    -  1.00e+00 1.00e+00h  1

Number of Iterations....: 10

                                   (scaled)                 (unscaled)
Objective...............:   3.9318503221212149e-03    3.9318503221212149e-03
Dual infeasibility......:   5.2873032923090090e-09    5.2873032923090090e-09
Constraint violation....:   0.0000000000000000e+00    0.0000000000000000e+00
Variable bound violation:   0.0000000000000000e+00    0.0000000000000000e+00
Complementarity.........:   1.0000171411304677e-11    1.0000171411304677e-11
Overall NLP error.......:   5.2873032923090090e-09    5.2873032923090090e-09


Number of objective function evaluations             = 11
Number of objective gradient evaluations             = 11
Number of equality constraint evaluations            = 0
Number of inequality constraint evaluations          = 11
Number of equality constraint Jacobian evaluations   = 0
Number of inequality constraint Jacobian evaluations = 11
Number of Lagrangian Hessian evaluations             = 0
Total seconds in IPOPT                               = 0.063

EXIT: Optimal Solution Found.
This is Ipopt version 3.14.19, running with linear solver MUMPS 5.9.0.

Number of nonzeros in equality constraint Jacobian...:        0
Number of nonzeros in inequality constraint Jacobian.:       42
Number of nonzeros in Lagrangian Hessian.............:        0

Total number of variables............................:       42
                     variables with only lower bounds:        0
                variables with lower and upper bounds:       42
                     variables with only upper bounds:        0
Total number of equality constraints.................:        0
Total number of inequality constraints...............:        1
        inequality constraints with only lower bounds:        0
   inequality constraints with lower and upper bounds:        0
        inequality constraints with only upper bounds:        1

iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
   0  5.9519383e-03 0.00e+00 2.32e-02   0.0 0.00e+00    -  0.00e+00 0.00e+00   0
   1  5.9536535e-03 0.00e+00 1.53e-03  -6.3 4.95e-03    -  9.79e-01 1.00e+00h  1
   2  5.9523564e-03 0.00e+00 1.59e-05  -8.0 3.48e-04    -  9.90e-01 1.00e+00f  1
   3  5.9093991e-03 0.00e+00 9.57e-07 -10.0 8.11e-03    -  9.91e-01 1.00e+00f  1
   4  5.8897056e-03 0.00e+00 1.09e-05  -7.3 4.68e-02    -  8.96e-01 1.00e+00f  1
   5  5.8863722e-03 0.00e+00 2.56e-04  -7.2 1.58e-01    -  1.00e+00 1.00e+00f  1
   6  5.8980191e-03 0.00e+00 4.69e-05  -6.2 6.48e-02    -  1.00e+00 1.00e+00f  1
   7  5.8951986e-03 0.00e+00 1.67e-05  -6.3 1.05e-01    -  1.00e+00 1.00e+00f  1
   8  5.8948885e-03 0.00e+00 1.44e-05  -6.3 3.54e-02    -  1.00e+00 2.50e-01f  3
   9  5.8946167e-03 0.00e+00 1.23e-05  -6.3 1.06e-02    -  1.00e+00 1.00e+00f  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  10  5.8942760e-03 0.00e+00 7.90e-06  -6.3 9.82e-03    -  1.00e+00 1.00e+00f  1
  11  5.8942199e-03 0.00e+00 7.19e-06  -6.3 4.38e-03    -  1.00e+00 1.00e+00f  1
  12  5.8942191e-03 0.00e+00 1.71e-06  -6.3 3.95e-03    -  1.00e+00 1.00e+00f  1
  13  5.8830929e-03 0.00e+00 1.50e-05  -9.0 4.33e-02    -  8.63e-01 9.89e-01f  1
  14  5.8848401e-03 0.00e+00 1.09e-04  -7.3 7.36e-02    -  9.99e-01 1.00e+00f  1
  15  5.8838141e-03 0.00e+00 1.58e-05  -7.4 3.11e-02    -  5.87e-01 1.00e+00f  1
  16  5.8835513e-03 0.00e+00 5.56e-06  -7.4 1.56e-02    -  1.00e+00 1.00e+00f  1
  17  5.8835411e-03 0.00e+00 2.46e-06  -7.4 1.04e-02    -  1.00e+00 1.00e+00f  1
  18  5.8835389e-03 0.00e+00 3.52e-06  -7.4 5.97e-03    -  1.00e+00 1.00e+00H  1
  19  5.8835293e-03 0.00e+00 1.02e-06  -7.4 2.98e-03    -  1.00e+00 1.00e+00f  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  20  5.8835310e-03 0.00e+00 4.34e-07  -7.4 2.10e-03    -  1.00e+00 1.00e+00h  1
  21  5.8835291e-03 0.00e+00 1.34e-06  -7.4 4.88e-04    -  1.00e+00 1.00e+00h  1
  22  5.8835302e-03 0.00e+00 3.86e-08  -7.4 3.90e-04    -  1.00e+00 1.00e+00h  1
  23  5.8827373e-03 0.00e+00 8.36e-07  -9.0 4.24e-03    -  1.00e+00 1.00e+00f  1
  24  5.8827252e-03 0.00e+00 4.84e-06 -10.6 7.00e-03    -  1.00e+00 1.00e+00f  1
  25  5.8827218e-03 0.00e+00 2.05e-06 -10.8 4.95e-03    -  1.00e+00 5.00e-01h  2
  26  5.8827155e-03 0.00e+00 3.20e-07 -11.0 3.72e-03    -  1.00e+00 1.00e+00h  1
  27  5.8827155e-03 0.00e+00 1.31e-07 -11.0 1.17e-03    -  1.00e+00 2.50e-01h  3
  28  5.8827154e-03 0.00e+00 3.25e-08 -11.0 5.47e-04    -  1.00e+00 1.00e+00h  1
  29  5.8827154e-03 0.00e+00 1.30e-07 -11.0 1.39e-04    -  1.00e+00 1.00e+00H  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  30  5.8827154e-03 0.00e+00 1.49e-08 -11.0 1.51e-04    -  1.00e+00 1.00e+00h  1
  31  5.8827154e-03 0.00e+00 4.37e-08 -11.0 3.90e-05    -  1.00e+00 1.00e+00h  1
  32  5.8827154e-03 0.00e+00 4.14e-09 -11.0 2.26e-05    -  1.00e+00 1.00e+00h  1

Number of Iterations....: 32

                                   (scaled)                 (unscaled)
Objective...............:   5.8827154104593949e-03    5.8827154104593949e-03
Dual infeasibility......:   4.1401101236623490e-09    4.1401101236623490e-09
Constraint violation....:   0.0000000000000000e+00    0.0000000000000000e+00
Variable bound violation:   0.0000000000000000e+00    0.0000000000000000e+00
Complementarity.........:   1.0000000013383056e-11    1.0000000013383056e-11
Overall NLP error.......:   4.1401101236623490e-09    4.1401101236623490e-09


Number of objective function evaluations             = 43
Number of objective gradient evaluations             = 33
Number of equality constraint evaluations            = 0
Number of inequality constraint evaluations          = 43
Number of equality constraint Jacobian evaluations   = 0
Number of inequality constraint Jacobian evaluations = 33
Number of Lagrangian Hessian evaluations             = 0
Total seconds in IPOPT                               = 0.067

EXIT: Optimal Solution Found.
This is Ipopt version 3.14.19, running with linear solver MUMPS 5.9.0.

Number of nonzeros in equality constraint Jacobian...:        0
Number of nonzeros in inequality constraint Jacobian.:       42
Number of nonzeros in Lagrangian Hessian.............:        0

Total number of variables............................:       42
                     variables with only lower bounds:        0
                variables with lower and upper bounds:       42
                     variables with only upper bounds:        0
Total number of equality constraints.................:        0
Total number of inequality constraints...............:        1
        inequality constraints with only lower bounds:        0
   inequality constraints with lower and upper bounds:        0
        inequality constraints with only upper bounds:        1

iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
   0  6.1339927e-03 0.00e+00 2.32e-02   0.0 0.00e+00    -  0.00e+00 0.00e+00   0
   1  6.1354980e-03 0.00e+00 2.73e-03  -6.3 5.02e-03    -  9.79e-01 1.00e+00h  1
   2  6.1342220e-03 0.00e+00 2.91e-05  -8.0 4.10e-04    -  9.89e-01 1.00e+00f  1
   3  6.1149771e-03 0.00e+00 1.31e-06  -5.8 7.68e-03    -  1.00e+00 1.00e+00f  1
   4  6.0751690e-03 0.00e+00 5.84e-06  -7.0 1.86e-02    -  9.69e-01 1.00e+00f  1
Warning: Cutting back alpha due to evaluation error
   5  6.0729703e-03 0.00e+00 1.02e-05  -8.1 8.65e-02    -  9.99e-01 5.00e-01f  2
Warning: Cutting back alpha due to evaluation error
   6  6.0710986e-03 0.00e+00 2.50e-05  -8.0 6.94e-01    -  1.00e+00 1.75e-01f  2
   7  6.0707728e-03 0.00e+00 1.89e-05  -7.5 2.74e-01    -  9.99e-01 1.02e-01f  2
Warning: Cutting back alpha due to evaluation error
   8  6.0701677e-03 0.00e+00 5.88e-05  -7.7 4.71e-02    -  1.00e+00 4.59e-01f  2
   9  6.0704174e-03 0.00e+00 2.35e-05  -7.1 5.52e-02    -  1.00e+00 2.05e-01f  3
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  10  6.0706560e-03 0.00e+00 5.99e-06  -7.2 2.33e-02    -  1.00e+00 1.00e+00f  1
  11  6.0706473e-03 0.00e+00 6.81e-06  -7.2 8.14e-03    -  1.00e+00 2.50e-01f  3
  12  6.0706078e-03 0.00e+00 5.23e-06  -7.2 1.50e-03    -  1.00e+00 1.00e+00f  1
  13  6.0705966e-03 0.00e+00 2.83e-06  -7.2 7.94e-04    -  1.00e+00 1.00e+00h  1
  14  6.0705832e-03 0.00e+00 1.17e-06  -7.2 1.20e-03    -  1.00e+00 1.00e+00h  1
  15  6.0705880e-03 0.00e+00 4.21e-07  -7.2 6.00e-04    -  1.00e+00 1.00e+00h  1
  16  6.0692743e-03 0.00e+00 1.09e-05  -9.0 4.22e-02    -  9.49e-01 1.00e+00f  1
Warning: Cutting back alpha due to evaluation error
  17  6.0696533e-03 0.00e+00 5.51e-05  -7.8 8.46e-02    -  1.00e+00 2.64e-01f  2
  18  6.0694770e-03 0.00e+00 1.03e-05  -7.9 2.64e-02    -  9.46e-01 1.00e+00f  1
Warning: Cutting back alpha due to evaluation error
  19  6.0694715e-03 0.00e+00 3.09e-06  -7.9 2.25e-02    -  1.00e+00 1.25e-01f  4
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  20  6.0694712e-03 0.00e+00 3.68e-06  -7.9 5.48e-03    -  1.00e+00 2.50e-01h  3
  21  6.0694652e-03 0.00e+00 3.29e-06  -7.9 4.43e-03    -  1.00e+00 1.00e+00h  1
  22  6.0694974e-03 0.00e+00 1.29e-05  -7.9 1.10e-02    -  1.00e+00 5.00e-01h  2
  23  6.0694645e-03 0.00e+00 1.55e-06  -7.9 5.07e-03    -  1.00e+00 1.00e+00f  1
  24  6.0694806e-03 0.00e+00 4.38e-06  -7.9 4.70e-03    -  1.00e+00 1.00e+00H  1
  25  6.0694648e-03 0.00e+00 1.48e-06  -7.9 3.66e-03    -  1.00e+00 1.00e+00f  1
  26  6.0694644e-03 0.00e+00 1.18e-06  -7.9 3.05e-03    -  1.00e+00 1.25e-01h  4
  27  6.0694636e-03 0.00e+00 2.31e-07  -7.9 2.72e-04    -  1.00e+00 1.00e+00h  1
  28  6.0694639e-03 0.00e+00 8.75e-07  -7.9 1.50e-04    -  1.00e+00 5.00e-01h  2
  29  6.0694637e-03 0.00e+00 8.08e-08  -7.9 5.40e-05    -  1.00e+00 1.00e+00h  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  30  6.0692482e-03 0.00e+00 1.31e-06  -9.0 3.36e-03    -  1.00e+00 1.00e+00f  1
  31  6.0692461e-03 0.00e+00 1.90e-06 -10.3 4.09e-02    -  1.00e+00 6.25e-02f  5
  32  6.0692303e-03 0.00e+00 3.53e-06 -10.7 4.05e-03    -  1.00e+00 1.00e+00f  1
  33  6.0692300e-03 0.00e+00 2.63e-06 -11.0 2.67e-02    -  1.00e+00 1.25e-01f  4
  34  6.0692478e-03 0.00e+00 9.69e-06 -11.0 2.71e-03    -  1.00e+00 1.00e+00h  1
  35  6.0692267e-03 0.00e+00 7.53e-07 -11.0 3.08e-03    -  1.00e+00 1.00e+00f  1
  36  6.0692272e-03 0.00e+00 2.98e-06 -11.0 1.47e-03    -  1.00e+00 1.00e+00h  1
  37  6.0692271e-03 0.00e+00 1.50e-06 -11.0 6.18e-03    -  1.00e+00 6.25e-02h  5
  38  6.0692270e-03 0.00e+00 1.41e-06 -11.0 1.23e-03    -  1.00e+00 1.00e+00h  1
  39  6.0692269e-03 0.00e+00 1.31e-06 -11.0 9.18e-04    -  1.00e+00 5.00e-01h  2
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  40  6.0692265e-03 0.00e+00 3.93e-07 -11.0 6.23e-04    -  1.00e+00 1.00e+00h  1
  41  6.0692264e-03 0.00e+00 5.86e-07 -11.0 4.60e-04    -  1.00e+00 2.50e-01h  3
  42  6.0692264e-03 0.00e+00 7.12e-08 -11.0 8.96e-05    -  1.00e+00 1.00e+00h  1
  43  6.0692264e-03 0.00e+00 7.38e-08 -11.0 3.00e-05    -  1.00e+00 1.00e+00h  1
  44  6.0692264e-03 0.00e+00 6.15e-08 -11.0 1.29e-05    -  1.00e+00 1.00e+00h  1
  45  6.0692264e-03 0.00e+00 3.96e-08 -11.0 3.78e-05    -  1.00e+00 5.00e-01h  2
  46  6.0692264e-03 0.00e+00 1.57e-08 -11.0 1.23e-05    -  1.00e+00 1.00e+00h  1
  47  6.0692264e-03 0.00e+00 1.27e-07 -11.0 5.94e-05    -  1.00e+00 1.00e+00h  1
  48  6.0692264e-03 0.00e+00 4.18e-08 -11.0 2.38e-05    -  1.00e+00 1.00e+00h  1
  49  6.0692264e-03 0.00e+00 6.14e-08 -11.0 1.71e-05    -  1.00e+00 1.00e+00h  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  50  6.0692264e-03 0.00e+00 6.38e-08 -11.0 1.28e-05    -  1.00e+00 1.00e+00H  1
  51  6.0692264e-03 0.00e+00 1.43e-08 -11.0 1.03e-05    -  1.00e+00 1.00e+00h  1
  52  6.0692264e-03 0.00e+00 1.25e-08 -11.0 1.05e-05    -  1.00e+00 1.00e+00h  1
  53  6.0692264e-03 0.00e+00 2.67e-08 -11.0 1.50e-05    -  1.00e+00 1.00e+00h  1
  54  6.0692264e-03 0.00e+00 1.53e-08 -11.0 2.75e-05    -  1.00e+00 2.50e-01h  3

Number of Iterations....: 54

                                   (scaled)                 (unscaled)
Objective...............:   6.0692263975224287e-03    6.0692263975224287e-03
Dual infeasibility......:   1.5267337844452860e-08    1.5267337844452860e-08
Constraint violation....:   0.0000000000000000e+00    0.0000000000000000e+00
Variable bound violation:   0.0000000000000000e+00    0.0000000000000000e+00
Complementarity.........:   1.0006602473331149e-11    1.0006602473331149e-11
Overall NLP error.......:   1.5267337844452860e-08    1.5267337844452860e-08


Number of objective function evaluations             = 112
Number of objective gradient evaluations             = 55
Number of equality constraint evaluations            = 0
Number of inequality constraint evaluations          = 112
Number of equality constraint Jacobian evaluations   = 0
Number of inequality constraint Jacobian evaluations = 55
Number of Lagrangian Hessian evaluations             = 0
Total seconds in IPOPT                               = 0.118

EXIT: Solved To Acceptable Level.
This is Ipopt version 3.14.19, running with linear solver MUMPS 5.9.0.

Number of nonzeros in equality constraint Jacobian...:        0
Number of nonzeros in inequality constraint Jacobian.:       42
Number of nonzeros in Lagrangian Hessian.............:        0

Total number of variables............................:       42
                     variables with only lower bounds:        0
                variables with lower and upper bounds:       42
                     variables with only upper bounds:        0
Total number of equality constraints.................:        0
Total number of inequality constraints...............:        1
        inequality constraints with only lower bounds:        0
   inequality constraints with lower and upper bounds:        0
        inequality constraints with only upper bounds:        1

iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
   0  6.1472663e-03 0.00e+00 2.32e-02   0.0 0.00e+00    -  0.00e+00 0.00e+00   0
   1  6.1485503e-03 0.00e+00 2.96e-03  -6.3 5.48e-03    -  9.78e-01 1.00e+00h  1
   2  6.1473293e-03 0.00e+00 3.52e-05  -8.0 6.86e-04    -  9.88e-01 1.00e+00f  1
   3  6.1491430e-03 0.00e+00 6.86e-06  -5.6 1.87e-02    -  9.97e-01 1.00e+00f  1
   4  6.1563809e-03 0.00e+00 6.03e-05  -5.6 4.86e-01    -  9.06e-01 1.00e+00f  1
   5  6.1554676e-03 0.00e+00 1.12e-05  -5.6 1.13e-01    -  1.00e+00 2.50e-01f  3
   6  6.0970619e-03 0.00e+00 7.96e-06  -8.4 1.30e-01    -  5.54e-01 9.64e-01f  1
   7  6.0971919e-03 0.00e+00 6.22e-05  -6.5 1.82e-01    -  1.00e+00 1.00e+00f  1
   8  6.0947969e-03 0.00e+00 2.10e-05  -6.6 1.25e-01    -  1.00e+00 5.00e-01f  2
Warning: Cutting back alpha due to evaluation error
   9  6.0913079e-03 0.00e+00 3.13e-05  -7.5 9.26e-02    -  1.00e+00 5.00e-01f  2
Warning: Cutting back alpha due to evaluation error
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  10  6.0888456e-03 0.00e+00 1.00e-05  -8.6 1.72e-01    -  1.00e+00 4.16e-01f  2
  11  6.0886541e-03 0.00e+00 4.80e-05  -8.0 1.09e-01    -  1.00e+00 2.24e-01f  2
Warning: Cutting back alpha due to evaluation error
Warning: Cutting back alpha due to evaluation error
  12  6.0879062e-03 0.00e+00 6.22e-05  -9.0 6.38e-02    -  1.00e+00 2.49e-01f  3
  13  6.0933100e-03 0.00e+00 3.30e-05  -6.8 1.91e-01    -  1.00e+00 1.00e+00f  1
  14  6.0929716e-03 0.00e+00 1.87e-05  -6.8 9.74e-02    -  1.00e+00 2.17e-01f  3
  15  6.0914869e-03 0.00e+00 1.36e-05  -6.8 7.31e-02    -  1.00e+00 1.00e+00f  1
Warning: Cutting back alpha due to evaluation error
  16  6.0913617e-03 0.00e+00 1.70e-05  -6.8 6.61e-02    -  7.72e-01 2.24e-01f  3
  17  6.0913125e-03 0.00e+00 2.05e-05  -6.8 8.27e-03    -  1.00e+00 1.00e+00f  1
  18  6.0913150e-03 0.00e+00 4.19e-06  -6.8 5.52e-03    -  1.00e+00 1.00e+00f  1
  19  6.0912725e-03 0.00e+00 1.12e-06  -6.8 1.31e-03    -  1.00e+00 1.00e+00f  1
Warning: Cutting back alpha due to evaluation error
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  20  6.0888646e-03 0.00e+00 4.33e-06  -9.0 8.99e-02    -  8.55e-01 4.96e-01f  2
Warning: Cutting back alpha due to evaluation error
  21  6.0883843e-03 0.00e+00 5.16e-05  -9.0 2.00e-01    -  9.70e-01 2.17e-01f  2
Warning: Cutting back alpha due to evaluation error
Warning: Cutting back alpha due to evaluation error
  22  6.0877868e-03 0.00e+00 3.63e-04  -9.0 7.89e-02    -  7.94e-01 2.50e-01f  3
  23  6.0877761e-03 0.00e+00 2.12e-05  -7.1 7.47e-02    -  1.00e+00 1.10e-01f  3
  24  6.0866953e-03 0.00e+00 6.00e-05 -11.0 2.74e-02    -  8.90e-01 9.67e-01f  1
Warning: Cutting back alpha due to evaluation error
  25  6.0864184e-03 0.00e+00 2.16e-05 -11.0 5.42e-02    -  8.65e-01 3.61e-01f  2
  26  6.0863734e-03 0.00e+00 1.43e-05 -11.0 7.19e-02    -  1.93e-01 4.68e-02f  3
  27  6.0863439e-03 0.00e+00 3.09e-05 -11.0 1.45e-02    -  1.00e+00 5.00e-01f  2
Warning: Cutting back alpha due to evaluation error
  28  6.0863304e-03 0.00e+00 1.32e-05 -11.0 6.07e-02    -  2.88e-01 1.07e-01f  3
  29  6.0865147e-03 0.00e+00 2.37e-05  -8.3 2.10e-02    -  1.00e+00 1.00e+00f  1
Warning: Cutting back alpha due to evaluation error
Warning: Cutting back alpha due to evaluation error
Warning: Cutting back alpha due to evaluation error
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  30  6.0865070e-03 0.00e+00 4.99e-05  -8.3 3.67e-02    -  3.97e-01 3.22e-02f  4
  31  6.0864887e-03 0.00e+00 2.24e-05  -8.3 4.54e-03    -  1.00e+00 5.00e-01f  2
  32  6.0864247e-03 0.00e+00 1.19e-05  -8.3 1.20e-02    -  1.00e+00 1.00e+00f  1
  33  6.0864199e-03 0.00e+00 1.50e-05  -8.3 1.20e-02    -  1.00e+00 1.13e-01f  4
  34  6.0864164e-03 0.00e+00 1.17e-05  -8.3 1.99e-03    -  1.00e+00 1.00e+00f  1
  35  6.0864135e-03 0.00e+00 4.90e-06  -8.3 3.45e-03    -  1.00e+00 1.00e+00f  1
  36  6.0864509e-03 0.00e+00 3.01e-05  -8.3 1.78e-03    -  1.00e+00 1.00e+00h  1
Warning: Cutting back alpha due to evaluation error
  37  6.0864228e-03 0.00e+00 9.74e-05  -8.3 1.87e-03    -  1.00e+00 5.00e-01f  2
Warning: Cutting back alpha due to evaluation error
  38  6.0864097e-03 0.00e+00 6.69e-06  -8.3 1.02e-02    -  3.93e-01 5.90e-02f  5
  39  6.0864079e-03 0.00e+00 2.38e-06  -8.3 5.29e-04    -  1.00e+00 1.00e+00h  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  40  6.0864092e-03 0.00e+00 3.38e-06  -8.3 4.29e-04    -  1.00e+00 1.00e+00H  1
  41  6.0864084e-03 0.00e+00 1.71e-06  -8.3 2.31e-04    -  1.00e+00 1.00e+00h  1
  42  6.0864085e-03 0.00e+00 1.27e-06  -8.3 2.93e-05    -  1.00e+00 1.00e+00h  1
  43  6.0864089e-03 0.00e+00 1.09e-06  -8.3 2.44e-04    -  1.00e+00 1.00e+00h  1
  44  6.0864092e-03 0.00e+00 9.73e-07  -8.3 6.65e-04    -  1.00e+00 2.50e-01h  3
  45  6.0864096e-03 0.00e+00 9.97e-07  -8.3 4.44e-04    -  1.00e+00 5.00e-01h  2
  46  6.0864096e-03 0.00e+00 1.22e-06  -8.3 8.72e-05    -  1.00e+00 5.00e-01h  2
  47  6.0864092e-03 0.00e+00 4.84e-07  -8.3 3.62e-04    -  1.00e+00 5.00e-01h  2
  48  6.0864093e-03 0.00e+00 7.55e-07  -8.3 2.99e-04    -  1.00e+00 2.50e-01h  3
  49  6.0864094e-03 0.00e+00 1.33e-07  -8.3 7.93e-05    -  1.00e+00 1.00e+00h  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  50  6.0864094e-03 0.00e+00 4.39e-07  -8.3 5.79e-05    -  1.00e+00 2.50e-01h  3
  51  6.0864094e-03 0.00e+00 3.14e-08  -8.3 1.05e-05    -  1.00e+00 1.00e+00h  1
  52  6.0863337e-03 0.00e+00 1.95e-06  -9.0 2.01e-03    -  1.00e+00 1.00e+00f  1
Warning: Cutting back alpha due to evaluation error
  53  6.0863380e-03 0.00e+00 1.34e-05  -9.0 2.51e-02    -  1.00e+00 7.20e-02h  4
  54  6.0863366e-03 0.00e+00 1.36e-05  -9.0 3.57e-03    -  1.00e+00 5.00e-01h  2
Warning: Cutting back alpha due to evaluation error
Warning: Cutting back alpha due to evaluation error
  55  6.0863336e-03 0.00e+00 8.69e-06  -9.0 2.93e-03    -  7.02e-01 2.50e-01f  3
  56  6.0863315e-03 0.00e+00 2.85e-06  -9.0 1.15e-03    -  1.00e+00 1.00e+00h  1
  57  6.0863305e-03 0.00e+00 2.41e-06  -9.0 5.59e-04    -  1.00e+00 1.00e+00h  1
  58  6.0863364e-03 0.00e+00 1.67e-05  -9.0 9.61e-04    -  1.00e+00 1.00e+00H  1
  59  6.0863363e-03 0.00e+00 1.64e-05  -9.0 2.22e-03    -  1.00e+00 3.91e-03h  9
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  60  6.0863343e-03 0.00e+00 1.64e-05  -9.0 3.30e-03    -  9.88e-01 6.25e-02h  5
  61  6.0863287e-03 0.00e+00 3.07e-06  -9.0 2.07e-03    -  1.00e+00 5.00e-01h  2
  62  6.0863959e-03 0.00e+00 2.35e-05  -9.6 2.00e-03    -  1.00e+00 1.00e+00h  1
  63  6.0863141e-03 0.00e+00 3.01e-06  -9.7 1.48e-03    -  1.00e+00 1.00e+00f  1
  64  6.0863101e-03 0.00e+00 1.06e-05 -11.0 4.13e-04    -  1.00e+00 1.00e+00h  1
  65  6.0863098e-03 0.00e+00 3.86e-06 -11.0 1.18e-03    -  1.00e+00 5.00e-01h  2
  66  6.0863346e-03 0.00e+00 1.84e-05 -11.0 4.60e-03    -  1.00e+00 1.00e+00H  1
  67  6.0863148e-03 0.00e+00 1.01e-05 -11.0 4.43e-03    -  1.00e+00 1.00e+00f  1
Warning: Cutting back alpha due to evaluation error
Warning: Cutting back alpha due to evaluation error
Warning: Cutting back alpha due to evaluation error
  68  6.0863136e-03 0.00e+00 6.56e-06 -11.0 2.87e-02    -  3.44e-01 6.25e-02f  5
Warning: Cutting back alpha due to evaluation error
  69  6.0863225e-03 0.00e+00 5.67e-05 -11.0 2.10e-03    -  1.00e+00 5.00e-01h  2
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  70  6.0863102e-03 0.00e+00 7.23e-06 -11.0 8.30e-04    -  1.00e+00 1.00e+00f  1
  71  6.0863161e-03 0.00e+00 1.51e-05 -11.0 3.41e-03    -  1.00e+00 1.00e+00H  1
  72  6.0863190e-03 0.00e+00 1.41e-05 -11.0 1.02e-02    -  1.00e+00 2.50e-01h  3
  73  6.0863187e-03 0.00e+00 1.05e-05 -11.0 1.46e-02    -  1.00e+00 8.34e-03h  7
  74  6.0863119e-03 0.00e+00 4.08e-06 -11.0 7.66e-03    -  1.00e+00 5.00e-01f  2
  75  6.0863108e-03 0.00e+00 2.69e-06 -11.0 1.11e-02    -  1.00e+00 6.25e-02f  5
  76  6.0863100e-03 0.00e+00 3.07e-06 -11.0 4.56e-03    -  1.00e+00 5.00e-01h  2
Warning: Cutting back alpha due to evaluation error
Warning: Cutting back alpha due to evaluation error
  77  6.0863099e-03 0.00e+00 4.68e-06 -11.0 1.12e-02    -  1.00e+00 3.12e-02h  5
  78  6.0863099e-03 0.00e+00 3.30e-06 -11.0 3.22e-03    -  9.79e-01 1.25e-01h  4
  79  6.0863099e-03 0.00e+00 3.13e-06 -11.0 5.11e-04    -  1.00e+00 5.00e-01h  2
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  80  6.0863093e-03 0.00e+00 2.43e-06 -11.0 6.74e-04    -  1.00e+00 1.00e+00h  1
  81  6.0863108e-03 0.00e+00 1.19e-05 -11.0 3.55e-03    -  1.00e+00 5.80e-02h  5
  82  6.0863093e-03 0.00e+00 9.33e-07 -11.0 2.31e-04    -  1.00e+00 1.00e+00h  1
  83  6.0863093e-03 0.00e+00 3.14e-07 -11.0 7.69e-06    -  1.00e+00 1.00e+00h  1
  84  6.0863092e-03 0.00e+00 2.52e-07 -11.0 6.57e-06    -  1.00e+00 1.00e+00h  1
  85  6.0863095e-03 0.00e+00 2.21e-06 -11.0 9.21e-04    -  1.00e+00 5.00e-01h  2
  86  6.0863099e-03 0.00e+00 2.68e-06 -11.0 2.47e-04    -  1.00e+00 1.00e+00H  1
  87  6.0863093e-03 0.00e+00 7.05e-07 -11.0 4.11e-04    -  1.00e+00 1.00e+00H  1
  88  6.0863093e-03 0.00e+00 6.19e-07 -11.0 7.65e-04    -  1.00e+00 6.25e-02h  5
  89  6.0863093e-03 0.00e+00 1.25e-06 -11.0 6.05e-04    -  1.00e+00 1.00e+00H  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  90  6.0863093e-03 0.00e+00 1.24e-06 -11.0 7.08e-04    -  1.00e+00 9.54e-07h 21
  91  6.0863093e-03 0.00e+00 1.17e-06 -11.0 7.69e-04    -  1.00e+00 1.49e-08h 27
  92  6.0863092e-03 0.00e+00 8.03e-07 -11.0 1.17e-03    -  1.00e+00 2.50e-01h  3
  93  6.0863092e-03 0.00e+00 7.25e-07 -11.0 7.64e-04    -  1.00e+00 6.25e-02h  5
  94  6.0863092e-03 0.00e+00 5.61e-07 -11.0 1.52e-04    -  1.00e+00 1.00e+00H  1
  95  6.0863092e-03 0.00e+00 1.05e-06 -11.0 1.51e-04    -  1.00e+00 2.50e-01h  3
  96  6.0863092e-03 0.00e+00 2.20e-08 -11.0 6.96e-05    -  1.00e+00 1.00e+00h  1
  97  6.0863092e-03 0.00e+00 9.93e-07 -11.0 1.67e-05    -  1.00e+00 1.00e+00h  1
  98  6.0863092e-03 0.00e+00 7.79e-08 -11.0 2.04e-05    -  1.00e+00 1.00e+00h  1
  99  6.0863092e-03 0.00e+00 2.09e-07 -11.0 2.95e-05    -  1.00e+00 1.00e+00h  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
 100  6.0863092e-03 0.00e+00 2.67e-08 -11.0 3.50e-05    -  1.00e+00 1.00e+00h  1
 101  6.0863092e-03 0.00e+00 1.18e-07 -11.0 2.35e-05    -  1.00e+00 1.00e+00h  1
 102  6.0863092e-03 0.00e+00 1.50e-07 -11.0 4.15e-05    -  1.00e+00 1.00e+00h  1
 103  6.0863092e-03 0.00e+00 1.30e-07 -11.0 1.67e-04    -  1.00e+00 2.50e-01h  3
 104  6.0863096e-03 0.00e+00 4.03e-06 -11.0 4.26e-04    -  1.00e+00 1.00e+00h  1
 105  6.0863096e-03 0.00e+00 4.02e-06 -11.0 4.10e-04    -  1.00e+00 1.53e-05h 17
Warning: Cutting back alpha due to evaluation error
Warning: Cutting back alpha due to evaluation error
 106  6.0863096e-03 0.00e+00 4.37e-06 -11.0 4.23e-03    -  1.00e+00 9.77e-04h 11
 107  6.0863096e-03 0.00e+00 4.11e-06 -11.0 4.60e-04    -  1.00e+00 3.81e-06h 19
 108  6.0863093e-03 0.00e+00 8.36e-07 -11.0 5.00e-04    -  1.00e+00 1.00e+00H  1
 109  6.0863093e-03 0.00e+00 6.82e-07 -11.0 3.18e-04    -  1.00e+00 2.50e-01h  3
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
 110  6.0863092e-03 0.00e+00 4.50e-08 -11.0 1.22e-04    -  1.00e+00 1.00e+00h  1
 111  6.0863092e-03 0.00e+00 4.29e-08 -11.0 2.38e-05    -  1.00e+00 2.50e-01h  3
 112  6.0863092e-03 0.00e+00 7.94e-08 -11.0 4.90e-06    -  1.00e+00 1.00e+00h  1
 113  6.0863092e-03 0.00e+00 2.41e-08 -11.0 1.51e-05    -  1.00e+00 6.25e-02h  5
 114  6.0863092e-03 0.00e+00 8.17e-09 -11.0 1.53e-06    -  1.00e+00 1.00e+00h  1

Number of Iterations....: 114

                                   (scaled)                 (unscaled)
Objective...............:   6.0863092230988179e-03    6.0863092230988179e-03
Dual infeasibility......:   8.1741129043757860e-09    8.1741129043757860e-09
Constraint violation....:   0.0000000000000000e+00    0.0000000000000000e+00
Variable bound violation:   0.0000000000000000e+00    0.0000000000000000e+00
Complementarity.........:   1.0000000765313916e-11    1.0000000765313916e-11
Overall NLP error.......:   8.1741129043757860e-09    8.1741129043757860e-09


Number of objective function evaluations             = 376
Number of objective gradient evaluations             = 115
Number of equality constraint evaluations            = 0
Number of inequality constraint evaluations          = 376
Number of equality constraint Jacobian evaluations   = 0
Number of inequality constraint Jacobian evaluations = 115
Number of Lagrangian Hessian evaluations             = 0
Total seconds in IPOPT                               = 0.301

EXIT: Optimal Solution Found.
This is Ipopt version 3.14.19, running with linear solver MUMPS 5.9.0.

Number of nonzeros in equality constraint Jacobian...:        0
Number of nonzeros in inequality constraint Jacobian.:       42
Number of nonzeros in Lagrangian Hessian.............:        0

Total number of variables............................:       42
                     variables with only lower bounds:        0
                variables with lower and upper bounds:       42
                     variables with only upper bounds:        0
Total number of equality constraints.................:        0
Total number of inequality constraints...............:        1
        inequality constraints with only lower bounds:        0
   inequality constraints with lower and upper bounds:        0
        inequality constraints with only upper bounds:        1

iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
   0  6.1437699e-03 0.00e+00 2.32e-02   0.0 0.00e+00    -  0.00e+00 0.00e+00   0
   1  6.1454853e-03 0.00e+00 4.25e-03  -6.3 7.91e-03    -  9.72e-01 1.00e+00h  1
   2  6.1444539e-03 0.00e+00 5.58e-05  -7.9 8.45e-04    -  9.87e-01 1.00e+00f  1
   3  6.1625989e-03 0.00e+00 1.92e-06  -5.4 1.32e-02    -  1.00e+00 1.00e+00f  1
   4  6.2104947e-03 0.00e+00 1.15e-03  -5.5 8.76e-01    -  4.20e-01 6.91e-01f  1
   5  6.1755449e-03 0.00e+00 5.66e-05  -5.5 1.73e-01    -  3.17e-02 1.00e+00f  1
   6  6.1694232e-03 0.00e+00 2.71e-05  -5.5 6.64e-02    -  1.00e+00 1.00e+00f  1
   7  6.1016420e-03 0.00e+00 1.46e-05  -8.3 7.28e-02    -  6.94e-01 9.48e-01f  1
   8  6.1030181e-03 0.00e+00 2.86e-05  -6.5 1.34e-01    -  9.77e-01 1.00e+00f  1
   9  6.1007068e-03 0.00e+00 3.70e-05  -6.5 1.07e-01    -  1.00e+00 1.00e+00f  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  10  6.0970722e-03 0.00e+00 1.70e-04  -7.2 6.61e-02    -  9.99e-01 1.00e+00f  1
  11  6.0988121e-03 0.00e+00 4.90e-05  -6.7 6.57e-02    -  1.00e+00 1.00e+00f  1
  12  6.0968249e-03 0.00e+00 2.35e-05  -6.8 5.10e-02    -  6.31e-01 5.00e-01f  2
Warning: Cutting back alpha due to evaluation error
  13  6.0942707e-03 0.00e+00 2.32e-05  -7.6 7.56e-02    -  1.00e+00 5.00e-01f  2
Warning: Cutting back alpha due to evaluation error
  14  6.0936857e-03 0.00e+00 3.17e-05  -6.8 3.86e-01    -  1.00e+00 1.21e-01f  3
  15  6.0917955e-03 0.00e+00 2.06e-05  -7.2 1.07e-01    -  1.00e+00 4.57e-01f  2
Warning: Cutting back alpha due to evaluation error
  16  6.0906237e-03 0.00e+00 2.34e-05  -7.8 2.06e-01    -  1.00e+00 2.57e-01f  2
Warning: Cutting back alpha due to evaluation error
Warning: Cutting back alpha due to evaluation error
  17  6.0901015e-03 0.00e+00 1.18e-05  -8.5 2.13e-01    -  1.00e+00 1.10e-01f  3
Warning: Cutting back alpha due to evaluation error
Warning: Cutting back alpha due to evaluation error
Warning: Cutting back alpha due to evaluation error
Warning: Cutting back alpha due to evaluation error
Warning: Cutting back alpha due to evaluation error
  18  6.0900256e-03 0.00e+00 9.62e-06  -9.3 7.31e-02    -  1.00e+00 3.10e-02f  6
  19  6.0899165e-03 0.00e+00 3.38e-05  -7.2 6.18e-02    -  1.00e+00 1.17e-01f  3
Warning: Cutting back alpha due to evaluation error
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  20  6.0889473e-03 0.00e+00 3.10e-05  -8.1 8.97e-02    -  1.00e+00 5.00e-01f  2
Warning: Cutting back alpha due to evaluation error
Warning: Cutting back alpha due to evaluation error
  21  6.0892349e-03 0.00e+00 3.40e-05  -7.1 9.70e-02    -  6.82e-01 1.64e-01f  3
  22  6.0891647e-03 0.00e+00 2.29e-05  -7.4 8.91e-03    -  1.00e+00 5.00e-01f  2
  23  6.0891206e-03 0.00e+00 1.36e-05  -7.4 5.60e-03    -  1.00e+00 1.00e+00f  1
  24  6.0891090e-03 0.00e+00 1.12e-05  -7.4 3.75e-03    -  1.00e+00 1.00e+00f  1
Warning: Cutting back alpha due to evaluation error
Warning: Cutting back alpha due to evaluation error
Warning: Cutting back alpha due to evaluation error
  25  6.0890964e-03 0.00e+00 4.88e-06  -7.4 3.73e-03    -  1.00e+00 1.25e-01h  4
  26  6.0890704e-03 0.00e+00 3.41e-06  -7.4 4.82e-03    -  1.00e+00 5.00e-01h  2
Warning: Cutting back alpha due to evaluation error
Warning: Cutting back alpha due to evaluation error
  27  6.0890626e-03 0.00e+00 1.17e-04  -7.4 2.68e-03    -  1.00e+00 2.50e-01h  3
  28  6.0890606e-03 0.00e+00 2.42e-05  -7.4 3.39e-03    -  1.00e+00 6.25e-02h  5
  29  6.0890654e-03 0.00e+00 1.49e-05  -7.4 1.29e-03    -  1.00e+00 5.00e-01h  2
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  30  6.0890625e-03 0.00e+00 1.44e-05  -7.4 4.74e-04    -  1.00e+00 1.00e+00h  1
  31  6.0890645e-03 0.00e+00 1.01e-05  -7.4 6.39e-04    -  1.00e+00 1.00e+00h  1
  32  6.0890628e-03 0.00e+00 8.23e-06  -7.4 2.23e-04    -  1.00e+00 1.00e+00h  1
  33  6.0890627e-03 0.00e+00 6.25e-06  -7.4 1.36e-04    -  1.00e+00 1.00e+00h  1
  34  6.0890637e-03 0.00e+00 5.56e-06  -7.4 1.12e-04    -  1.00e+00 1.00e+00h  1
  35  6.0890635e-03 0.00e+00 1.84e-06  -7.4 1.58e-03    -  1.00e+00 6.25e-02h  5
  36  6.0890639e-03 0.00e+00 2.08e-07  -7.4 9.78e-05    -  1.00e+00 5.00e-01h  2
Warning: Cutting back alpha due to evaluation error
  37  6.0886253e-03 0.00e+00 5.43e-06  -9.0 7.54e-03    -  1.00e+00 5.00e-01f  2
Warning: Cutting back alpha due to evaluation error
Warning: Cutting back alpha due to evaluation error
  38  6.0885487e-03 0.00e+00 6.88e-05  -8.8 1.45e-01    -  1.00e+00 6.68e-02f  3
Warning: Cutting back alpha due to evaluation error
Warning: Cutting back alpha due to evaluation error
Warning: Cutting back alpha due to evaluation error
Warning: Cutting back alpha due to evaluation error
Warning: Cutting back alpha due to evaluation error
Warning: Cutting back alpha due to evaluation error
  39  6.0885408e-03 0.00e+00 2.13e-04  -8.4 5.57e-02    -  1.00e+00 9.50e-03f  7
Warning: Cutting back alpha due to evaluation error
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  40  6.0884214e-03 0.00e+00 2.72e-05  -8.9 8.68e-02    -  1.00e+00 2.30e-01f  2
Warning: Cutting back alpha due to evaluation error
  41  6.0883426e-03 0.00e+00 2.41e-05  -7.8 1.42e-02    -  1.00e+00 5.00e-01f  2
Warning: Cutting back alpha due to evaluation error
  42  6.0886270e-03 0.00e+00 1.25e-04  -7.5 2.78e-02    -  1.00e+00 5.00e-01f  2
  43  6.0886659e-03 0.00e+00 5.76e-05  -7.7 1.97e-02    -  5.05e-01 1.00e+00f  1
  44  6.0885979e-03 0.00e+00 2.16e-05  -7.7 2.19e-02    -  3.02e-01 1.60e-01f  3
  45  6.0884740e-03 0.00e+00 1.23e-05  -7.7 8.93e-03    -  1.00e+00 1.00e+00f  1
  46  6.0884736e-03 0.00e+00 2.84e-05  -7.7 5.95e-03    -  1.00e+00 6.25e-02f  5
Warning: Cutting back alpha due to evaluation error
  47  6.0884535e-03 0.00e+00 5.92e-06  -7.7 3.46e-03    -  1.00e+00 5.00e-01h  2
  48  6.0884469e-03 0.00e+00 1.88e-05  -7.7 1.31e-02    -  1.00e+00 6.25e-02f  5
Warning: Cutting back alpha due to evaluation error
  49  6.0884371e-03 0.00e+00 2.38e-06  -7.7 2.26e-03    -  1.00e+00 5.00e-01h  2
Warning: Cutting back alpha due to evaluation error
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  50  6.0884272e-03 0.00e+00 2.88e-05  -7.7 3.39e-03    -  1.00e+00 5.00e-01h  2
  51  6.0884258e-03 0.00e+00 1.62e-05  -7.7 1.94e-03    -  1.00e+00 1.00e+00h  1
  52  6.0884247e-03 0.00e+00 1.55e-05  -7.7 2.68e-03    -  1.00e+00 5.00e-01f  2
  53  6.0884278e-03 0.00e+00 5.63e-06  -7.7 1.12e-03    -  1.00e+00 1.00e+00h  1
  54  6.0884152e-03 0.00e+00 5.68e-06  -7.7 3.05e-03    -  1.00e+00 5.00e-01h  2
  55  6.0884570e-03 0.00e+00 2.62e-05  -7.7 2.06e-03    -  1.00e+00 1.00e+00h  1
Warning: Cutting back alpha due to evaluation error
Warning: Cutting back alpha due to evaluation error
  56  6.0884570e-03 0.00e+00 2.59e-05  -7.7 3.39e-03    -  1.00e+00 2.38e-07h 23
  57  6.0884570e-03 0.00e+00 2.55e-05  -7.7 7.70e-03    -  1.00e+00 9.77e-04f 11
Warning: Cutting back alpha due to evaluation error
Warning: Cutting back alpha due to evaluation error
Warning: Cutting back alpha due to evaluation error
Warning: Cutting back alpha due to evaluation error
Warning: Cutting back alpha due to evaluation error
  58  6.0884569e-03 0.00e+00 2.71e-05  -7.7 1.87e-02    -  1.00e+00 3.90e-04f 12
Warning: Cutting back alpha due to evaluation error
  59  6.0884568e-03 0.00e+00 2.50e-05  -7.7 3.50e-03    -  1.00e+00 9.77e-04h 11
Warning: Cutting back alpha due to evaluation error
Warning: Cutting back alpha due to evaluation error
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  60  6.0884567e-03 0.00e+00 2.62e-05  -7.7 3.76e-03    -  1.00e+00 4.88e-04h 12
Warning: Cutting back alpha due to evaluation error
Warning: Cutting back alpha due to evaluation error
  61  6.0884366e-03 0.00e+00 1.88e-05  -7.7 3.68e-03    -  1.00e+00 2.50e-01f  3
  62  6.0884227e-03 0.00e+00 2.48e-05  -7.7 5.85e-03    -  1.00e+00 5.00e-01f  2
Warning: Cutting back alpha due to evaluation error
Warning: Cutting back alpha due to evaluation error
  63  6.0884074e-03 0.00e+00 9.76e-06  -7.7 3.86e-03    -  1.00e+00 2.50e-01f  3
Warning: Cutting back alpha due to evaluation error
Warning: Cutting back alpha due to evaluation error
  64  6.0884048e-03 0.00e+00 4.45e-06  -7.7 8.57e-04    -  1.00e+00 2.50e-01h  3
  65  6.0884229e-03 0.00e+00 2.35e-05  -7.7 2.25e-03    -  1.00e+00 5.00e-01h  2
  66  6.0884074e-03 0.00e+00 1.32e-05  -7.7 7.61e-04    -  1.00e+00 1.00e+00f  1
Warning: Cutting back alpha due to evaluation error
  67  6.0884060e-03 0.00e+00 1.75e-05  -7.7 3.26e-04    -  1.00e+00 5.00e-01h  2
  68  6.0884066e-03 0.00e+00 7.84e-06  -7.7 1.13e-04    -  1.00e+00 1.00e+00h  1
  69  6.0884064e-03 0.00e+00 4.06e-06  -7.7 4.39e-05    -  1.00e+00 1.00e+00h  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  70  6.0884066e-03 0.00e+00 6.85e-06  -7.7 1.37e-04    -  1.00e+00 1.00e+00h  1
  71  6.0884067e-03 0.00e+00 2.90e-06  -7.7 2.22e-04    -  1.00e+00 1.00e+00h  1
  72  6.0884071e-03 0.00e+00 5.76e-06  -7.7 1.51e-04    -  1.00e+00 1.00e+00h  1
  73  6.0884072e-03 0.00e+00 5.36e-07  -7.7 1.55e-04    -  1.00e+00 1.00e+00h  1
  74  6.0884077e-03 0.00e+00 1.24e-05  -7.7 2.60e-04    -  1.00e+00 1.00e+00h  1
  75  6.0884077e-03 0.00e+00 1.16e-05  -7.7 4.32e-04    -  1.00e+00 6.25e-02h  5
  76  6.0884076e-03 0.00e+00 1.09e-05  -7.7 8.97e-04    -  1.00e+00 1.56e-02h  7
  77  6.0884078e-03 0.00e+00 1.03e-06  -7.7 4.18e-04    -  1.00e+00 1.00e+00h  1
Warning: Cutting back alpha due to evaluation error
Warning: Cutting back alpha due to evaluation error
  78  6.0884078e-03 0.00e+00 3.38e-06  -7.7 1.80e-03    -  1.00e+00 6.25e-02h  5
  79  6.0884090e-03 0.00e+00 3.70e-06  -7.7 7.89e-04    -  1.00e+00 5.00e-01h  2
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  80  6.0884090e-03 0.00e+00 4.68e-06  -7.7 4.48e-04    -  1.00e+00 3.12e-02h  6
  81  6.0884092e-03 0.00e+00 7.61e-06  -7.7 6.22e-04    -  1.00e+00 1.00e+00H  1
  82  6.0884090e-03 0.00e+00 2.21e-06  -7.7 3.85e-04    -  1.00e+00 5.00e-01h  2
  83  6.0884082e-03 0.00e+00 3.44e-06  -7.7 6.35e-04    -  1.00e+00 1.00e+00h  1
  84  6.0884086e-03 0.00e+00 2.38e-06  -7.7 2.11e-04    -  1.00e+00 5.00e-01h  2
  85  6.0884091e-03 0.00e+00 2.07e-06  -7.7 8.98e-04    -  1.00e+00 2.50e-01h  3
  86  6.0884083e-03 0.00e+00 3.76e-06  -7.7 6.09e-04    -  1.00e+00 5.00e-01h  2
  87  6.0884086e-03 0.00e+00 8.77e-07  -7.7 1.07e-03    -  1.00e+00 1.25e-01h  4
  88  6.0884086e-03 0.00e+00 2.90e-07  -7.7 8.08e-05    -  1.00e+00 1.00e+00h  1
  89  6.0884086e-03 0.00e+00 2.46e-06  -7.7 5.27e-05    -  1.00e+00 1.00e+00h  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  90  6.0884086e-03 0.00e+00 4.81e-07  -7.7 2.68e-04    -  1.00e+00 5.00e-01h  2
  91  6.0884089e-03 0.00e+00 2.63e-06  -7.7 3.36e-04    -  1.00e+00 2.50e-01h  3
  92  6.0884089e-03 0.00e+00 2.27e-06  -7.7 2.56e-04    -  1.00e+00 1.56e-02h  7
  93  6.0884088e-03 0.00e+00 2.82e-06  -7.7 2.11e-04    -  1.00e+00 1.25e-01h  4
  94  6.0884089e-03 0.00e+00 4.99e-07  -7.7 1.00e-03    -  1.00e+00 6.25e-02h  5
  95  6.0884089e-03 0.00e+00 2.28e-07  -7.7 6.49e-05    -  1.00e+00 5.00e-01h  2
  96  6.0884090e-03 0.00e+00 2.66e-07  -7.7 7.23e-05    -  1.00e+00 2.50e-01h  3
  97  6.0884091e-03 0.00e+00 8.03e-07  -7.7 6.49e-05    -  1.00e+00 2.50e-01h  3
  98  6.0884092e-03 0.00e+00 6.58e-07  -7.7 4.70e-04    -  1.00e+00 1.25e-01h  4
  99  6.0884095e-03 0.00e+00 2.91e-07  -7.7 5.60e-04    -  1.00e+00 1.25e-01h  4
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
 100  6.0884108e-03 0.00e+00 2.21e-06  -7.7 3.14e-04    -  1.00e+00 1.00e+00w  1
 101  6.0884106e-03 0.00e+00 2.95e-05  -7.7 3.24e-04    -  1.00e+00 1.00e+00w  1
 102  6.0884119e-03 0.00e+00 8.03e-06  -7.7 5.99e-04    -  1.00e+00 1.00e+00w  1
 103  6.0884098e-03 0.00e+00 7.33e-07  -7.7 1.46e-03    -  1.00e+00 2.50e-01h  2
 104  6.0884097e-03 0.00e+00 9.35e-07  -7.7 5.40e-05    -  1.00e+00 1.00e+00h  1
 105  6.0884097e-03 0.00e+00 1.82e-07  -7.7 2.23e-04    -  1.00e+00 6.25e-02h  5
 106  6.0880151e-03 0.00e+00 1.43e-05  -9.0 8.03e-03    -  1.00e+00 1.00e+00f  1
Warning: Cutting back alpha due to evaluation error
Warning: Cutting back alpha due to evaluation error
Warning: Cutting back alpha due to evaluation error
Warning: Cutting back alpha due to evaluation error
 107  6.0880063e-03 0.00e+00 1.68e-05  -9.6 1.96e-01    -  1.00e+00 1.24e-02f  5
 108  6.0880039e-03 0.00e+00 3.27e-05  -8.9 1.04e-01    -  1.00e+00 4.83e-02f  3
Warning: Cutting back alpha due to evaluation error
 109  6.0881276e-03 0.00e+00 1.93e-05  -7.9 1.26e-02    -  1.00e+00 5.00e-01f  2
Warning: Cutting back alpha due to evaluation error
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
 110  6.0881144e-03 0.00e+00 5.61e-05  -8.1 1.30e-02    -  1.00e+00 5.00e-01f  2
 111  6.0881126e-03 0.00e+00 1.58e-05  -8.1 2.93e-02    -  1.00e+00 2.50e-01f  3
Warning: Cutting back alpha due to evaluation error
Warning: Cutting back alpha due to evaluation error
 112  6.0881116e-03 0.00e+00 8.25e-06  -8.1 3.03e-03    -  1.00e+00 2.50e-01h  3
 113  6.0880977e-03 0.00e+00 2.45e-05  -8.1 2.76e-02    -  1.00e+00 2.50e-01f  3
 114  6.0880926e-03 0.00e+00 2.25e-05  -8.1 7.16e-03    -  1.00e+00 1.25e-01f  4
Warning: Cutting back alpha due to evaluation error
Warning: Cutting back alpha due to evaluation error
Warning: Cutting back alpha due to evaluation error
 115  6.0880854e-03 0.00e+00 6.62e-06  -8.1 1.30e-02    -  1.00e+00 1.25e-01f  4
Warning: Cutting back alpha due to evaluation error
Warning: Cutting back alpha due to evaluation error
Warning: Cutting back alpha due to evaluation error
Warning: Cutting back alpha due to evaluation error
 116  6.0880848e-03 0.00e+00 4.20e-05  -8.1 2.75e-02    -  1.00e+00 6.25e-02f  5
Warning: Cutting back alpha due to evaluation error
 117  6.0880809e-03 0.00e+00 6.70e-06  -8.1 1.38e-02    -  1.00e+00 3.94e-02f  5
 118  6.0880824e-03 0.00e+00 1.48e-05  -8.1 2.72e-02    -  1.00e+00 1.25e-01h  4
Warning: Cutting back alpha due to evaluation error
Warning: Cutting back alpha due to evaluation error
 119  6.0880764e-03 0.00e+00 9.48e-06  -8.1 2.14e-02    -  1.00e+00 1.02e-01h  4
Warning: Cutting back alpha due to evaluation error
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
 120  6.0880709e-03 0.00e+00 1.53e-05  -8.1 3.13e-02    -  1.00e+00 5.39e-02f  4
 121  6.0880611e-03 0.00e+00 1.35e-05  -8.1 8.89e-03    -  1.00e+00 2.50e-01f  3
Warning: Cutting back alpha due to evaluation error
 122  6.0880526e-03 0.00e+00 6.46e-06  -8.1 7.41e-03    -  1.00e+00 2.50e-01h  3
Warning: Cutting back alpha due to evaluation error
Warning: Cutting back alpha due to evaluation error
Warning: Cutting back alpha due to evaluation error
 123  6.0880511e-03 0.00e+00 1.92e-04  -8.1 6.95e-03    -  1.00e+00 1.25e-01h  4
 124  6.0880497e-03 0.00e+00 6.08e-05  -8.1 1.05e-02    -  1.00e+00 6.25e-02h  5
 125  6.0880510e-03 0.00e+00 2.52e-05  -8.1 6.03e-03    -  1.00e+00 1.25e-01f  4
 126  6.0880384e-03 0.00e+00 2.67e-05  -8.1 3.10e-03    -  1.00e+00 1.00e+00h  1
 127  6.0880381e-03 0.00e+00 2.44e-05  -8.1 1.17e-03    -  1.00e+00 6.25e-02h  5
 128  6.0880430e-03 0.00e+00 1.73e-05  -8.1 1.16e-03    -  1.00e+00 1.00e+00h  1
 129  6.0880499e-03 0.00e+00 9.39e-06  -8.1 5.98e-04    -  1.00e+00 1.00e+00h  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
 130  6.0880407e-03 0.00e+00 4.46e-06  -8.1 4.12e-03    -  1.00e+00 1.00e+00F  1
 131  6.0880420e-03 0.00e+00 1.20e-05  -8.1 2.58e-03    -  1.00e+00 2.50e-01h  3
Warning: Cutting back alpha due to evaluation error
Warning: Cutting back alpha due to evaluation error
Warning: Cutting back alpha due to evaluation error
Warning: Cutting back alpha due to evaluation error
 132  6.0880420e-03 0.00e+00 1.10e-05  -8.1 8.08e-03    -  1.00e+00 1.53e-05h 17
 133  6.0880417e-03 0.00e+00 1.29e-05  -8.1 5.06e-02    -  1.00e+00 3.91e-03h  9
Warning: Cutting back alpha due to evaluation error
Warning: Cutting back alpha due to evaluation error
 134  6.0880416e-03 0.00e+00 1.13e-05  -8.1 1.46e-02    -  1.00e+00 7.81e-03h  8
 135  6.0880416e-03 0.00e+00 1.21e-05  -8.1 4.31e-03    -  1.00e+00 3.12e-02h  6
Warning: Cutting back alpha due to evaluation error
Warning: Cutting back alpha due to evaluation error
Warning: Cutting back alpha due to evaluation error
Warning: Cutting back alpha due to evaluation error
 136  6.0880409e-03 0.00e+00 6.69e-06  -8.1 2.80e-02    -  1.00e+00 6.25e-02f  5
Buckling-constrained result:
  obj = 0.006087973737295718
  vol = -8.77306768343189e-8

The SDPBarrierAlg uses an interior-point method with log-barrier for PSD constraints. IPOPT solves the continuous subproblems.

Check Stability

S1 = buckling_matrix_constr(r1.minimizer)
S2 = buckling_matrix_constr(r2.minimizer)

ev1 = eigen(S1).values
ev2 = eigen(S2).values

println("ComplianceFun-only min eigenvalue: $(minimum(ev1))")
println("Buckling-constrained min eigenvalue: $(minimum(ev2))")
println("Design is stable: $(minimum(ev2)  -1e-6)")
ComplianceFun-only min eigenvalue: -1.7999557695227362
Buckling-constrained min eigenvalue: 8.177758090264977e-9
Design is stable: true

The buckling-constrained design should have non-negative eigenvalues (stable under load), while the compliance-only design may have negative eigenvalues (unstable).

Visualization

using Makie, CairoMakie

fig1 = visualize(problem; solver.u, topology=r1.minimizer, default_exagg_scale=0.0)
fig2 = visualize(problem; solver.u, topology=r2.minimizer, default_exagg_scale=0.0)
Precompiling packages...
   6499.2 msQuartoNotebookWorkerMakieExt (serial)
  1 dependency successfully precompiled in 7 seconds
Precompiling packages...
   5364.3 msQuartoNotebookWorkerCairoMakieExt (serial)
  1 dependency successfully precompiled in 5 seconds
Figure 1: Buckling-constrained truss design (top) vs compliance-only (bottom)

The buckling-constrained design typically shows thicker compression members and more stable load paths compared to the compliance-only design.