using TopOpt, LinearAlgebra, Zygote
using Nonconvex, NonconvexSemidefinite, NonconvexIpopt
using WGLMakie
WGLMakie.activate!(; resize_to=:parent)
using Bonito
if haskey(ENV, "QUARTO_PROJECT_DIR")
Bonito.Page(exportable=true, offline=true)
else
Bonito.browser_display()
end
display_app(app) = display(app)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
WGLMakie.activate!(; resize_to=:parent) selects the browser renderer and fills the Quarto output column. Bonito.Page(exportable=true, offline=true) embeds the assets needed by visualize(...; static=true) in the Quarto output, so the visualization does not require a running Julia process.
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(
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.34125289443461526
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.3268361058670982e+02 -2.3268361058670982e+02
Dual infeasibility......: 9.0869483248525691e-10 9.0869483248525691e-10
Constraint violation....: 0.0000000000000000e+00 0.0000000000000000e+00
Variable bound violation: 0.0000000000000000e+00 0.0000000000000000e+00
Complementarity.........: 1.0000000000000003e-11 1.0000000000000003e-11
Overall NLP error.......: 9.0869483248525691e-10 9.0869483248525691e-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 = 8.461
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.3259812936628066e+01 -2.3259812936628066e+01
Dual infeasibility......: 1.0679475584241832e-09 1.0679475584241832e-09
Constraint violation....: 0.0000000000000000e+00 0.0000000000000000e+00
Variable bound violation: 0.0000000000000000e+00 0.0000000000000000e+00
Complementarity.........: 1.0000000000003599e-11 1.0000000000003599e-11
Overall NLP error.......: 1.0679475584241832e-09 1.0679475584241832e-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.015
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.3175099519889870e+00 -2.3175099519889870e+00
Dual infeasibility......: 1.2330597392128307e-09 1.2330597392128307e-09
Constraint violation....: 0.0000000000000000e+00 0.0000000000000000e+00
Variable bound violation: 0.0000000000000000e+00 0.0000000000000000e+00
Complementarity.........: 1.0000000000000019e-11 1.0000000000000019e-11
Overall NLP error.......: 1.2330597392128307e-09 1.2330597392128307e-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.015
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.2382205830250976e-01 -2.2382205830250976e-01
Dual infeasibility......: 4.7684536343569227e-09 4.7684536343569227e-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.7684536343569227e-09 4.7684536343569227e-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.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 -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.5954029329887525e-02 -1.5954029329887525e-02
Dual infeasibility......: 8.0383938361402608e-09 8.0383938361402608e-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.0383938361402608e-09 8.0383938361402608e-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.022
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.9318503221212461e-03 3.9318503221212461e-03
Dual infeasibility......: 5.2873032940030749e-09 5.2873032940030749e-09
Constraint violation....: 0.0000000000000000e+00 0.0000000000000000e+00
Variable bound violation: 0.0000000000000000e+00 0.0000000000000000e+00
Complementarity.........: 1.0000171411304683e-11 1.0000171411304683e-11
Overall NLP error.......: 5.2873032940030749e-09 5.2873032940030749e-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.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 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.8835347e-03 0.00e+00 1.51e-06 -7.4 5.97e-03 - 1.00e+00 5.00e-01f 2
19 5.8835292e-03 0.00e+00 1.07e-06 -7.4 3.89e-03 - 1.00e+00 1.00e+00h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
20 5.8835335e-03 0.00e+00 1.04e-06 -7.4 2.91e-03 - 1.00e+00 1.00e+00h 1
21 5.8835308e-03 0.00e+00 1.04e-06 -7.4 1.52e-03 - 1.00e+00 5.00e-01h 2
22 5.8835305e-03 0.00e+00 5.49e-08 -7.4 4.42e-04 - 1.00e+00 1.00e+00h 1
23 5.8827356e-03 0.00e+00 8.27e-07 -9.0 6.09e-03 - 1.00e+00 1.00e+00f 1
24 5.8827331e-03 0.00e+00 3.04e-06 -9.9 9.74e-03 - 1.00e+00 5.00e-01f 2
25 5.8827233e-03 0.00e+00 2.27e-06 -10.8 2.42e-03 - 1.00e+00 1.00e+00f 1
26 5.8827155e-03 0.00e+00 1.66e-07 -11.0 2.54e-03 - 1.00e+00 1.00e+00h 1
27 5.8827154e-03 0.00e+00 7.80e-08 -11.0 3.61e-04 - 1.00e+00 1.00e+00h 1
28 5.8827154e-03 0.00e+00 9.99e-08 -11.0 4.09e-04 - 1.00e+00 1.00e+00h 1
29 5.8827154e-03 0.00e+00 1.30e-07 -11.0 3.03e-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.69e-07 -11.0 2.28e-04 - 1.00e+00 1.00e+00h 1
31 5.8827154e-03 0.00e+00 1.35e-07 -11.0 2.02e-04 - 1.00e+00 1.00e+00h 1
32 5.8827154e-03 0.00e+00 1.12e-07 -11.0 1.38e-04 - 1.00e+00 1.00e+00h 1
33 5.8827154e-03 0.00e+00 4.06e-08 -11.0 8.40e-05 - 1.00e+00 1.00e+00h 1
34 5.8827154e-03 0.00e+00 2.92e-08 -11.0 5.14e-05 - 1.00e+00 1.00e+00h 1
35 5.8827154e-03 0.00e+00 4.06e-09 -11.0 2.68e-05 - 1.00e+00 1.00e+00h 1
Number of Iterations....: 35
(scaled) (unscaled)
Objective...............: 5.8827154104652887e-03 5.8827154104652887e-03
Dual infeasibility......: 4.0648262839293220e-09 4.0648262839293220e-09
Constraint violation....: 0.0000000000000000e+00 0.0000000000000000e+00
Variable bound violation: 0.0000000000000000e+00 0.0000000000000000e+00
Complementarity.........: 1.0000000014821483e-11 1.0000000014821483e-11
Overall NLP error.......: 4.0648262839293220e-09 4.0648262839293220e-09
Number of objective function evaluations = 44
Number of objective gradient evaluations = 36
Number of equality constraint evaluations = 0
Number of inequality constraint evaluations = 44
Number of equality constraint Jacobian evaluations = 0
Number of inequality constraint Jacobian evaluations = 36
Number of Lagrangian Hessian evaluations = 0
Total seconds in IPOPT = 0.064
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.1339931e-03 0.00e+00 2.32e-02 0.0 0.00e+00 - 0.00e+00 0.00e+00 0
1 6.1354984e-03 0.00e+00 2.73e-03 -6.3 5.02e-03 - 9.79e-01 1.00e+00h 1
2 6.1342223e-03 0.00e+00 2.91e-05 -8.0 4.10e-04 - 9.89e-01 1.00e+00f 1
3 6.1149773e-03 0.00e+00 1.31e-06 -5.8 7.68e-03 - 1.00e+00 1.00e+00f 1
4 6.0751692e-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.0729705e-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.0710991e-03 0.00e+00 2.50e-05 -8.0 6.94e-01 - 1.00e+00 1.75e-01f 2
7 6.0707731e-03 0.00e+00 1.89e-05 -7.5 2.74e-01 - 1.00e+00 1.02e-01f 2
Warning: Cutting back alpha due to evaluation error
8 6.0701686e-03 0.00e+00 5.87e-05 -7.7 4.71e-02 - 1.00e+00 4.59e-01f 2
9 6.0704172e-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.0706567e-03 0.00e+00 5.97e-06 -7.2 2.33e-02 - 1.00e+00 1.00e+00f 1
11 6.0706482e-03 0.00e+00 6.80e-06 -7.2 8.19e-03 - 1.00e+00 2.50e-01f 3
12 6.0706085e-03 0.00e+00 5.21e-06 -7.2 1.51e-03 - 1.00e+00 1.00e+00h 1
13 6.0705974e-03 0.00e+00 2.83e-06 -7.2 8.02e-04 - 1.00e+00 1.00e+00h 1
14 6.0705839e-03 0.00e+00 1.18e-06 -7.2 1.22e-03 - 1.00e+00 1.00e+00h 1
15 6.0705888e-03 0.00e+00 4.22e-07 -7.2 6.14e-04 - 1.00e+00 1.00e+00h 1
16 6.0692750e-03 0.00e+00 1.09e-05 -9.0 4.26e-02 - 9.48e-01 1.00e+00f 1
Warning: Cutting back alpha due to evaluation error
17 6.0696489e-03 0.00e+00 5.44e-05 -7.8 8.47e-02 - 1.00e+00 2.65e-01f 2
18 6.0694796e-03 0.00e+00 1.05e-05 -7.9 2.69e-02 - 9.44e-01 1.00e+00f 1
Warning: Cutting back alpha due to evaluation error
19 6.0694740e-03 0.00e+00 2.83e-06 -7.9 2.56e-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.0694737e-03 0.00e+00 4.21e-06 -7.9 5.33e-03 - 1.00e+00 2.50e-01f 3
21 6.0694670e-03 0.00e+00 3.28e-06 -7.9 4.68e-03 - 1.00e+00 1.00e+00h 1
22 6.0694648e-03 0.00e+00 2.18e-06 -7.9 1.19e-02 - 1.00e+00 6.25e-02f 5
23 6.0694662e-03 0.00e+00 1.40e-06 -7.9 1.42e-03 - 1.00e+00 1.00e+00h 1
24 6.0694705e-03 0.00e+00 2.14e-06 -7.9 3.24e-03 - 1.00e+00 1.00e+00H 1
25 6.0694690e-03 0.00e+00 3.60e-06 -7.9 2.07e-03 - 1.00e+00 1.00e+00h 1
26 6.0694631e-03 0.00e+00 2.41e-06 -7.9 3.52e-03 - 1.00e+00 1.00e+00H 1
27 6.0694637e-03 0.00e+00 1.64e-06 -7.9 3.27e-03 - 1.00e+00 2.50e-01h 3
28 6.0694650e-03 0.00e+00 2.80e-06 -7.9 3.15e-03 - 1.00e+00 5.00e-01h 2
29 6.0695106e-03 0.00e+00 9.82e-06 -7.9 1.31e-02 - 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.0695106e-03 0.00e+00 9.21e-06 -7.9 1.22e-02 - 1.00e+00 3.05e-05h 16
31 6.0695094e-03 0.00e+00 8.06e-06 -7.9 7.32e-02 - 1.00e+00 3.91e-03f 9
Warning: Cutting back alpha due to evaluation error
32 6.0695094e-03 0.00e+00 6.88e-06 -7.9 1.75e-02 - 1.00e+00 1.82e-12h 40
33 6.0695094e-03 0.00e+00 9.03e-06 -7.9 1.69e-02 - 1.00e+00 6.10e-05h 15
34 6.0695094e-03 0.00e+00 7.57e-06 -7.9 3.73e-02 - 1.00e+00 3.81e-06h 19
35 6.0695094e-03 0.00e+00 7.20e-06 -7.9 4.28e-02 - 1.00e+00 1.86e-09h 30
36 6.0695092e-03 0.00e+00 7.58e-06 -7.9 3.45e-02 - 1.00e+00 9.77e-04f 11
37 6.0695092e-03 0.00e+00 7.43e-06 -7.9 8.84e-03 - 1.00e+00 3.64e-12h 39
38 6.0695092e-03 0.00e+00 8.33e-06 -7.9 1.28e-02 - 1.00e+00 1.91e-06h 20
39 6.0695066e-03 0.00e+00 1.05e-05 -7.9 4.79e-02 - 1.00e+00 1.56e-02f 7
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
40 6.0695983e-03 0.00e+00 2.89e-05 -7.9 2.57e-02 - 1.00e+00 1.00e+00w 1
41 6.0697438e-03 0.00e+00 5.01e-05 -7.9 1.10e-02 - 1.00e+00 1.00e+00w 1
42 6.0695211e-03 0.00e+00 1.60e-05 -7.9 1.72e-02 - 1.00e+00 1.00e+00w 1
Warning: Cutting back alpha due to evaluation error
43 6.0695066e-03 0.00e+00 9.33e-06 -7.9 1.18e-02 - 1.00e+00 9.31e-10h 30
44 6.0695010e-03 0.00e+00 8.79e-06 -7.9 9.40e-03 - 1.00e+00 1.25e-01f 4
Warning: Cutting back alpha due to evaluation error
45 6.0694937e-03 0.00e+00 6.36e-06 -7.9 1.78e-02 - 1.00e+00 1.14e-01f 4
46 6.0694663e-03 0.00e+00 9.46e-06 -7.9 1.03e-02 - 1.00e+00 1.00e+00f 1
47 6.0694663e-03 0.00e+00 5.73e-06 -7.9 4.22e-03 - 1.00e+00 4.88e-04h 12
48 6.0694672e-03 0.00e+00 8.97e-07 -7.9 2.93e-03 - 1.00e+00 1.00e+00f 1
49 6.0694660e-03 0.00e+00 1.55e-06 -7.9 3.73e-03 - 1.00e+00 2.50e-01h 3
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
50 6.0694657e-03 0.00e+00 6.33e-07 -7.9 1.03e-03 - 1.00e+00 1.25e-01h 4
51 6.0694658e-03 0.00e+00 2.21e-07 -7.9 8.75e-05 - 1.00e+00 1.00e+00h 1
52 6.0694657e-03 0.00e+00 4.26e-07 -7.9 1.01e-04 - 1.00e+00 1.00e+00h 1
53 6.0694658e-03 0.00e+00 6.79e-08 -7.9 4.74e-05 - 1.00e+00 1.00e+00h 1
54 6.0692450e-03 0.00e+00 1.74e-06 -9.0 7.86e-03 - 1.00e+00 1.00e+00f 1
55 6.0692529e-03 0.00e+00 6.86e-06 -8.7 2.00e-02 - 1.00e+00 1.25e-01h 4
56 6.0692553e-03 0.00e+00 3.75e-06 -8.9 1.09e-03 - 1.00e+00 1.00e+00f 1
57 6.0692539e-03 0.00e+00 8.39e-07 -8.9 8.12e-04 - 1.00e+00 5.00e-01h 2
58 6.0692539e-03 0.00e+00 9.88e-07 -8.9 2.09e-04 - 1.00e+00 1.00e+00h 1
59 6.0692537e-03 0.00e+00 2.92e-07 -8.9 2.28e-04 - 1.00e+00 1.00e+00h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
60 6.0692538e-03 0.00e+00 6.52e-07 -8.9 1.19e-04 - 1.00e+00 1.00e+00h 1
61 6.0692538e-03 0.00e+00 2.36e-07 -8.9 5.95e-05 - 1.00e+00 1.00e+00h 1
62 6.0692537e-03 0.00e+00 3.09e-08 -8.9 6.15e-05 - 1.00e+00 1.00e+00h 1
63 6.0692537e-03 0.00e+00 9.94e-08 -8.9 4.48e-05 - 1.00e+00 1.00e+00h 1
64 6.0692537e-03 0.00e+00 6.18e-08 -8.9 1.68e-04 - 1.00e+00 2.50e-01h 3
65 6.0692537e-03 0.00e+00 7.77e-08 -8.9 8.14e-05 - 1.00e+00 1.00e+00h 1
66 6.0692537e-03 0.00e+00 7.51e-08 -8.9 4.84e-04 - 1.00e+00 2.50e-01h 3
67 6.0692537e-03 0.00e+00 6.92e-08 -8.9 2.22e-04 - 1.00e+00 3.12e-02h 6
68 6.0692537e-03 0.00e+00 3.48e-07 -8.9 3.44e-05 - 1.00e+00 1.00e+00H 1
69 6.0692537e-03 0.00e+00 3.36e-08 -8.9 1.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
70 6.0692537e-03 0.00e+00 1.48e-07 -8.9 8.42e-05 - 1.00e+00 1.00e+00h 1
71 6.0692537e-03 0.00e+00 4.33e-08 -8.9 3.84e-05 - 1.00e+00 1.00e+00h 1
Number of Iterations....: 71
(scaled) (unscaled)
Objective...............: 6.0692537024234139e-03 6.0692537024234139e-03
Dual infeasibility......: 4.3308337127702814e-08 4.3308337127702814e-08
Constraint violation....: 0.0000000000000000e+00 0.0000000000000000e+00
Variable bound violation: 0.0000000000000000e+00 0.0000000000000000e+00
Complementarity.........: 1.3683987057298128e-09 1.3683987057298128e-09
Overall NLP error.......: 4.3308337127702814e-08 4.3308337127702814e-08
Number of objective function evaluations = 387
Number of objective gradient evaluations = 72
Number of equality constraint evaluations = 0
Number of inequality constraint evaluations = 387
Number of equality constraint Jacobian evaluations = 0
Number of inequality constraint Jacobian evaluations = 72
Number of Lagrangian Hessian evaluations = 0
Total seconds in IPOPT = 0.162
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.1472762e-03 0.00e+00 2.32e-02 0.0 0.00e+00 - 0.00e+00 0.00e+00 0
1 6.1485623e-03 0.00e+00 2.96e-03 -6.3 5.48e-03 - 9.78e-01 1.00e+00h 1
2 6.1473412e-03 0.00e+00 3.52e-05 -8.0 6.85e-04 - 9.88e-01 1.00e+00f 1
3 6.1491245e-03 0.00e+00 6.71e-06 -5.6 1.87e-02 - 9.97e-01 1.00e+00f 1
4 6.1561312e-03 0.00e+00 6.00e-05 -5.6 4.84e-01 - 9.16e-01 1.00e+00f 1
5 6.1552337e-03 0.00e+00 1.12e-05 -5.6 1.13e-01 - 1.00e+00 2.50e-01f 3
6 6.0970001e-03 0.00e+00 7.87e-06 -8.4 1.31e-01 - 5.56e-01 9.64e-01f 1
7 6.0971273e-03 0.00e+00 6.29e-05 -6.5 1.80e-01 - 9.94e-01 1.00e+00f 1
8 6.0947801e-03 0.00e+00 2.07e-05 -6.6 1.22e-01 - 1.00e+00 5.00e-01f 2
Warning: Cutting back alpha due to evaluation error
9 6.0912554e-03 0.00e+00 3.11e-05 -7.5 9.41e-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.0888437e-03 0.00e+00 9.76e-06 -8.8 1.76e-01 - 1.00e+00 4.05e-01f 2
11 6.0885815e-03 0.00e+00 4.35e-05 -8.1 1.08e-01 - 1.00e+00 2.27e-01f 2
Warning: Cutting back alpha due to evaluation error
Warning: Cutting back alpha due to evaluation error
12 6.0878924e-03 0.00e+00 5.02e-05 -9.0 6.66e-02 - 1.00e+00 2.36e-01f 3
13 6.0921387e-03 0.00e+00 3.18e-05 -6.9 1.49e-01 - 1.00e+00 1.00e+00f 1
14 6.0920201e-03 0.00e+00 4.46e-05 -6.9 6.10e-02 - 1.00e+00 3.84e-01f 2
15 6.0906796e-03 0.00e+00 1.49e-05 -6.9 4.26e-02 - 1.00e+00 1.00e+00f 1
16 6.0905677e-03 0.00e+00 2.40e-05 -6.9 2.12e-02 - 1.00e+00 2.50e-01f 3
17 6.0904753e-03 0.00e+00 4.98e-06 -6.9 6.61e-03 - 1.00e+00 1.00e+00f 1
18 6.0903125e-03 0.00e+00 6.51e-06 -6.9 2.40e-02 - 1.00e+00 5.00e-01f 2
19 6.0903029e-03 0.00e+00 5.50e-06 -6.9 1.85e-02 - 1.00e+00 2.50e-01f 3
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
20 6.0903117e-03 0.00e+00 1.87e-06 -6.9 2.40e-03 - 1.00e+00 1.00e+00h 1
21 6.0902952e-03 0.00e+00 9.47e-07 -6.9 2.86e-03 - 1.00e+00 1.00e+00h 1
Warning: Cutting back alpha due to evaluation error
22 6.0882441e-03 0.00e+00 8.83e-06 -9.0 1.06e-01 - 8.55e-01 4.99e-01f 2
Warning: Cutting back alpha due to evaluation error
23 6.0878729e-03 0.00e+00 4.39e-05 -9.0 1.43e-01 - 9.90e-01 1.86e-01f 2
24 6.0866599e-03 0.00e+00 2.26e-05 -8.1 3.54e-02 - 1.00e+00 1.00e+00f 1
25 6.0866400e-03 0.00e+00 1.95e-05 -7.7 2.45e-02 - 1.00e+00 1.22e-01f 3
Warning: Cutting back alpha due to evaluation error
26 6.0864709e-03 0.00e+00 1.52e-05 -9.3 1.74e-02 - 1.00e+00 5.00e-01f 2
27 6.0864659e-03 0.00e+00 2.66e-05 -7.9 3.98e-02 - 1.00e+00 8.24e-02f 3
Warning: Cutting back alpha due to evaluation error
28 6.0865476e-03 0.00e+00 1.53e-05 -7.9 1.15e-02 - 9.93e-01 5.00e-01f 2
29 6.0865332e-03 0.00e+00 1.08e-05 -8.1 2.01e-03 - 1.00e+00 5.00e-01f 2
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
30 6.0865091e-03 0.00e+00 3.76e-06 -8.1 2.19e-03 - 1.00e+00 1.00e+00f 1
31 6.0865056e-03 0.00e+00 1.56e-05 -8.1 1.12e-03 - 1.00e+00 1.00e+00H 1
32 6.0865045e-03 0.00e+00 4.29e-06 -8.1 4.83e-04 - 1.00e+00 1.00e+00h 1
33 6.0865068e-03 0.00e+00 3.87e-06 -8.1 9.35e-04 - 1.00e+00 1.00e+00h 1
34 6.0865068e-03 0.00e+00 1.66e-06 -8.1 2.70e-04 - 1.00e+00 5.00e-01h 2
35 6.0865046e-03 0.00e+00 1.38e-06 -8.1 6.41e-04 - 1.00e+00 1.00e+00h 1
36 6.0865045e-03 0.00e+00 6.00e-07 -8.1 2.03e-03 - 1.00e+00 6.25e-02h 5
37 6.0865047e-03 0.00e+00 1.82e-07 -8.1 8.41e-05 - 1.00e+00 1.00e+00h 1
38 6.0865046e-03 0.00e+00 3.38e-06 -8.1 8.85e-05 - 1.00e+00 1.00e+00H 1
39 6.0865046e-03 0.00e+00 2.73e-06 -8.1 1.71e-04 - 1.00e+00 6.25e-02h 5
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
40 6.0865047e-03 0.00e+00 5.56e-07 -8.1 1.47e-04 - 1.00e+00 5.00e-01h 2
41 6.0865048e-03 0.00e+00 3.22e-07 -8.1 5.46e-05 - 1.00e+00 1.00e+00h 1
42 6.0865048e-03 0.00e+00 1.89e-07 -8.1 8.15e-05 - 1.00e+00 2.50e-01h 3
43 6.0865049e-03 0.00e+00 1.48e-07 -8.1 3.87e-05 - 1.00e+00 1.00e+00h 1
44 6.0865051e-03 0.00e+00 1.03e-06 -8.1 8.67e-05 - 1.00e+00 1.00e+00h 1
45 6.0865049e-03 0.00e+00 2.82e-08 -8.1 7.33e-05 - 1.00e+00 1.00e+00h 1
46 6.0863531e-03 0.00e+00 1.17e-06 -9.0 6.02e-04 - 1.00e+00 1.00e+00f 1
Warning: Cutting back alpha due to evaluation error
47 6.0863506e-03 0.00e+00 9.92e-06 -9.2 2.25e-02 - 1.00e+00 6.17e-02f 4
48 6.0863478e-03 0.00e+00 8.95e-06 -9.1 1.22e-02 - 1.00e+00 1.25e-01f 4
49 6.0863446e-03 0.00e+00 1.53e-05 -9.6 9.93e-03 - 1.00e+00 1.25e-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
50 6.0863362e-03 0.00e+00 1.15e-05 -10.9 2.95e-02 - 1.00e+00 1.55e-01f 3
Warning: Cutting back alpha due to evaluation error
51 6.0863313e-03 0.00e+00 9.69e-06 -9.0 3.24e-02 - 1.00e+00 6.51e-02f 3
Warning: Cutting back alpha due to evaluation error
52 6.0863291e-03 0.00e+00 3.10e-05 -9.1 4.54e-02 - 1.00e+00 8.00e-02f 3
Warning: Cutting back alpha due to evaluation error
53 6.0863695e-03 0.00e+00 2.45e-05 -8.4 9.36e-03 - 1.00e+00 2.37e-01f 2
54 6.0863814e-03 0.00e+00 6.93e-06 -8.6 1.05e-02 - 8.82e-01 1.00e+00f 1
55 6.0863726e-03 0.00e+00 1.28e-05 -8.6 7.37e-02 - 3.71e-01 1.76e-02f 4
56 6.0863664e-03 0.00e+00 1.29e-05 -8.6 7.57e-03 - 1.00e+00 1.00e+00H 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
57 6.0863652e-03 0.00e+00 9.86e-06 -8.6 1.02e-02 - 6.00e-01 2.10e-02f 6
58 6.0863627e-03 0.00e+00 4.63e-06 -8.6 3.92e-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
59 6.0863624e-03 0.00e+00 2.70e-06 -8.6 8.17e-03 - 1.00e+00 1.41e-02h 7
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
60 6.0863612e-03 0.00e+00 5.26e-07 -8.6 7.42e-04 - 1.00e+00 1.00e+00h 1
61 6.0863626e-03 0.00e+00 5.49e-06 -8.6 4.82e-03 - 1.00e+00 2.50e-01h 3
62 6.0863625e-03 0.00e+00 5.17e-06 -8.6 4.24e-04 - 1.00e+00 1.56e-02h 7
63 6.0863609e-03 0.00e+00 5.27e-06 -8.6 5.09e-04 - 1.00e+00 1.00e+00f 1
64 6.0863604e-03 0.00e+00 6.27e-06 -8.6 1.74e-03 - 1.00e+00 5.00e-01h 2
65 6.0863604e-03 0.00e+00 5.87e-06 -8.6 1.90e-03 - 1.00e+00 3.91e-03h 9
66 6.0863604e-03 0.00e+00 6.16e-06 -8.6 2.07e-03 - 1.00e+00 7.81e-03h 8
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
67 6.0863600e-03 0.00e+00 3.41e-06 -8.6 1.09e-02 - 1.00e+00 1.39e-02f 7
68 6.0863604e-03 0.00e+00 5.50e-07 -8.6 8.38e-04 - 1.00e+00 1.00e+00h 1
69 6.0863603e-03 0.00e+00 5.03e-07 -8.6 5.00e-04 - 1.00e+00 1.25e-01h 4
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
70 6.0863602e-03 0.00e+00 3.64e-07 -8.6 8.59e-05 - 1.00e+00 1.00e+00h 1
71 6.0863602e-03 0.00e+00 3.29e-07 -8.6 3.54e-04 - 1.00e+00 6.25e-02h 5
72 6.0863600e-03 0.00e+00 1.61e-07 -8.6 1.21e-04 - 1.00e+00 1.00e+00h 1
73 6.0863598e-03 0.00e+00 8.48e-07 -8.6 8.73e-03 - 1.00e+00 6.25e-02h 5
74 6.0863600e-03 0.00e+00 2.95e-06 -8.6 1.51e-03 - 1.00e+00 6.25e-02h 5
75 6.0863597e-03 0.00e+00 1.46e-07 -8.6 2.07e-04 - 1.00e+00 1.00e+00h 1
76 6.0863597e-03 0.00e+00 1.13e-06 -8.6 8.25e-05 - 1.00e+00 1.00e+00H 1
77 6.0863597e-03 0.00e+00 6.63e-08 -8.6 8.00e-05 - 1.00e+00 1.00e+00h 1
78 6.0863597e-03 0.00e+00 1.37e-07 -8.6 3.89e-05 - 1.00e+00 1.00e+00h 1
79 6.0863600e-03 0.00e+00 3.45e-06 -8.6 1.41e-04 - 1.00e+00 1.00e+00h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
80 6.0863597e-03 0.00e+00 1.74e-07 -8.6 1.43e-04 - 1.00e+00 1.00e+00h 1
81 6.0863597e-03 0.00e+00 8.97e-07 -8.6 1.54e-04 - 1.00e+00 5.00e-01h 2
82 6.0863597e-03 0.00e+00 5.23e-07 -8.6 5.98e-05 - 1.00e+00 1.00e+00H 1
83 6.0863597e-03 0.00e+00 2.24e-07 -8.6 2.62e-04 - 1.00e+00 2.50e-01h 3
84 6.0863597e-03 0.00e+00 2.64e-07 -8.6 7.59e-05 - 1.00e+00 2.50e-01h 3
85 6.0863597e-03 0.00e+00 1.14e-08 -8.6 3.32e-05 - 1.00e+00 1.00e+00h 1
86 6.0863295e-03 0.00e+00 1.69e-06 -9.0 1.32e-03 - 1.00e+00 1.00e+00h 1
Warning: Cutting back alpha due to evaluation error
87 6.0863785e-03 0.00e+00 1.95e-05 -9.0 2.45e-02 - 1.00e+00 4.81e-01h 2
Warning: Cutting back alpha due to evaluation error
Warning: Cutting back alpha due to evaluation error
88 6.0863660e-03 0.00e+00 2.06e-05 -9.0 2.31e-03 - 1.00e+00 2.50e-01f 3
89 6.0863599e-03 0.00e+00 2.30e-05 -9.0 1.03e-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
90 6.0863497e-03 0.00e+00 1.13e-05 -9.0 1.27e-01 - 1.36e-01 4.43e-02f 4
91 6.0863456e-03 0.00e+00 1.15e-05 -9.0 2.02e-02 - 2.72e-01 2.14e-02f 5
92 6.0863325e-03 0.00e+00 1.10e-05 -9.0 4.03e-03 - 1.00e+00 1.00e+00h 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
93 6.0863303e-03 0.00e+00 2.59e-05 -9.0 5.20e-02 - 1.00e+00 4.27e-02f 4
94 6.0864100e-03 0.00e+00 2.46e-05 -9.0 5.09e-03 - 1.00e+00 1.00e+00H 1
95 6.0863361e-03 0.00e+00 8.37e-06 -9.0 1.33e-03 - 1.00e+00 1.00e+00f 1
96 6.0863304e-03 0.00e+00 5.60e-06 -9.0 9.15e-03 - 1.00e+00 5.00e-01h 2
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
97 6.0863300e-03 0.00e+00 4.89e-06 -9.0 1.32e-02 - 4.13e-01 2.66e-02f 6
98 6.0863291e-03 0.00e+00 2.49e-06 -9.0 4.70e-04 - 1.00e+00 1.00e+00h 1
99 6.0863292e-03 0.00e+00 5.49e-06 -9.0 7.71e-04 - 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.0863289e-03 0.00e+00 5.17e-06 -9.0 1.18e-03 - 1.00e+00 1.00e+00h 1
Warning: Cutting back alpha due to evaluation error
Warning: Cutting back alpha due to evaluation error
101 6.0863307e-03 0.00e+00 4.59e-06 -8.8 1.12e-02 - 1.00e+00 6.25e-02h 5
102 6.0863371e-03 0.00e+00 7.02e-06 -8.9 2.15e-03 - 1.00e+00 1.00e+00H 1
103 6.0863362e-03 0.00e+00 4.76e-06 -8.9 2.81e-03 - 1.00e+00 5.00e-01f 2
104 6.0863489e-03 0.00e+00 1.49e-05 -8.9 4.25e-03 - 1.00e+00 1.00e+00h 1
105 6.0863383e-03 0.00e+00 9.78e-06 -8.9 3.56e-03 - 1.00e+00 5.00e-01f 2
Warning: Cutting back alpha due to evaluation error
Warning: Cutting back alpha due to evaluation error
106 6.0863382e-03 0.00e+00 1.02e-05 -8.9 1.75e-02 - 1.00e+00 1.00e-03h 10
107 6.0863372e-03 0.00e+00 7.87e-06 -8.9 4.84e-03 - 1.00e+00 6.25e-02h 5
Warning: Cutting back alpha due to evaluation error
Warning: Cutting back alpha due to evaluation error
108 6.0863369e-03 0.00e+00 1.82e-05 -8.9 3.15e-02 - 7.69e-01 1.25e-01f 4
109 6.0863356e-03 0.00e+00 6.09e-06 -8.9 7.97e-02 - 4.58e-01 1.26e-02f 7
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
110 6.0863375e-03 0.00e+00 8.57e-06 -8.9 7.11e-04 - 1.00e+00 5.00e-01h 2
111 6.0863331e-03 0.00e+00 9.12e-07 -8.9 1.93e-03 - 1.00e+00 1.00e+00f 1
112 6.0863330e-03 0.00e+00 1.02e-06 -8.9 1.61e-03 - 1.00e+00 6.25e-02h 5
113 6.0863328e-03 0.00e+00 1.97e-06 -8.9 7.69e-04 - 1.00e+00 5.00e-01h 2
114 6.0863452e-03 0.00e+00 1.38e-05 -8.9 3.98e-03 - 1.00e+00 5.00e-01h 2
115 6.0863448e-03 0.00e+00 1.36e-05 -8.9 2.82e-03 - 1.00e+00 1.56e-02h 7
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.0863449e-03 0.00e+00 1.14e-05 -8.9 1.13e-02 - 6.87e-01 4.28e-02f 5
117 6.0863337e-03 0.00e+00 4.50e-06 -8.9 3.56e-03 - 1.00e+00 1.00e+00f 1
118 6.0863337e-03 0.00e+00 4.74e-06 -8.9 5.47e-03 - 1.00e+00 3.05e-05h 16
119 6.0863336e-03 0.00e+00 4.46e-06 -8.9 2.15e-03 - 1.00e+00 7.81e-03h 8
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
120 6.0863334e-03 0.00e+00 3.35e-06 -8.9 1.29e-03 - 1.00e+00 1.00e+00f 1
121 6.0863333e-03 0.00e+00 2.67e-06 -8.9 3.50e-03 - 1.00e+00 1.56e-02h 7
122 6.0863329e-03 0.00e+00 8.50e-07 -8.9 1.57e-04 - 1.00e+00 1.00e+00h 1
123 6.0863329e-03 0.00e+00 2.07e-06 -8.9 1.14e-04 - 1.00e+00 2.50e-01h 3
124 6.0863328e-03 0.00e+00 8.01e-08 -8.9 2.35e-05 - 1.00e+00 1.00e+00h 1
125 6.0863328e-03 0.00e+00 2.28e-08 -8.9 2.32e-06 - 1.00e+00 1.00e+00h 1
126 6.0863328e-03 0.00e+00 1.17e-07 -8.9 1.31e-05 - 1.00e+00 1.00e+00h 1
127 6.0863329e-03 0.00e+00 2.43e-07 -8.9 9.48e-05 - 1.00e+00 1.00e+00h 1
128 6.0863329e-03 0.00e+00 1.99e-07 -8.9 3.45e-05 - 1.00e+00 2.50e-01h 3
129 6.0863328e-03 0.00e+00 1.54e-07 -8.9 9.17e-05 - 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.0863328e-03 0.00e+00 1.43e-07 -8.9 9.72e-05 - 1.00e+00 1.95e-03h 10
131 6.0863328e-03 0.00e+00 1.36e-06 -8.9 1.68e-05 - 1.00e+00 1.00e+00h 1
132 6.0863328e-03 0.00e+00 2.49e-07 -8.9 4.20e-05 - 1.00e+00 1.00e+00h 1
133 6.0863328e-03 0.00e+00 7.96e-08 -8.9 2.19e-05 - 1.00e+00 2.50e-01h 3
134 6.0863328e-03 0.00e+00 1.27e-08 -8.9 1.11e-05 - 1.00e+00 1.00e+00h 1
135 6.0863328e-03 0.00e+00 1.98e-08 -8.9 1.17e-05 - 1.00e+00 5.00e-01h 2
136 6.0863328e-03 0.00e+00 9.20e-08 -8.9 3.45e-05 - 1.00e+00 1.00e+00H 1
137 6.0863328e-03 0.00e+00 8.99e-08 -8.9 2.16e-05 - 1.00e+00 1.56e-02h 7
138 6.0863328e-03 0.00e+00 8.79e-08 -8.9 1.02e-04 - 1.00e+00 6.10e-05h 15
139 6.0863328e-03 0.00e+00 8.99e-08 -8.9 1.64e-04 - 1.00e+00 3.05e-05h 16
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
140 6.0863328e-03 0.00e+00 1.42e-07 -8.9 3.98e-05 - 1.00e+00 1.25e-01h 4
141 6.0863328e-03 0.00e+00 1.18e-06 -8.9 1.80e-04 - 1.00e+00 1.00e+00H 1
142 6.0863328e-03 0.00e+00 2.18e-07 -8.9 1.40e-04 - 1.00e+00 1.00e+00H 1
143 6.0863328e-03 0.00e+00 7.51e-08 -8.9 1.20e-04 - 1.00e+00 2.50e-01h 3
144 6.0863328e-03 0.00e+00 6.97e-08 -8.9 1.36e-05 - 1.00e+00 1.00e+00h 1
145 6.0863328e-03 0.00e+00 8.73e-08 -8.9 3.14e-05 - 1.00e+00 5.00e-01h 2
146 6.0863328e-03 0.00e+00 6.42e-08 -8.9 1.33e-05 - 1.00e+00 2.50e-01h 3
147 6.0863328e-03 0.00e+00 6.81e-08 -8.9 1.06e-05 - 1.00e+00 1.00e+00h 1
148 6.0863328e-03 0.00e+00 1.03e-07 -8.9 1.40e-04 - 1.00e+00 6.25e-02h 5
149 6.0863328e-03 0.00e+00 1.33e-08 -8.9 6.92e-06 - 1.00e+00 1.00e+00h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
150 6.0863328e-03 0.00e+00 9.84e-08 -8.9 8.70e-06 - 1.00e+00 1.00e+00H 1
151 6.0863328e-03 0.00e+00 1.18e-08 -8.9 6.21e-06 - 1.00e+00 1.00e+00h 1
152 6.0863328e-03 0.00e+00 2.18e-08 -8.9 3.39e-06 - 1.00e+00 5.00e-01h 2
153 6.0863328e-03 0.00e+00 1.23e-08 -8.9 1.50e-06 - 1.00e+00 1.00e+00h 1
154 6.0863328e-03 0.00e+00 2.55e-08 -8.9 2.12e-06 - 1.00e+00 5.00e-01h 2
155 6.0863328e-03 0.00e+00 1.31e-08 -8.9 4.57e-06 - 1.00e+00 5.00e-01h 2
156 6.0863328e-03 0.00e+00 5.52e-09 -8.9 6.02e-07 - 1.00e+00 1.00e+00h 1
Number of Iterations....: 156
(scaled) (unscaled)
Objective...............: 6.0863328076560521e-03 6.0863328076560521e-03
Dual infeasibility......: 5.5201371834903334e-09 5.5201371834903334e-09
Constraint violation....: 0.0000000000000000e+00 0.0000000000000000e+00
Variable bound violation: 0.0000000000000000e+00 0.0000000000000000e+00
Complementarity.........: 1.1540964576340208e-09 1.1540964576340208e-09
Overall NLP error.......: 5.5201371834903334e-09 5.5201371834903334e-09
Number of objective function evaluations = 519
Number of objective gradient evaluations = 157
Number of equality constraint evaluations = 0
Number of inequality constraint evaluations = 519
Number of equality constraint Jacobian evaluations = 0
Number of inequality constraint Jacobian evaluations = 157
Number of Lagrangian Hessian evaluations = 0
Total seconds in IPOPT = 0.417
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.1440172e-03 0.00e+00 2.32e-02 0.0 0.00e+00 - 0.00e+00 0.00e+00 0
1 6.1457076e-03 0.00e+00 4.19e-03 -6.3 7.79e-03 - 9.73e-01 1.00e+00h 1
2 6.1446675e-03 0.00e+00 5.48e-05 -7.9 8.40e-04 - 9.87e-01 1.00e+00f 1
3 6.1620625e-03 0.00e+00 1.94e-06 -5.4 1.37e-02 - 1.00e+00 1.00e+00f 1
4 6.2074485e-03 0.00e+00 1.14e-03 -5.5 8.45e-01 - 4.71e-01 7.28e-01f 1
5 6.1746683e-03 0.00e+00 5.77e-05 -5.5 1.64e-01 - 3.15e-02 1.00e+00f 1
6 6.1685694e-03 0.00e+00 2.69e-05 -5.5 7.11e-02 - 1.00e+00 1.00e+00f 1
7 6.1018781e-03 0.00e+00 1.48e-05 -8.3 7.04e-02 - 6.96e-01 9.49e-01f 1
8 6.1028585e-03 0.00e+00 2.76e-05 -6.5 1.34e-01 - 9.78e-01 1.00e+00f 1
9 6.1006307e-03 0.00e+00 3.90e-05 -6.6 1.11e-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.0956615e-03 0.00e+00 9.40e-05 -7.2 6.30e-02 - 1.00e+00 1.00e+00f 1
11 6.0978561e-03 0.00e+00 3.15e-05 -6.7 5.88e-02 - 1.00e+00 1.00e+00f 1
12 6.0952548e-03 0.00e+00 2.22e-05 -6.8 4.78e-02 - 1.00e+00 1.00e+00f 1
13 6.0927631e-03 0.00e+00 2.63e-05 -7.2 1.46e-01 - 1.00e+00 4.02e-01f 2
14 6.0910306e-03 0.00e+00 2.48e-05 -8.0 1.99e-01 - 1.00e+00 2.44e-01f 2
15 6.1069332e-03 0.00e+00 2.75e-05 -6.4 3.49e-01 - 1.00e+00 1.00e+00f 1
16 6.1014060e-03 0.00e+00 5.13e-05 -6.4 2.22e-01 - 1.00e+00 1.00e+00f 1
17 6.1000880e-03 0.00e+00 2.65e-05 -6.4 1.41e-01 - 9.14e-01 3.15e-01f 2
18 6.0993925e-03 0.00e+00 1.44e-05 -6.4 6.05e-02 - 1.00e+00 1.00e+00f 1
19 6.0995930e-03 0.00e+00 1.07e-05 -6.4 2.62e-02 - 1.00e+00 5.00e-01f 2
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
20 6.0995344e-03 0.00e+00 3.22e-06 -6.4 9.10e-03 - 1.00e+00 1.00e+00f 1
21 6.0896715e-03 0.00e+00 1.47e-05 -9.0 1.10e-01 - 8.16e-01 9.83e-01f 1
Warning: Cutting back alpha due to evaluation error
Warning: Cutting back alpha due to evaluation error
22 6.0894364e-03 0.00e+00 2.23e-05 -8.3 1.64e-01 - 1.00e+00 1.16e-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
23 6.0893604e-03 0.00e+00 1.79e-05 -9.0 1.24e-01 - 1.00e+00 3.12e-02f 6
24 6.0935720e-03 0.00e+00 9.69e-04 -7.0 1.01e-01 - 1.00e+00 4.13e-01f 1
Warning: Cutting back alpha due to evaluation error
25 6.0900806e-03 0.00e+00 1.82e-04 -7.2 1.04e-01 - 1.40e-02 3.89e-01f 2
Warning: Cutting back alpha due to evaluation error
26 6.0895928e-03 0.00e+00 8.04e-05 -7.2 2.19e-02 - 5.32e-01 3.41e-01f 2
27 6.0898247e-03 0.00e+00 6.26e-05 -7.2 1.47e-02 - 1.00e+00 1.00e+00f 1
28 6.0898400e-03 0.00e+00 3.57e-05 -7.2 3.30e-02 - 7.29e-01 2.50e-01f 3
29 6.0900396e-03 0.00e+00 4.91e-05 -7.2 2.23e-02 - 1.00e+00 1.00e+00f 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
30 6.0900127e-03 0.00e+00 2.17e-05 -7.2 3.57e-02 - 1.00e+00 2.50e-01f 3
31 6.0899612e-03 0.00e+00 2.39e-05 -7.2 2.88e-03 - 1.00e+00 1.00e+00f 1
32 6.0899254e-03 0.00e+00 1.60e-05 -7.2 4.55e-03 - 1.00e+00 1.00e+00f 1
33 6.0899701e-03 0.00e+00 1.52e-05 -7.2 4.67e-02 - 9.40e-01 2.50e-01f 3
34 6.0901010e-03 0.00e+00 1.08e-05 -7.2 1.05e-02 - 1.00e+00 1.00e+00f 1
35 6.0900895e-03 0.00e+00 7.81e-06 -7.2 1.35e-02 - 1.00e+00 5.00e-01f 2
36 6.0900389e-03 0.00e+00 8.25e-06 -7.2 7.39e-03 - 1.00e+00 1.00e+00f 1
37 6.0899893e-03 0.00e+00 2.77e-06 -7.2 4.11e-03 - 1.00e+00 1.00e+00f 1
38 6.0900040e-03 0.00e+00 2.69e-06 -7.2 4.26e-03 - 1.00e+00 1.00e+00h 1
39 6.0900078e-03 0.00e+00 2.64e-06 -7.2 2.45e-03 - 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.0900059e-03 0.00e+00 8.75e-07 -7.2 4.84e-03 - 1.00e+00 5.00e-01h 2
41 6.0900019e-03 0.00e+00 6.75e-07 -7.2 2.09e-03 - 1.00e+00 1.00e+00h 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
42 6.0897538e-03 0.00e+00 5.94e-06 -9.0 4.28e-02 - 9.40e-01 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
43 6.0896563e-03 0.00e+00 4.98e-06 -9.0 1.60e-01 - 1.00e+00 3.26e-02f 5
Warning: Cutting back alpha due to evaluation error
44 6.0892990e-03 0.00e+00 2.69e-05 -9.0 1.71e-01 - 1.00e+00 2.54e-01f 2
Warning: Cutting back alpha due to evaluation error
45 6.0886327e-03 0.00e+00 3.41e-05 -8.2 5.60e-02 - 1.00e+00 4.29e-01f 2
46 6.0886472e-03 0.00e+00 2.34e-05 -7.4 8.66e-02 - 6.12e-01 6.12e-02f 3
Warning: Cutting back alpha due to evaluation error
Warning: Cutting back alpha due to evaluation error
47 6.0885928e-03 0.00e+00 1.80e-05 -7.7 2.86e-02 - 9.00e-01 2.50e-01f 3
Warning: Cutting back alpha due to evaluation error
48 6.0884279e-03 0.00e+00 4.82e-05 -8.7 3.91e-02 - 1.00e+00 2.30e-01f 2
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
49 6.0883906e-03 0.00e+00 3.70e-05 -9.9 4.03e-02 - 1.00e+00 4.12e-02f 5
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
50 6.0883839e-03 0.00e+00 3.25e-05 -7.8 4.18e-02 - 1.00e+00 1.25e-01f 4
Warning: Cutting back alpha due to evaluation error
51 6.0880989e-03 0.00e+00 3.04e-05 -9.1 2.91e-02 - 1.00e+00 5.00e-01f 2
52 6.0880662e-03 0.00e+00 4.74e-05 -10.3 3.37e-02 - 1.00e+00 2.14e-01f 2
Warning: Cutting back alpha due to evaluation error
Warning: Cutting back alpha due to evaluation error
Warning: Cutting back alpha due to evaluation error
53 6.0880273e-03 0.00e+00 4.35e-05 -11.0 3.95e-02 - 1.00e+00 8.25e-02f 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
54 6.0880142e-03 0.00e+00 1.83e-03 -11.0 8.65e-02 - 5.05e-01 2.28e-02f 4
Warning: Cutting back alpha due to evaluation error
55 6.0880046e-03 0.00e+00 9.97e-05 -8.7 4.04e-02 - 9.08e-01 3.64e-02f 4
56 6.0879578e-03 0.00e+00 2.64e-05 -8.5 1.05e-02 - 1.00e+00 1.00e+00f 1
Warning: Cutting back alpha due to evaluation error
Warning: Cutting back alpha due to evaluation error
57 6.0879290e-03 0.00e+00 3.66e-05 -9.8 4.06e-02 - 1.00e+00 1.06e-01f 3
Warning: Cutting back alpha due to evaluation error
58 6.0879176e-03 0.00e+00 3.54e-05 -10.3 2.63e-02 - 4.84e-01 6.53e-02f 2
Warning: Cutting back alpha due to evaluation error
Warning: Cutting back alpha due to evaluation error
Warning: Cutting back alpha due to evaluation error
59 6.0879026e-03 0.00e+00 1.27e-04 -11.0 1.52e-02 - 9.59e-01 1.25e-01f 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
60 6.0878905e-03 0.00e+00 6.47e-05 -8.5 1.75e+00 - 3.70e-02 7.64e-03f 3
Warning: Cutting back alpha due to evaluation error
61 6.0878941e-03 0.00e+00 3.18e-05 -8.2 2.13e-02 - 1.00e+00 3.13e-02f 4
62 6.0879232e-03 0.00e+00 3.07e-05 -8.4 4.48e-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
63 6.0879227e-03 0.00e+00 6.08e-04 -8.4 2.89e-02 - 1.00e+00 3.11e-02f 5
Warning: Cutting back alpha due to evaluation error
64 6.0879202e-03 0.00e+00 1.46e-04 -8.4 1.37e-02 - 1.00e+00 6.08e-02f 5
65 6.0879228e-03 0.00e+00 7.32e-05 -8.4 3.21e-03 - 9.69e-01 2.50e-01f 3
66 6.0879538e-03 0.00e+00 6.58e-05 -8.4 5.26e-03 - 1.00e+00 1.00e+00h 1
67 6.0879287e-03 0.00e+00 7.47e-05 -8.4 2.51e-03 - 1.00e+00 1.00e+00f 1
68 6.0879273e-03 0.00e+00 7.02e-05 -8.4 7.74e-03 - 1.00e+00 1.25e-01h 4
69 6.0879247e-03 0.00e+00 4.52e-05 -8.4 4.25e-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.0879732e-03 0.00e+00 6.68e-05 -8.4 1.03e-02 - 1.00e+00 4.93e-01h 2
Warning: Cutting back alpha due to evaluation error
71 6.0879506e-03 0.00e+00 6.26e-05 -8.4 1.28e-02 - 1.00e+00 2.50e-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
72 6.0879506e-03 0.00e+00 5.85e-05 -8.4 9.82e-03 - 3.98e-01 3.69e-10h 32
Warning: Cutting back alpha due to evaluation error
73 6.0879506e-03 0.00e+00 6.05e-05 -8.4 3.89e-02 - 4.67e-01 7.63e-06h 18
Warning: Cutting back alpha due to evaluation error
Warning: Cutting back alpha due to evaluation error
Warning: Cutting back alpha due to evaluation error
74 6.0879500e-03 0.00e+00 6.02e-05 -8.4 2.77e-02 - 1.00e+00 1.83e-03f 9
Warning: Cutting back alpha due to evaluation error
Warning: Cutting back alpha due to evaluation error
Warning: Cutting back alpha due to evaluation error
75 6.0879426e-03 0.00e+00 1.04e-04 -8.4 1.65e-02 - 5.13e-01 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
76 6.0879420e-03 0.00e+00 4.24e-05 -8.4 1.85e-02 - 5.50e-01 7.81e-03f 8
77 6.0879420e-03 0.00e+00 4.60e-05 -8.4 1.87e-03 - 1.00e+00 4.77e-07h 22
78 6.0879664e-03 0.00e+00 4.24e-05 -8.4 1.25e-02 - 1.00e+00 1.00e+00w 1
Warning: Cutting back alpha due to evaluation error
79 6.0879362e-03 0.00e+00 3.83e-05 -8.4 3.64e-02 - 1.00e+00 1.25e-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
80 6.0879362e-03 0.00e+00 3.57e-05 -8.4 3.59e-02 - 1.53e-01 7.88e-06h 16
81 6.0879322e-03 0.00e+00 3.43e-05 -8.4 2.73e-03 - 1.00e+00 1.25e-01f 4
Warning: Cutting back alpha due to evaluation error
Warning: Cutting back alpha due to evaluation error
82 6.0879295e-03 0.00e+00 3.91e-05 -8.4 5.28e-03 - 7.71e-01 1.25e-01f 4
Warning: Cutting back alpha due to evaluation error
Warning: Cutting back alpha due to evaluation error
83 6.0879295e-03 0.00e+00 1.49e-05 -8.4 3.19e-03 - 9.31e-01 7.09e-03f 8
84 6.0879204e-03 0.00e+00 7.44e-06 -8.4 6.14e-04 - 1.00e+00 1.00e+00h 1
85 6.0879208e-03 0.00e+00 3.70e-06 -8.4 1.21e-03 - 1.00e+00 1.00e+00h 1
Buckling-constrained result:
obj = 0.006088090114746645
vol = -2.3092344774711115e-6
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.7999557695228199
Buckling-constrained min eigenvalue: 0.0017642759244268199
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, WGLMakie
fig1 = visualize(problem; static=true, u=solver.u, topology=r1.minimizer, default_exagg_scale=0.0)
fig2 = visualize(problem; static=true, u=solver.u, topology=r2.minimizer, default_exagg_scale=0.0)
display_app(fig1)
display_app(fig2)The buckling-constrained design typically shows thicker compression members and more stable load paths compared to the compliance-only design.