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.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 5.4e-02 4.4e-02 0.0e+00 5.8e+32 [ Info: 3 5.4e+01 5.4e+01 0.0e+00 4.1e+31 [ Info: 4 5.4e+01 0.0e+00 0.0e+00 1.7e+28 [ Info: 5 5.4e+01 0.0e+00 0.0e+00 2.8e+25 [ Info: 6 5.4e+01 0.0e+00 0.0e+00 2.8e+22 [ Info: 7 5.4e+01 0.0e+00 0.0e+00 2.8e+19 [ Info: 8 5.4e+01 0.0e+00 0.0e+00 2.8e+16 [ Info: 9 1.4e-02 5.4e+01 0.0e+00 2.0e+04 [ Info: 10 8.3e-03 6.1e-03 0.0e+00 1.3e-03 [ Info: 11 6.5e-03 1.9e-03 0.0e+00 4.0e-04 [ Info: 12 6.2e-03 2.9e-04 0.0e+00 1.1e-03 [ Info: 13 6.2e-03 2.9e-06 0.0e+00 5.5e-05 ComplianceFun-only result: obj = 0.006166837601340131 vol = -0.025075445553046527
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.3268361058670979e+02 -2.3268361058670979e+02
Dual infeasibility......: 9.0859979739434869e-10 9.0859979739434869e-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.0859979739434869e-10 9.0859979739434869e-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.627
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.3259812936628041e+01 -2.3259812936628041e+01
Dual infeasibility......: 1.0679312936568731e-09 1.0679312936568731e-09
Constraint violation....: 0.0000000000000000e+00 0.0000000000000000e+00
Variable bound violation: 0.0000000000000000e+00 0.0000000000000000e+00
Complementarity.........: 1.0000000000003714e-11 1.0000000000003714e-11
Overall NLP error.......: 1.0679312936568731e-09 1.0679312936568731e-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.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 -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.2330597496211724e-09 1.2330597496211724e-09
Constraint violation....: 0.0000000000000000e+00 0.0000000000000000e+00
Variable bound violation: 0.0000000000000000e+00 0.0000000000000000e+00
Complementarity.........: 1.0000000000000179e-11 1.0000000000000179e-11
Overall NLP error.......: 1.2330597496211724e-09 1.2330597496211724e-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.016
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.2382205830250979e-01 -2.2382205830250979e-01
Dual infeasibility......: 4.7684533663421489e-09 4.7684533663421489e-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.7684533663421489e-09 4.7684533663421489e-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.5954029329887529e-02 -1.5954029329887529e-02
Dual infeasibility......: 8.0383938338634379e-09 8.0383938338634379e-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.0383938338634379e-09 8.0383938338634379e-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.9318503221212504e-03 3.9318503221212504e-03
Dual infeasibility......: 5.2873032936507076e-09 5.2873032936507076e-09
Constraint violation....: 0.0000000000000000e+00 0.0000000000000000e+00
Variable bound violation: 0.0000000000000000e+00 0.0000000000000000e+00
Complementarity.........: 1.0000171411304681e-11 1.0000171411304681e-11
Overall NLP error.......: 5.2873032936507076e-09 5.2873032936507076e-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.020
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-01h 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.8835322e-03 0.00e+00 2.97e-06 -7.4 1.52e-03 - 1.00e+00 1.00e+00H 1
22 5.8835306e-03 0.00e+00 6.45e-08 -7.4 1.17e-03 - 1.00e+00 1.00e+00f 1
23 5.8827366e-03 0.00e+00 8.08e-07 -9.0 5.37e-03 - 1.00e+00 1.00e+00f 1
24 5.8827318e-03 0.00e+00 4.50e-06 -10.2 8.69e-03 - 1.00e+00 1.00e+00f 1
25 5.8827243e-03 0.00e+00 2.21e-06 -10.7 4.65e-03 - 1.00e+00 5.00e-01f 2
26 5.8827155e-03 0.00e+00 3.09e-07 -11.0 4.53e-03 - 1.00e+00 1.00e+00f 1
27 5.8827156e-03 0.00e+00 3.53e-07 -11.0 3.82e-04 - 1.00e+00 1.00e+00h 1
28 5.8827154e-03 0.00e+00 3.20e-08 -11.0 5.34e-04 - 1.00e+00 1.00e+00h 1
29 5.8827154e-03 0.00e+00 5.61e-08 -11.0 8.55e-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 5.8827154e-03 0.00e+00 2.92e-08 -11.0 4.41e-05 - 1.00e+00 1.00e+00h 1
31 5.8827154e-03 0.00e+00 1.35e-08 -11.0 1.86e-05 - 1.00e+00 1.00e+00h 1
32 5.8827154e-03 0.00e+00 3.03e-09 -11.0 5.52e-06 - 1.00e+00 1.00e+00h 1
Number of Iterations....: 32
(scaled) (unscaled)
Objective...............: 5.8827154104889277e-03 5.8827154104889277e-03
Dual infeasibility......: 3.0331791302046032e-09 3.0331791302046032e-09
Constraint violation....: 0.0000000000000000e+00 0.0000000000000000e+00
Variable bound violation: 0.0000000000000000e+00 0.0000000000000000e+00
Complementarity.........: 1.0000000009188241e-11 1.0000000009188241e-11
Overall NLP error.......: 3.0331791302046032e-09 3.0331791302046032e-09
Number of objective function evaluations = 42
Number of objective gradient evaluations = 33
Number of equality constraint evaluations = 0
Number of inequality constraint evaluations = 42
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.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.1339925e-03 0.00e+00 2.32e-02 0.0 0.00e+00 - 0.00e+00 0.00e+00 0
1 6.1354978e-03 0.00e+00 2.73e-03 -6.3 5.02e-03 - 9.79e-01 1.00e+00h 1
2 6.1342217e-03 0.00e+00 2.91e-05 -8.0 4.10e-04 - 9.89e-01 1.00e+00f 1
3 6.1149769e-03 0.00e+00 1.31e-06 -5.8 7.68e-03 - 1.00e+00 1.00e+00f 1
4 6.0751687e-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.0729784e-03 0.00e+00 1.02e-05 -8.1 8.64e-02 - 1.00e+00 5.00e-01f 2
Warning: Cutting back alpha due to evaluation error
6 6.0711069e-03 0.00e+00 2.51e-05 -7.9 6.90e-01 - 1.00e+00 1.76e-01f 2
7 6.0707799e-03 0.00e+00 1.86e-05 -7.5 2.70e-01 - 1.00e+00 1.03e-01f 2
Warning: Cutting back alpha due to evaluation error
8 6.0701559e-03 0.00e+00 5.87e-05 -7.7 4.81e-02 - 1.00e+00 4.58e-01f 2
9 6.0703720e-03 0.00e+00 2.27e-05 -7.1 6.10e-02 - 1.00e+00 1.98e-01f 3
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
10 6.0705951e-03 0.00e+00 6.04e-06 -7.2 2.30e-02 - 1.00e+00 1.00e+00f 1
11 6.0705862e-03 0.00e+00 7.15e-06 -7.2 9.42e-03 - 1.00e+00 1.25e-01f 4
12 6.0705464e-03 0.00e+00 5.19e-06 -7.2 1.92e-03 - 1.00e+00 1.00e+00h 1
13 6.0705249e-03 0.00e+00 1.69e-06 -7.2 2.19e-03 - 1.00e+00 1.00e+00h 1
14 6.0705242e-03 0.00e+00 1.47e-06 -7.2 2.19e-03 - 1.00e+00 5.00e-01h 2
15 6.0705335e-03 0.00e+00 1.42e-06 -7.2 2.49e-03 - 1.00e+00 1.00e+00h 1
16 6.0705255e-03 0.00e+00 1.39e-06 -7.2 2.35e-03 - 1.00e+00 1.00e+00h 1
17 6.0705205e-03 0.00e+00 2.36e-06 -7.2 2.65e-03 - 1.00e+00 1.00e+00h 1
18 6.0705289e-03 0.00e+00 3.65e-07 -7.2 2.93e-03 - 1.00e+00 1.00e+00h 1
19 6.0699589e-03 0.00e+00 4.70e-05 -9.0 8.05e-02 - 8.96e-01 4.66e-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
20 6.0698610e-03 0.00e+00 3.60e-05 -7.5 3.26e-02 - 1.00e+00 2.50e-01f 3
21 6.0723680e-03 0.00e+00 2.80e-05 -7.0 1.17e-01 - 1.00e+00 1.00e+00f 1
22 6.0721740e-03 0.00e+00 1.95e-05 -7.1 6.18e-02 - 8.46e-01 2.50e-01f 3
23 6.0711455e-03 0.00e+00 1.54e-05 -7.1 6.43e-02 - 1.00e+00 1.00e+00f 1
Warning: Cutting back alpha due to evaluation error
24 6.0710849e-03 0.00e+00 8.48e-06 -7.1 1.94e-02 - 1.00e+00 1.63e-01f 3
25 6.0710921e-03 0.00e+00 4.91e-06 -7.1 7.23e-03 - 1.00e+00 1.00e+00f 1
26 6.0710816e-03 0.00e+00 3.46e-06 -7.1 6.96e-03 - 1.00e+00 1.00e+00f 1
27 6.0710725e-03 0.00e+00 2.84e-06 -7.1 1.35e-03 - 1.00e+00 5.00e-01f 2
28 6.0710764e-03 0.00e+00 4.65e-07 -7.1 1.60e-03 - 1.00e+00 1.00e+00h 1
Warning: Cutting back alpha due to evaluation error
29 6.0700945e-03 0.00e+00 1.72e-05 -9.0 5.95e-02 - 9.17e-01 5.00e-01f 2
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
30 6.0700819e-03 0.00e+00 5.32e-05 -9.0 1.06e-01 - 5.42e-01 2.32e-01f 2
31 6.0698869e-03 0.00e+00 5.01e-05 -9.0 5.81e-02 - 5.60e-01 4.50e-01f 2
32 6.0696695e-03 0.00e+00 2.12e-05 -9.0 3.77e-02 - 2.87e-01 5.00e-01f 2
Warning: Cutting back alpha due to evaluation error
33 6.0695689e-03 0.00e+00 1.76e-05 -7.8 7.79e-02 - 1.00e+00 3.98e-01f 2
34 6.0695418e-03 0.00e+00 1.41e-05 -7.9 4.62e-02 - 1.00e+00 2.50e-01f 3
35 6.0694791e-03 0.00e+00 8.23e-06 -8.1 2.27e-02 - 1.00e+00 5.00e-01f 2
Warning: Cutting back alpha due to evaluation error
36 6.0693667e-03 0.00e+00 2.86e-05 -9.3 3.04e-02 - 1.00e+00 5.00e-01f 2
37 6.0693553e-03 0.00e+00 1.03e-05 -8.2 5.62e-02 - 1.00e+00 7.72e-02f 4
38 6.0692996e-03 0.00e+00 9.03e-06 -8.7 1.67e-02 - 1.00e+00 1.00e+00f 1
39 6.0692475e-03 0.00e+00 5.66e-06 -9.6 3.74e-03 - 1.00e+00 1.00e+00f 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
40 6.0692294e-03 0.00e+00 3.85e-06 -10.7 4.81e-03 - 1.00e+00 1.00e+00f 1
41 6.0692281e-03 0.00e+00 1.25e-06 -11.0 6.10e-03 - 1.00e+00 5.00e-01h 2
42 6.0692746e-03 0.00e+00 2.24e-05 -11.0 2.13e-02 - 1.00e+00 5.00e-01h 2
43 6.0692312e-03 0.00e+00 5.39e-06 -11.0 3.72e-03 - 1.00e+00 1.00e+00f 1
44 6.0692470e-03 0.00e+00 1.93e-05 -11.0 8.32e-03 - 1.00e+00 1.00e+00h 1
45 6.0692393e-03 0.00e+00 6.82e-06 -11.0 3.64e-03 - 1.00e+00 5.00e-01f 2
46 6.0692270e-03 0.00e+00 1.42e-06 -11.0 6.13e-03 - 1.00e+00 1.00e+00f 1
47 6.0692306e-03 0.00e+00 3.91e-06 -11.0 1.63e-03 - 1.00e+00 1.00e+00H 1
48 6.0692265e-03 0.00e+00 2.27e-07 -11.0 1.77e-03 - 1.00e+00 1.00e+00f 1
49 6.0692266e-03 0.00e+00 8.11e-07 -11.0 6.95e-04 - 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.0692269e-03 0.00e+00 1.32e-06 -11.0 1.88e-03 - 1.00e+00 5.00e-01h 2
51 6.0692286e-03 0.00e+00 6.03e-06 -11.0 1.40e-03 - 1.00e+00 5.00e-01h 2
52 6.0692266e-03 0.00e+00 8.49e-07 -11.0 1.47e-03 - 1.00e+00 1.00e+00f 1
53 6.0692267e-03 0.00e+00 1.39e-06 -11.0 2.25e-03 - 1.00e+00 2.50e-01h 3
54 6.0692264e-03 0.00e+00 8.43e-08 -11.0 2.73e-04 - 1.00e+00 1.00e+00h 1
55 6.0692264e-03 0.00e+00 8.12e-08 -11.0 1.11e-04 - 1.00e+00 1.00e+00h 1
56 6.0692265e-03 0.00e+00 4.58e-07 -11.0 8.28e-04 - 1.00e+00 1.00e+00H 1
57 6.0692265e-03 0.00e+00 2.96e-07 -11.0 7.87e-04 - 1.00e+00 1.25e-01h 4
58 6.0692264e-03 0.00e+00 2.22e-07 -11.0 1.31e-03 - 1.00e+00 1.00e+00h 1
59 6.0692264e-03 0.00e+00 2.15e-07 -11.0 1.54e-03 - 1.00e+00 1.56e-02h 7
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
60 6.0692264e-03 0.00e+00 5.45e-08 -11.0 5.72e-04 - 1.00e+00 1.00e+00h 1
61 6.0692267e-03 0.00e+00 1.39e-06 -11.0 4.92e-04 - 1.00e+00 1.00e+00h 1
62 6.0692264e-03 0.00e+00 1.01e-07 -11.0 3.86e-04 - 1.00e+00 1.00e+00h 1
63 6.0692264e-03 0.00e+00 4.50e-08 -11.0 2.52e-04 - 1.00e+00 2.50e-01h 3
64 6.0692264e-03 0.00e+00 2.98e-08 -11.0 4.23e-05 - 1.00e+00 5.00e-01h 2
65 6.0692264e-03 0.00e+00 5.30e-08 -11.0 5.07e-05 - 1.00e+00 1.00e+00H 1
66 6.0692264e-03 0.00e+00 4.11e-08 -11.0 3.32e-05 - 1.00e+00 1.25e-01h 4
67 6.0692264e-03 0.00e+00 7.38e-08 -11.0 2.44e-05 - 1.00e+00 1.00e+00h 1
68 6.0692264e-03 0.00e+00 2.55e-08 -11.0 7.09e-05 - 1.00e+00 2.50e-01h 3
69 6.0692264e-03 0.00e+00 8.15e-09 -11.0 2.27e-05 - 1.00e+00 1.00e+00h 1
Number of Iterations....: 69
(scaled) (unscaled)
Objective...............: 6.0692263975253048e-03 6.0692263975253048e-03
Dual infeasibility......: 8.1474126810847163e-09 8.1474126810847163e-09
Constraint violation....: 0.0000000000000000e+00 0.0000000000000000e+00
Variable bound violation: 0.0000000000000000e+00 0.0000000000000000e+00
Complementarity.........: 1.0000003121561306e-11 1.0000003121561306e-11
Overall NLP error.......: 8.1474126810847163e-09 8.1474126810847163e-09
Number of objective function evaluations = 150
Number of objective gradient evaluations = 70
Number of equality constraint evaluations = 0
Number of inequality constraint evaluations = 150
Number of equality constraint Jacobian evaluations = 0
Number of inequality constraint Jacobian evaluations = 70
Number of Lagrangian Hessian evaluations = 0
Total seconds in IPOPT = 0.204
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.1472664e-03 0.00e+00 2.32e-02 0.0 0.00e+00 - 0.00e+00 0.00e+00 0
1 6.1485504e-03 0.00e+00 2.96e-03 -6.3 5.48e-03 - 9.78e-01 1.00e+00h 1
2 6.1473295e-03 0.00e+00 3.52e-05 -8.0 6.86e-04 - 9.88e-01 1.00e+00f 1
3 6.1491428e-03 0.00e+00 6.85e-06 -5.6 1.87e-02 - 9.97e-01 1.00e+00f 1
4 6.1563801e-03 0.00e+00 6.03e-05 -5.6 4.86e-01 - 9.06e-01 1.00e+00f 1
5 6.1554666e-03 0.00e+00 1.12e-05 -5.6 1.13e-01 - 1.00e+00 2.50e-01f 3
6 6.0970618e-03 0.00e+00 7.96e-06 -8.4 1.30e-01 - 5.54e-01 9.64e-01f 1
7 6.0971916e-03 0.00e+00 6.22e-05 -6.5 1.82e-01 - 9.99e-01 1.00e+00f 1
8 6.0948002e-03 0.00e+00 2.09e-05 -6.6 1.25e-01 - 1.00e+00 5.00e-01f 2
Warning: Cutting back alpha due to evaluation error
9 6.0913097e-03 0.00e+00 3.12e-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.0888484e-03 0.00e+00 9.94e-06 -8.6 1.72e-01 - 1.00e+00 4.15e-01f 2
11 6.0886508e-03 0.00e+00 4.80e-05 -8.0 1.09e-01 - 1.00e+00 2.25e-01f 2
Warning: Cutting back alpha due to evaluation error
Warning: Cutting back alpha due to evaluation error
12 6.0879061e-03 0.00e+00 6.11e-05 -9.0 6.40e-02 - 1.00e+00 2.48e-01f 3
13 6.0933349e-03 0.00e+00 3.21e-05 -6.8 1.93e-01 - 1.00e+00 1.00e+00f 1
14 6.0929880e-03 0.00e+00 1.84e-05 -6.8 1.02e-01 - 1.00e+00 2.18e-01f 3
15 6.0915053e-03 0.00e+00 1.43e-05 -6.8 7.35e-02 - 1.00e+00 1.00e+00f 1
Warning: Cutting back alpha due to evaluation error
16 6.0913792e-03 0.00e+00 1.63e-05 -6.8 6.63e-02 - 7.39e-01 2.37e-01f 3
17 6.0913192e-03 0.00e+00 2.17e-05 -6.8 8.19e-03 - 1.00e+00 1.00e+00f 1
18 6.0913471e-03 0.00e+00 3.90e-06 -6.8 5.63e-03 - 1.00e+00 1.00e+00f 1
19 6.0912975e-03 0.00e+00 9.54e-07 -6.8 2.14e-03 - 1.00e+00 1.00e+00h 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.0889007e-03 0.00e+00 1.80e-05 -9.0 1.29e-01 - 8.22e-01 4.64e-01f 2
Warning: Cutting back alpha due to evaluation error
21 6.0882540e-03 0.00e+00 3.54e-05 -9.0 1.60e-01 - 9.73e-01 2.33e-01f 2
Warning: Cutting back alpha due to evaluation error
Warning: Cutting back alpha due to evaluation error
22 6.0877833e-03 0.00e+00 3.59e-04 -9.0 6.20e-02 - 7.10e-01 2.17e-01f 3
23 6.0877857e-03 0.00e+00 2.65e-05 -7.2 2.70e-02 - 1.00e+00 7.98e-02f 4
24 6.0879029e-03 0.00e+00 1.70e-05 -7.3 2.98e-02 - 6.80e-01 1.00e+00f 1
25 6.0879141e-03 0.00e+00 1.51e-05 -7.3 1.16e-02 - 1.00e+00 5.00e-01f 2
26 6.0878829e-03 0.00e+00 1.25e-05 -7.3 4.56e-03 - 1.00e+00 1.00e+00f 1
27 6.0877285e-03 0.00e+00 8.92e-06 -7.3 1.54e-02 - 1.00e+00 1.00e+00f 1
Warning: Cutting back alpha due to evaluation error
28 6.0871570e-03 0.00e+00 2.35e-05 -8.2 7.47e-02 - 1.00e+00 4.86e-01f 2
29 6.0868550e-03 0.00e+00 4.56e-05 -9.0 4.19e-02 - 1.00e+00 3.31e-01f 2
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
30 6.0961285e-03 0.00e+00 3.01e-05 -6.9 2.27e-01 - 9.74e-01 1.00e+00f 1
31 6.0957911e-03 0.00e+00 3.59e-05 -6.7 1.61e-01 - 9.91e-01 1.93e-01f 2
32 6.0930856e-03 0.00e+00 1.53e-05 -6.7 7.21e-02 - 1.00e+00 1.00e+00f 1
Warning: Cutting back alpha due to evaluation error
33 6.0925300e-03 0.00e+00 2.35e-05 -6.7 3.14e-02 - 9.74e-01 4.08e-01f 2
34 6.0922580e-03 0.00e+00 5.98e-06 -6.7 6.57e-03 - 1.00e+00 1.00e+00f 1
35 6.0922537e-03 0.00e+00 2.28e-06 -6.7 3.66e-03 - 1.00e+00 5.00e-01f 2
36 6.0922780e-03 0.00e+00 1.12e-06 -6.7 2.15e-03 - 1.00e+00 1.00e+00f 1
Warning: Cutting back alpha due to evaluation error
37 6.0896595e-03 0.00e+00 9.81e-06 -9.0 6.99e-02 - 8.93e-01 4.81e-01f 2
38 6.0889258e-03 0.00e+00 3.00e-05 -9.0 2.78e-01 - 9.71e-01 1.97e-01f 2
Warning: Cutting back alpha due to evaluation error
39 6.0882630e-03 0.00e+00 8.60e-05 -9.0 1.22e-01 - 9.85e-01 2.45e-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
40 6.0877460e-03 0.00e+00 4.54e-04 -9.0 8.37e-02 - 4.31e-01 2.19e-01f 2
41 6.0877227e-03 0.00e+00 8.10e-05 -9.0 1.60e-01 - 1.68e-01 1.58e-02f 4
42 6.0874943e-03 0.00e+00 4.05e-05 -9.0 3.76e-02 - 1.49e-01 2.72e-01f 2
43 6.0865035e-03 0.00e+00 1.71e-05 -9.0 8.94e-03 - 9.69e-01 1.00e+00f 1
44 6.0864144e-03 0.00e+00 3.33e-05 -10.0 6.98e-02 - 1.00e+00 2.18e-01f 2
Warning: Cutting back alpha due to evaluation error
45 6.0863961e-03 0.00e+00 1.90e-05 -11.0 5.93e-02 - 5.32e-01 7.71e-02f 3
Warning: Cutting back alpha due to evaluation error
46 6.0863641e-03 0.00e+00 1.84e-05 -11.0 2.21e-02 - 1.00e+00 4.03e-01f 2
Warning: Cutting back alpha due to evaluation error
47 6.0863509e-03 0.00e+00 1.42e-05 -9.3 3.15e-02 - 1.00e+00 1.14e-01f 3
48 6.0863534e-03 0.00e+00 2.41e-05 -8.8 7.19e-03 - 1.00e+00 1.25e-01f 4
Warning: Cutting back alpha due to evaluation error
49 6.0863410e-03 0.00e+00 8.24e-06 -9.0 1.07e-02 - 1.00e+00 5.00e-01f 2
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
50 6.0863454e-03 0.00e+00 1.08e-05 -8.8 2.32e-02 - 1.00e+00 1.25e-01f 4
51 6.0863442e-03 0.00e+00 9.13e-06 -8.9 6.99e-03 - 1.00e+00 2.50e-01h 3
Warning: Cutting back alpha due to evaluation error
52 6.0863397e-03 0.00e+00 7.32e-06 -8.9 9.17e-03 - 1.00e+00 2.50e-01f 3
Warning: Cutting back alpha due to evaluation error
Warning: Cutting back alpha due to evaluation error
53 6.0863348e-03 0.00e+00 3.29e-05 -9.6 1.80e-02 - 1.00e+00 9.90e-02f 4
54 6.0863263e-03 0.00e+00 8.82e-06 -10.1 8.72e-03 - 1.00e+00 5.00e-01f 2
Warning: Cutting back alpha due to evaluation error
55 6.0863259e-03 0.00e+00 1.36e-05 -9.3 1.96e-02 - 1.00e+00 6.25e-02f 5
Warning: Cutting back alpha due to evaluation error
56 6.0863312e-03 0.00e+00 7.56e-06 -8.8 2.05e-02 - 1.00e+00 1.25e-01f 4
57 6.0863353e-03 0.00e+00 9.66e-06 -9.0 7.72e-03 - 1.00e+00 5.00e-01f 2
58 6.0863339e-03 0.00e+00 7.89e-06 -9.0 1.06e-02 - 1.00e+00 1.25e-01f 4
59 6.0863327e-03 0.00e+00 4.72e-06 -9.0 3.03e-03 - 1.00e+00 2.50e-01h 3
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.0863427e-03 0.00e+00 2.13e-04 -9.0 9.71e-03 - 1.00e+00 2.50e-01h 3
61 6.0863379e-03 0.00e+00 3.37e-05 -9.0 9.35e-03 - 1.00e+00 2.50e-01f 3
Warning: Cutting back alpha due to evaluation error
62 6.0863368e-03 0.00e+00 1.25e-05 -9.0 5.30e-02 - 3.39e-01 1.25e-01f 4
63 6.0863354e-03 0.00e+00 9.27e-06 -9.0 3.15e-03 - 1.00e+00 6.25e-02f 5
64 6.0863308e-03 0.00e+00 1.09e-05 -9.0 2.24e-03 - 1.00e+00 1.00e+00f 1
65 6.0863490e-03 0.00e+00 1.42e-05 -9.0 6.53e-04 - 1.00e+00 1.00e+00h 1
66 6.0863303e-03 0.00e+00 9.20e-06 -9.0 6.22e-04 - 1.00e+00 1.00e+00f 1
67 6.0863298e-03 0.00e+00 8.80e-06 -9.0 1.39e-03 - 1.00e+00 1.00e+00h 1
68 6.0863297e-03 0.00e+00 4.92e-06 -9.0 3.17e-02 - 1.19e-01 3.41e-03f 8
69 6.0863298e-03 0.00e+00 9.61e-07 -9.0 9.43e-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.0863298e-03 0.00e+00 1.10e-06 -9.0 2.09e-03 - 1.00e+00 1.25e-01h 4
71 6.0863302e-03 0.00e+00 1.03e-06 -9.0 2.51e-03 - 1.00e+00 5.00e-01h 2
72 6.0863302e-03 0.00e+00 6.47e-07 -9.0 8.14e-04 - 1.00e+00 3.12e-02h 6
73 6.0863299e-03 0.00e+00 1.90e-07 -9.0 7.00e-04 - 1.00e+00 1.00e+00h 1
74 6.0863298e-03 0.00e+00 1.29e-07 -9.0 1.41e-03 - 1.00e+00 3.12e-02h 6
75 6.0863298e-03 0.00e+00 9.28e-08 -9.0 3.70e-05 - 1.00e+00 1.00e+00h 1
76 6.0863299e-03 0.00e+00 8.20e-07 -9.0 2.76e-04 - 1.00e+00 1.25e-01h 4
77 6.0863299e-03 0.00e+00 7.60e-07 -9.0 2.40e-04 - 1.00e+00 4.88e-04h 12
78 6.0863299e-03 0.00e+00 3.92e-08 -9.0 2.53e-05 - 1.00e+00 1.00e+00h 1
79 6.0863299e-03 0.00e+00 1.30e-07 -9.0 3.74e-05 - 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.0863299e-03 0.00e+00 2.88e-07 -9.0 9.30e-05 - 1.00e+00 1.00e+00h 1
81 6.0863299e-03 0.00e+00 3.27e-07 -9.0 7.48e-05 - 1.00e+00 5.00e-01h 2
82 6.0863299e-03 0.00e+00 1.75e-07 -9.0 2.27e-04 - 1.00e+00 5.00e-01h 2
83 6.0863299e-03 0.00e+00 1.55e-07 -9.0 1.60e-04 - 1.00e+00 1.25e-01h 4
84 6.0863299e-03 0.00e+00 3.73e-07 -9.0 5.68e-05 - 1.00e+00 1.25e-01h 4
85 6.0863299e-03 0.00e+00 9.42e-08 -9.0 7.03e-05 - 1.00e+00 2.50e-01h 3
86 6.0863299e-03 0.00e+00 1.19e-07 -9.0 7.60e-04 - 1.00e+00 1.25e-01h 4
Number of Iterations....: 86
(scaled) (unscaled)
Objective...............: 6.0863298686051068e-03 6.0863298686051068e-03
Dual infeasibility......: 1.1894254191351897e-07 1.1894254191351897e-07
Constraint violation....: 0.0000000000000000e+00 0.0000000000000000e+00
Variable bound violation: 0.0000000000000000e+00 0.0000000000000000e+00
Complementarity.........: 1.0387597767821062e-09 1.0387597767821062e-09
Overall NLP error.......: 1.1894254191351897e-07 1.1894254191351897e-07
Number of objective function evaluations = 248
Number of objective gradient evaluations = 87
Number of equality constraint evaluations = 0
Number of inequality constraint evaluations = 248
Number of equality constraint Jacobian evaluations = 0
Number of inequality constraint Jacobian evaluations = 87
Number of Lagrangian Hessian evaluations = 0
Total seconds in IPOPT = 0.200
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.1439817e-03 0.00e+00 2.32e-02 0.0 0.00e+00 - 0.00e+00 0.00e+00 0
1 6.1456757e-03 0.00e+00 4.19e-03 -6.3 7.81e-03 - 9.72e-01 1.00e+00h 1
2 6.1446369e-03 0.00e+00 5.49e-05 -7.9 8.41e-04 - 9.87e-01 1.00e+00f 1
3 6.1621399e-03 0.00e+00 1.94e-06 -5.4 1.36e-02 - 1.00e+00 1.00e+00f 1
4 6.2078807e-03 0.00e+00 1.15e-03 -5.5 8.49e-01 - 4.63e-01 7.23e-01f 1
5 6.1747995e-03 0.00e+00 5.75e-05 -5.5 1.66e-01 - 3.15e-02 1.00e+00f 1
6 6.1686888e-03 0.00e+00 2.70e-05 -5.5 7.05e-02 - 1.00e+00 1.00e+00f 1
7 6.1018445e-03 0.00e+00 1.48e-05 -8.3 7.07e-02 - 6.96e-01 9.49e-01f 1
8 6.1028460e-03 0.00e+00 2.76e-05 -6.5 1.34e-01 - 9.76e-01 1.00e+00f 1
9 6.1006186e-03 0.00e+00 3.87e-05 -6.6 1.10e-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.0957524e-03 0.00e+00 9.30e-05 -7.2 6.25e-02 - 1.00e+00 1.00e+00f 1
11 6.0980278e-03 0.00e+00 3.09e-05 -6.7 6.14e-02 - 1.00e+00 1.00e+00f 1
12 6.0954678e-03 0.00e+00 2.34e-05 -6.8 4.91e-02 - 1.00e+00 1.00e+00f 1
Warning: Cutting back alpha due to evaluation error
13 6.0926482e-03 0.00e+00 2.27e-05 -7.2 1.37e-01 - 1.00e+00 4.54e-01f 2
14 6.0910227e-03 0.00e+00 2.59e-05 -8.1 2.13e-01 - 1.00e+00 2.20e-01f 2
15 6.1078888e-03 0.00e+00 2.89e-05 -6.4 3.64e-01 - 1.00e+00 1.00e+00f 1
16 6.1037538e-03 0.00e+00 2.80e-05 -6.4 2.32e-01 - 1.00e+00 5.00e-01f 2
17 6.1022228e-03 0.00e+00 2.33e-05 -6.4 2.05e-01 - 1.00e+00 3.93e-01f 2
18 6.1003475e-03 0.00e+00 1.77e-05 -6.4 7.23e-02 - 1.00e+00 1.00e+00f 1
19 6.1001383e-03 0.00e+00 1.10e-05 -6.4 2.49e-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.1000772e-03 0.00e+00 2.24e-06 -6.4 1.07e-02 - 1.00e+00 1.00e+00f 1
21 6.0895239e-03 0.00e+00 9.04e-06 -9.0 1.16e-01 - 8.06e-01 9.81e-01f 1
Warning: Cutting back alpha due to evaluation error
22 6.0893402e-03 0.00e+00 5.39e-05 -8.1 1.51e-01 - 1.00e+00 1.67e-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
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.0893250e-03 0.00e+00 5.83e-05 -8.9 9.25e-02 - 1.00e+00 7.81e-03f 8
Warning: Cutting back alpha due to evaluation error
24 6.0885931e-03 0.00e+00 3.20e-05 -7.6 4.31e-01 - 1.00e+00 1.33e-01f 2
25 6.0885213e-03 0.00e+00 3.90e-05 -8.4 5.39e-02 - 1.00e+00 2.25e-01f 2
26 6.0882651e-03 0.00e+00 3.51e-05 -9.6 7.66e-02 - 1.00e+00 3.01e-01f 2
27 6.0881861e-03 0.00e+00 2.89e-05 -11.0 1.01e-01 - 1.57e-01 8.35e-02f 2
28 6.0879318e-03 0.00e+00 2.94e-05 -10.2 2.69e-02 - 1.00e+00 1.00e+00f 1
29 6.0882825e-03 0.00e+00 1.11e-04 -7.8 3.78e-02 - 7.54e-01 2.79e-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
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
30 6.0882470e-03 0.00e+00 8.84e-05 -8.1 6.21e-03 - 4.54e-01 6.25e-02f 5
31 6.0880829e-03 0.00e+00 4.50e-05 -8.1 7.89e-03 - 8.83e-01 4.57e-01f 2
32 6.0880831e-03 0.00e+00 2.91e-05 -8.1 2.97e-03 - 1.00e+00 1.00e+00f 1
Warning: Cutting back alpha due to evaluation error
33 6.0880411e-03 0.00e+00 2.48e-05 -8.1 1.34e-02 - 1.00e+00 5.00e-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
34 6.0880352e-03 0.00e+00 2.01e-05 -8.1 1.19e-02 - 1.00e+00 5.46e-02f 5
35 6.0880495e-03 0.00e+00 2.39e-05 -8.1 2.67e-03 - 1.00e+00 1.00e+00f 1
36 6.0880286e-03 0.00e+00 1.37e-05 -8.1 2.91e-03 - 1.00e+00 1.00e+00h 1
Warning: Cutting back alpha due to evaluation error
Warning: Cutting back alpha due to evaluation error
37 6.0880268e-03 0.00e+00 8.65e-06 -8.1 3.25e-03 - 1.00e+00 1.25e-01f 4
38 6.0880316e-03 0.00e+00 3.15e-06 -8.1 1.33e-03 - 1.00e+00 1.00e+00h 1
39 6.0881471e-03 0.00e+00 7.07e-05 -8.1 4.54e-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.0880343e-03 0.00e+00 1.25e-05 -8.1 3.57e-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
Warning: Cutting back alpha due to evaluation error
41 6.0880335e-03 0.00e+00 6.35e-06 -8.1 4.67e-03 - 1.00e+00 3.12e-02h 6
42 6.0880340e-03 0.00e+00 9.91e-07 -8.1 1.65e-04 - 1.00e+00 1.00e+00h 1
43 6.0880356e-03 0.00e+00 4.59e-06 -8.1 8.47e-04 - 1.00e+00 1.00e+00h 1
44 6.0880444e-03 0.00e+00 1.18e-05 -8.1 2.71e-03 - 1.00e+00 1.00e+00h 1
45 6.0880384e-03 0.00e+00 1.86e-05 -8.1 1.36e-03 - 1.00e+00 1.00e+00f 1
Warning: Cutting back alpha due to evaluation error
46 6.0880464e-03 0.00e+00 1.39e-05 -8.1 8.03e-03 - 1.00e+00 5.00e-01f 2
47 6.0880412e-03 0.00e+00 1.37e-05 -8.1 2.60e-03 - 1.00e+00 2.50e-01h 3
48 6.0880407e-03 0.00e+00 1.67e-05 -8.1 7.81e-03 - 1.00e+00 6.25e-02h 5
Warning: Cutting back alpha due to evaluation error
Warning: Cutting back alpha due to evaluation error
49 6.0880373e-03 0.00e+00 1.06e-05 -8.1 7.01e-03 - 1.00e+00 6.25e-02f 5
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.0880347e-03 0.00e+00 3.40e-06 -8.1 2.11e-03 - 1.00e+00 2.50e-01h 3
51 6.0880360e-03 0.00e+00 2.59e-06 -8.1 7.57e-03 - 1.00e+00 5.00e-01h 2
Warning: Cutting back alpha due to evaluation error
52 6.0880395e-03 0.00e+00 4.78e-05 -8.1 1.03e-03 - 1.00e+00 5.00e-01h 2
53 6.0880345e-03 0.00e+00 6.28e-06 -8.1 1.56e-03 - 1.00e+00 1.00e+00f 1
Warning: Cutting back alpha due to evaluation error
Warning: Cutting back alpha due to evaluation error
54 6.0880360e-03 0.00e+00 1.77e-05 -8.1 1.38e-03 - 1.00e+00 2.50e-01h 3
Warning: Cutting back alpha due to evaluation error
55 6.0880360e-03 0.00e+00 1.76e-05 -8.1 7.56e-04 - 1.00e+00 7.63e-06h 18
56 6.0880356e-03 0.00e+00 6.39e-06 -8.1 2.58e-03 - 1.00e+00 1.56e-02f 7
57 6.0880345e-03 0.00e+00 1.93e-06 -8.1 1.44e-04 - 1.00e+00 1.00e+00h 1
58 6.0880347e-03 0.00e+00 1.00e-06 -8.1 2.51e-04 - 1.00e+00 2.50e-01h 3
59 6.0880342e-03 0.00e+00 6.86e-07 -8.1 3.11e-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.0880341e-03 0.00e+00 2.64e-07 -8.1 6.39e-04 - 1.00e+00 6.25e-02h 5
61 6.0880336e-03 0.00e+00 7.87e-07 -8.1 3.06e-04 - 1.00e+00 5.00e-01h 2
62 6.0880336e-03 0.00e+00 1.82e-06 -8.1 2.11e-03 - 1.00e+00 3.12e-02h 6
63 6.0880336e-03 0.00e+00 1.97e-06 -8.1 3.75e-03 - 1.00e+00 1.25e-01h 4
64 6.0880336e-03 0.00e+00 2.23e-06 -8.1 9.61e-04 - 1.00e+00 1.25e-01h 4
65 6.0880335e-03 0.00e+00 8.46e-07 -8.1 7.67e-04 - 1.00e+00 1.25e-01h 4
66 6.0880333e-03 0.00e+00 8.75e-07 -8.1 2.46e-03 - 1.00e+00 2.50e-01h 3
67 6.0880332e-03 0.00e+00 1.14e-06 -8.1 2.03e-04 - 1.00e+00 2.50e-01h 3
68 6.0880332e-03 0.00e+00 1.25e-06 -8.1 1.80e-04 - 1.00e+00 1.00e+00h 1
Warning: Cutting back alpha due to evaluation error
Warning: Cutting back alpha due to evaluation error
69 6.0880332e-03 0.00e+00 2.68e-06 -8.1 1.97e-03 - 1.00e+00 3.12e-02h 6
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
70 6.0880334e-03 0.00e+00 9.41e-07 -8.1 7.13e-04 - 1.00e+00 1.25e-01h 4
71 6.0880333e-03 0.00e+00 7.10e-07 -8.1 5.96e-05 - 1.00e+00 2.50e-01h 3
72 6.0880332e-03 0.00e+00 4.63e-07 -8.1 6.18e-05 - 1.00e+00 1.00e+00h 1
73 6.0880333e-03 0.00e+00 1.53e-07 -8.1 7.22e-04 - 1.00e+00 6.25e-02h 5
74 6.0880332e-03 0.00e+00 1.20e-07 -8.1 2.16e-04 - 1.00e+00 1.25e-01h 4
75 6.0880331e-03 0.00e+00 7.36e-07 -8.1 1.11e-04 - 1.00e+00 1.00e+00H 1
76 6.0880331e-03 0.00e+00 7.27e-07 -8.1 2.02e-04 - 1.00e+00 1.49e-08h 27
Warning: Cutting back alpha due to evaluation error
77 6.0880331e-03 0.00e+00 1.17e-06 -8.1 2.13e-03 - 1.00e+00 7.81e-03h 8
78 6.0880331e-03 0.00e+00 8.30e-07 -8.1 1.96e-04 - 1.00e+00 1.25e-01h 4
79 6.0880331e-03 0.00e+00 8.06e-07 -8.1 2.13e-04 - 1.00e+00 1.95e-03h 10
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
80 6.0880331e-03 0.00e+00 8.45e-07 -8.1 9.62e-04 - 1.00e+00 1.53e-05h 17
81 6.0880330e-03 0.00e+00 5.98e-06 -8.1 2.84e-04 - 1.00e+00 1.00e+00H 1
82 6.0880331e-03 0.00e+00 3.33e-07 -8.1 2.41e-04 - 1.00e+00 1.00e+00h 1
83 6.0880331e-03 0.00e+00 8.22e-07 -8.1 5.41e-05 - 1.00e+00 5.00e-01h 2
84 6.0880331e-03 0.00e+00 2.63e-07 -8.1 7.57e-05 - 1.00e+00 3.12e-02h 6
85 6.0880331e-03 0.00e+00 2.89e-07 -8.1 2.89e-05 - 1.00e+00 5.00e-01h 2
86 6.0880331e-03 0.00e+00 1.23e-07 -8.1 6.10e-05 - 1.00e+00 6.25e-02h 5
87 6.0880331e-03 0.00e+00 1.30e-07 -8.1 5.46e-05 - 1.00e+00 1.00e+00h 1
88 6.0880330e-03 0.00e+00 1.16e-06 -8.1 1.50e-04 - 1.00e+00 1.00e+00h 1
89 6.0880330e-03 0.00e+00 1.04e-07 -8.1 1.26e-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.0880331e-03 0.00e+00 4.43e-07 -8.1 7.00e-05 - 1.00e+00 2.50e-01h 3
91 6.0880331e-03 0.00e+00 5.99e-07 -8.1 2.69e-05 - 1.00e+00 1.00e+00h 1
92 6.0880330e-03 0.00e+00 9.37e-08 -8.1 2.77e-04 - 1.00e+00 3.12e-02h 6
93 6.0880330e-03 0.00e+00 1.61e-07 -8.1 2.33e-05 - 1.00e+00 1.00e+00h 1
94 6.0880330e-03 0.00e+00 1.26e-07 -8.1 3.93e-04 - 1.00e+00 6.25e-02h 5
95 6.0880330e-03 0.00e+00 5.55e-08 -8.1 4.48e-05 - 1.00e+00 5.00e-01h 2
Warning: Cutting back alpha due to evaluation error
96 6.0879552e-03 0.00e+00 2.87e-05 -9.0 9.92e-03 - 1.00e+00 5.00e-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
97 6.0879455e-03 0.00e+00 1.46e-04 -9.0 5.14e-02 - 1.00e+00 4.75e-02f 4
Warning: Cutting back alpha due to evaluation error
98 6.0879299e-03 0.00e+00 3.53e-05 -9.0 4.32e-02 - 1.00e+00 2.13e-01f 2
Warning: Cutting back alpha due to evaluation error
Warning: Cutting back alpha due to evaluation error
99 6.0879019e-03 0.00e+00 3.26e-05 -9.8 7.10e-02 - 1.00e+00 1.03e-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
100 6.0878908e-03 0.00e+00 2.08e-05 -11.0 4.37e-02 - 4.57e-01 6.65e-02f 3
101 6.0879029e-03 0.00e+00 2.74e-05 -8.2 2.99e-02 - 2.55e-01 5.19e-02f 3
102 6.0878809e-03 0.00e+00 1.51e-05 -8.8 4.74e-03 - 8.50e-01 1.00e+00f 1
Warning: Cutting back alpha due to evaluation error
Warning: Cutting back alpha due to evaluation error
103 6.0878713e-03 0.00e+00 1.81e-05 -10.2 2.62e-02 - 1.00e+00 1.28e-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
Warning: Cutting back alpha due to evaluation error
104 6.0878708e-03 0.00e+00 1.42e-04 -11.0 2.85e-02 - 1.00e+00 5.39e-03f 7
105 6.0878369e-03 0.00e+00 1.08e-05 -9.1 2.73e-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
106 6.0878832e-03 0.00e+00 1.72e-04 -8.0 6.38e-02 - 1.00e+00 7.65e-02f 4
107 6.0879537e-03 0.00e+00 2.81e-05 -8.2 8.71e-03 - 7.54e-01 5.00e-01f 2
108 6.0879676e-03 0.00e+00 1.37e-05 -8.2 1.19e-02 - 7.50e-01 5.00e-01f 2
Warning: Cutting back alpha due to evaluation error
109 6.0879684e-03 0.00e+00 2.16e-05 -8.2 1.23e-02 - 1.00e+00 2.50e-01f 3
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
110 6.0879667e-03 0.00e+00 2.43e-05 -8.2 9.99e-03 - 1.00e+00 5.00e-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
111 6.0879625e-03 0.00e+00 1.11e-05 -8.2 2.65e-02 - 1.00e+00 5.76e-02f 5
112 6.0879744e-03 0.00e+00 2.76e-05 -8.2 4.23e-03 - 1.00e+00 2.50e-01h 3
Warning: Cutting back alpha due to evaluation error
Warning: Cutting back alpha due to evaluation error
113 6.0879797e-03 0.00e+00 9.24e-06 -8.2 1.33e-02 - 1.00e+00 2.50e-01f 3
114 6.0879807e-03 0.00e+00 1.68e-05 -8.2 1.90e-02 - 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
115 6.0879797e-03 0.00e+00 1.16e-05 -8.2 6.44e-03 - 1.00e+00 1.25e-01h 4
116 6.0879825e-03 0.00e+00 8.21e-06 -8.2 1.21e-03 - 1.00e+00 1.00e+00H 1
117 6.0879774e-03 0.00e+00 7.83e-06 -8.2 2.70e-03 - 1.00e+00 5.00e-01f 2
118 6.0879885e-03 0.00e+00 1.82e-05 -8.2 2.23e-03 - 1.00e+00 5.00e-01h 2
119 6.0879775e-03 0.00e+00 1.09e-05 -8.2 7.20e-04 - 1.00e+00 1.00e+00f 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
120 6.0879765e-03 0.00e+00 1.87e-05 -8.2 2.85e-03 - 1.00e+00 2.50e-01h 3
121 6.0879849e-03 0.00e+00 2.28e-05 -8.2 2.01e-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
Warning: Cutting back alpha due to evaluation error
122 6.0879836e-03 0.00e+00 1.93e-05 -8.2 4.42e-03 - 1.00e+00 3.12e-02h 6
Warning: Cutting back alpha due to evaluation error
123 6.0879836e-03 0.00e+00 2.02e-05 -8.2 1.90e-03 - 1.00e+00 1.53e-05h 17
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
124 6.0879835e-03 0.00e+00 1.88e-05 -8.2 2.33e-03 - 1.00e+00 9.77e-04h 11
Warning: Cutting back alpha due to evaluation error
Warning: Cutting back alpha due to evaluation error
125 6.0879797e-03 0.00e+00 9.06e-06 -8.2 1.68e-03 - 1.00e+00 2.50e-01f 3
126 6.0879776e-03 0.00e+00 8.06e-06 -8.2 2.08e-03 - 1.00e+00 2.50e-01h 3
127 6.0879748e-03 0.00e+00 1.11e-05 -8.2 1.43e-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
128 6.0879747e-03 0.00e+00 7.63e-06 -8.2 2.73e-03 - 1.00e+00 6.25e-02h 5
129 6.0879774e-03 0.00e+00 1.43e-05 -8.2 3.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
130 6.0879752e-03 0.00e+00 4.77e-06 -8.2 3.12e-04 - 1.00e+00 1.00e+00h 1
131 6.0879751e-03 0.00e+00 6.95e-07 -8.2 5.84e-05 - 1.00e+00 1.00e+00h 1
132 6.0879750e-03 0.00e+00 1.21e-06 -8.2 3.29e-05 - 1.00e+00 1.00e+00h 1
133 6.0879750e-03 0.00e+00 5.61e-07 -8.2 1.95e-04 - 1.00e+00 1.00e+00h 1
134 6.0879749e-03 0.00e+00 3.68e-06 -8.2 1.06e-03 - 1.00e+00 1.25e-01h 4
135 6.0879749e-03 0.00e+00 2.07e-06 -8.2 2.41e-04 - 1.00e+00 6.25e-02h 5
136 6.0879750e-03 0.00e+00 2.79e-07 -8.2 8.32e-05 - 1.00e+00 5.00e-01h 2
137 6.0879749e-03 0.00e+00 7.00e-07 -8.2 6.15e-05 - 1.00e+00 5.00e-01h 2
138 6.0879750e-03 0.00e+00 1.32e-07 -8.2 9.11e-05 - 1.00e+00 1.00e+00h 1
139 6.0879749e-03 0.00e+00 1.43e-06 -8.2 1.77e-04 - 1.00e+00 2.50e-01h 3
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
140 6.0879746e-03 0.00e+00 1.50e-06 -8.2 2.39e-04 - 1.00e+00 1.00e+00h 1
141 6.0879745e-03 0.00e+00 2.09e-07 -8.2 4.01e-04 - 1.00e+00 1.25e-01h 4
142 6.0879746e-03 0.00e+00 6.15e-07 -8.2 1.41e-04 - 1.00e+00 2.50e-01h 3
143 6.0879746e-03 0.00e+00 7.26e-07 -8.2 1.38e-03 - 1.00e+00 6.25e-02h 5
144 6.0879747e-03 0.00e+00 5.94e-07 -8.2 9.67e-04 - 1.00e+00 1.25e-01h 4
145 6.0879747e-03 0.00e+00 1.62e-07 -8.2 3.06e-04 - 1.00e+00 1.25e-01h 4
146 6.0879746e-03 0.00e+00 1.37e-06 -8.2 7.12e-05 - 1.00e+00 5.00e-01h 2
147 6.0879746e-03 0.00e+00 5.24e-07 -8.2 1.24e-04 - 1.00e+00 5.00e-01h 2
148 6.0879747e-03 0.00e+00 1.39e-06 -8.2 1.65e-04 - 1.00e+00 1.25e-01h 4
149 6.0879747e-03 0.00e+00 1.26e-06 -8.2 1.06e-04 - 1.00e+00 1.56e-02h 7
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
150 6.0879747e-03 0.00e+00 1.31e-06 -8.2 2.76e-04 - 1.00e+00 3.91e-03h 9
151 6.0879748e-03 0.00e+00 1.40e-05 -8.2 2.59e-04 - 1.00e+00 1.00e+00w 1
152 6.0879747e-03 0.00e+00 3.75e-07 -8.2 2.00e-04 - 1.00e+00 1.00e+00w 1
153 6.0879747e-03 0.00e+00 9.77e-07 -8.2 5.01e-05 - 1.00e+00 1.00e+00w 1
154 6.0879747e-03 0.00e+00 1.24e-07 -8.2 1.20e-04 - 1.00e+00 1.25e-01h 3
Buckling-constrained result:
obj = 0.006088050632535261
vol = -1.8081848625617347e-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.799980206343895
Buckling-constrained min eigenvalue: 3.0814533531764934e-12
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.