using TopOpt, LinearAlgebra, Zygote
using Nonconvex, NonconvexSemidefinite, NonconvexIpoptBuckling-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
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:
- ComplianceFun — objective to minimize
- DisplacementFun — solves
K·u = ffor displacements - ElementKFun — per-element stiffness matrices
- AssembleKFun — assembles global sparse matrix
- 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)
Kσ = assemble_k(Kσs)
Kσ = apply_boundary_with_zerodiag!(Kσ, ch)
return Array(K + c * Kσ)
endThe 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) - VCompliance-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 ms ✓ QuartoNotebookWorkerMakieExt (serial) 1 dependency successfully precompiled in 7 seconds Precompiling packages... 5364.3 ms ✓ QuartoNotebookWorkerCairoMakieExt (serial) 1 dependency successfully precompiled in 5 seconds
The buckling-constrained design typically shows thicker compression members and more stable load paths compared to the compliance-only design.