using TopOpt, LinearAlgebra
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)Comparing Penalty Functions
Description
The SIMP penalty maps the design density x to the effective stiffness material used in the finite-element assembly. A steeper penalty suppresses intermediate (“gray”) densities, but too steep a penalty makes the problem non-convex and hard to optimize. TopOpt.jl provides four penalties:
PowerPenaltyFun(p)— the classic SIMP power lawx^p.RationalPenaltyFun(p)—x / (1 + p(1 - x)), smoother than the power law for the same exponent.SinhPenaltyFun(p)—sinh(p·x) / sinh(p), another smooth alternative.ProjectedPenaltyFun(penalty, proj)— applies a projection (defaultHeavisideProjectionFun(10)) before the penalty, pushing toward a near-binary design.
This tutorial compares their curves, their effect on the optimized design, and the sensitivity of the result to the penalty parameter.
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.
The penalty curves
p = 3.0
penalties = [
("power", PowerPenaltyFun(p)),
("rational", RationalPenaltyFun(p)),
("sinh", SinhPenaltyFun(p)),
("projected", ProjectedPenaltyFun(PowerPenaltyFun(p))),
]
for x in (0.1, 0.3, 0.5, 0.8, 1.0)
vals = [round(P(x), digits=3) for (_, P) in penalties]
println("x=$x → ", join(["$(n)=$v" for ((n, _), v) in zip(penalties, vals)], " "))
endx=0.1 → power=0.001 rational=0.027 sinh=0.03 projected=0.253
x=0.3 → power=0.027 rational=0.097 sinh=0.102 projected=0.858
x=0.5 → power=0.125 rational=0.2 sinh=0.213 projected=0.98
x=0.8 → power=0.512 rational=0.5 sinh=0.546 projected=0.999
x=1.0 → power=1.0 rational=1.0 sinh=1.0 projected=1.0
using Makie
xs = range(0.0, 1.0; length=101)
fig = Figure()
ax = Axis(fig[1, 1]; xlabel="design density x", ylabel="penalty P(x)")
for (name, P) in penalties
lines!(ax, xs, P.(xs); label=name)
end
axislegend(ax)
display_app(fig)WGLMakie.Screen(
framerate = 30.0,
resize_to = parent,
px_per_unit = automatic,
scalefactor = automatic,
session = false,
three = Channel{Any}(1) (empty),
scene = Scene (672px, 480px):
0 Plots
2 Child Scenes:
├ Scene (672px, 480px)
└ Scene (672px, 480px),
)
At x = 0.5 the rational and sinh penalties are milder than the power law (more intermediate stiffness), while the projected penalty is already nearly binary.
Optimize with each penalty
We solve the same Half MBB compliance problem with each penalty (exponent 3) and measure the resulting grayness — the fraction of elements in the intermediate band (0.1, 0.9).
E, ν, f = 1.0, 0.3, 1.0
nels = (60, 20)
N = prod(nels)
V = 0.5
rmin = 2.0
problem = HalfMBB(nels, (1.0, 1.0), E, ν, f)
grayness(x) = count(0.1 .< x .< 0.9) / length(x)
function solve_with(penalty)
solver = FEASolver(DirectSolver, problem; xmin=0.001, penalty=penalty)
filter = DensityFilterFun(solver; rmin=rmin)
comp = ComplianceFun(solver)
volfrac = VolumeFun(solver)
obj = x -> comp(filter(PseudoDensities(x)))
constr = x -> volfrac(filter(PseudoDensities(x))) - V
model = Model(obj)
addvar!(model, zeros(N), ones(N))
add_ineq_constraint!(model, constr)
r = optimize(model, MMA87(), fill(V, N);
options=MMAOptions(; maxiter=120, tol=Tolerance(; kkt=1e-4, f=1e-4)))
topo = filter(PseudoDensities(r.minimizer)).x
return obj(r.minimizer), constr(r.minimizer) + V, grayness(topo), topo
endresults = Dict{String,Any}()
for (name, P) in penalties
c, vol, g, topo = solve_with(P)
results[name] = topo
println("$(lpad(name, 10)): compliance = $(round(c, digits=2)), vol = $(round(vol, digits=3)), gray = $(round(g, digits=3))")
end[ Info: iter obj Δobj violation kkt_residual [ Info: 0 9.1e+02 Inf 0.0e+00 5.2e+01 [ Info: 1 6.2e+02 2.9e+02 0.0e+00 1.6e+02 [ Info: 2 4.3e+02 1.9e+02 0.0e+00 3.7e+01 [ Info: 3 3.6e+02 6.6e+01 0.0e+00 1.3e+01 [ Info: 4 3.3e+02 2.7e+01 0.0e+00 5.8e+00 [ Info: 5 3.2e+02 1.6e+01 0.0e+00 3.4e+00 [ Info: 6 3.1e+02 1.1e+01 0.0e+00 2.6e+00 [ Info: 7 3.0e+02 8.8e+00 0.0e+00 2.2e+00 [ Info: 8 2.9e+02 7.5e+00 0.0e+00 1.8e+00 [ Info: 9 2.8e+02 6.5e+00 0.0e+00 1.6e+00 [ Info: 10 2.8e+02 6.0e+00 0.0e+00 1.4e+00 [ Info: 11 2.7e+02 6.0e+00 0.0e+00 1.4e+00 [ Info: 12 2.6e+02 7.4e+00 0.0e+00 1.6e+00 [ Info: 13 2.5e+02 9.3e+00 0.0e+00 2.1e+00 [ Info: 14 2.4e+02 1.1e+01 0.0e+00 2.3e+00 [ Info: 15 2.3e+02 1.0e+01 0.0e+00 2.1e+00 [ Info: 16 2.2e+02 8.1e+00 0.0e+00 1.4e+00 [ Info: 17 2.2e+02 4.5e+00 0.0e+00 7.6e-01 [ Info: 18 2.2e+02 2.4e+00 0.0e+00 4.7e-01 [ Info: 19 2.2e+02 1.5e+00 0.0e+00 4.3e-01 [ Info: 20 2.1e+02 9.8e-01 0.0e+00 2.7e-01 [ Info: 21 2.1e+02 6.6e-01 0.0e+00 2.8e-01 [ Info: 22 2.1e+02 5.2e-01 0.0e+00 2.8e-01 [ Info: 23 2.1e+02 4.8e-01 0.0e+00 2.4e-01 [ Info: 24 2.1e+02 5.0e-01 0.0e+00 2.1e-01 [ Info: 25 2.1e+02 4.6e-01 0.0e+00 1.6e-01 [ Info: 26 2.1e+02 2.7e-01 0.0e+00 1.0e-01 [ Info: 27 2.1e+02 1.1e-01 0.0e+00 9.2e-02 [ Info: 28 2.1e+02 6.0e-02 0.0e+00 6.1e-02 [ Info: 29 2.1e+02 3.4e-02 0.0e+00 6.5e-02 [ Info: 30 2.1e+02 2.4e-02 0.0e+00 6.7e-02 [ Info: 31 2.1e+02 2.0e-02 0.0e+00 6.7e-02 [ Info: 32 2.1e+02 1.6e-02 0.0e+00 6.3e-02 [ Info: 33 2.1e+02 1.6e-02 0.0e+00 6.1e-02 [ Info: 34 2.1e+02 1.6e-02 0.0e+00 6.0e-02 [ Info: 35 2.1e+02 1.7e-02 0.0e+00 5.9e-02 [ Info: 36 2.1e+02 1.4e-02 0.0e+00 1.5e-02 [ Info: 37 2.1e+02 8.4e-03 0.0e+00 1.3e-02 [ Info: 38 2.1e+02 6.6e-03 0.0e+00 1.3e-02 [ Info: 39 2.1e+02 5.5e-03 0.0e+00 1.3e-02 [ Info: 40 2.1e+02 4.4e-03 0.0e+00 9.6e-03 [ Info: 41 2.1e+02 2.8e-03 0.0e+00 8.0e-03 [ Info: 42 2.1e+02 2.0e-03 0.0e+00 6.5e-03 [ Info: 43 2.1e+02 1.3e-03 0.0e+00 6.4e-03 [ Info: 44 2.1e+02 1.1e-03 0.0e+00 5.9e-03 [ Info: 45 2.1e+02 1.0e-03 0.0e+00 5.9e-03 [ Info: 46 2.1e+02 1.0e-03 0.0e+00 5.4e-03 [ Info: 47 2.1e+02 9.6e-04 0.0e+00 5.4e-03 [ Info: 48 2.1e+02 9.1e-04 0.0e+00 5.3e-03 [ Info: 49 2.1e+02 8.7e-04 0.0e+00 5.2e-03 [ Info: 50 2.1e+02 8.5e-04 0.0e+00 5.1e-03 [ Info: 51 2.1e+02 8.2e-04 0.0e+00 5.0e-03 [ Info: 52 2.1e+02 8.0e-04 0.0e+00 4.9e-03 [ Info: 53 2.1e+02 7.7e-04 0.0e+00 4.8e-03 [ Info: 54 2.1e+02 6.5e-04 0.0e+00 4.1e-03 [ Info: 55 2.1e+02 5.6e-04 0.0e+00 3.9e-03 [ Info: 56 2.1e+02 4.8e-04 0.0e+00 3.5e-03 [ Info: 57 2.1e+02 4.2e-04 0.0e+00 3.5e-03 [ Info: 58 2.1e+02 3.7e-04 0.0e+00 3.2e-03 [ Info: 59 2.1e+02 3.2e-04 0.0e+00 3.9e-03 [ Info: 60 2.1e+02 2.8e-04 0.0e+00 4.0e-03 [ Info: 61 2.1e+02 2.4e-04 0.0e+00 4.4e-03 [ Info: 62 2.1e+02 2.1e-04 0.0e+00 4.6e-03 [ Info: 63 2.1e+02 1.6e-04 0.0e+00 4.1e-03 [ Info: 64 2.1e+02 1.3e-04 0.0e+00 2.8e-03 [ Info: 65 2.1e+02 8.8e-05 0.0e+00 2.6e-03 [ Info: 66 2.1e+02 6.6e-05 0.0e+00 1.7e-03 [ Info: 67 2.1e+02 5.9e-05 0.0e+00 1.7e-03 [ Info: 68 2.1e+02 5.9e-05 0.0e+00 1.7e-03 [ Info: 69 2.1e+02 6.0e-05 0.0e+00 1.7e-03 [ Info: 70 2.1e+02 6.0e-05 0.0e+00 1.7e-03 [ Info: 71 2.1e+02 6.0e-05 0.0e+00 1.7e-03 [ Info: 72 2.1e+02 5.9e-05 0.0e+00 1.7e-03 [ Info: 73 2.1e+02 5.8e-05 0.0e+00 1.7e-03 [ Info: 74 2.1e+02 5.6e-05 0.0e+00 1.6e-03 [ Info: 75 2.1e+02 5.5e-05 0.0e+00 1.6e-03 [ Info: 76 2.1e+02 5.3e-05 0.0e+00 1.6e-03 [ Info: 77 2.1e+02 5.1e-05 0.0e+00 1.6e-03 [ Info: 78 2.1e+02 4.5e-05 0.0e+00 1.4e-03 [ Info: 79 2.1e+02 4.1e-05 0.0e+00 1.5e-03 [ Info: 80 2.1e+02 3.7e-05 0.0e+00 1.4e-03 [ Info: 81 2.1e+02 3.4e-05 0.0e+00 1.6e-03 [ Info: 82 2.1e+02 3.1e-05 0.0e+00 1.3e-03 [ Info: 83 2.1e+02 2.9e-05 0.0e+00 1.6e-03 [ Info: 84 2.1e+02 2.7e-05 0.0e+00 1.2e-03 [ Info: 85 2.1e+02 2.5e-05 0.0e+00 1.8e-03 [ Info: 86 2.1e+02 2.3e-05 0.0e+00 1.4e-03 [ Info: 87 2.1e+02 2.2e-05 0.0e+00 2.0e-03 [ Info: 88 2.1e+02 2.1e-05 0.0e+00 1.5e-03 [ Info: 89 2.1e+02 2.0e-05 0.0e+00 2.0e-03 [ Info: 90 2.1e+02 2.0e-05 0.0e+00 1.4e-03 [ Info: 91 2.1e+02 1.9e-05 0.0e+00 1.7e-03 [ Info: 92 2.1e+02 1.5e-05 0.0e+00 9.5e-04 [ Info: 93 2.1e+02 7.6e-06 0.0e+00 1.0e-03 [ Info: 94 2.1e+02 3.6e-06 0.0e+00 1.0e-03 [ Info: 95 2.1e+02 3.2e-06 0.0e+00 9.9e-04 [ Info: 96 2.1e+02 3.1e-06 0.0e+00 9.3e-04 [ Info: 97 2.1e+02 3.2e-06 0.0e+00 8.6e-04 [ Info: 98 2.1e+02 3.2e-06 0.0e+00 7.8e-04 [ Info: 99 2.1e+02 3.2e-06 0.0e+00 7.1e-04 [ Info: 100 2.1e+02 3.2e-06 0.0e+00 6.3e-04 [ Info: 101 2.1e+02 3.2e-06 0.0e+00 5.6e-04 [ Info: 102 2.1e+02 3.2e-06 0.0e+00 4.9e-04 [ Info: 103 2.1e+02 3.1e-06 0.0e+00 4.3e-04 [ Info: 104 2.1e+02 3.0e-06 0.0e+00 3.8e-04 [ Info: 105 2.1e+02 2.7e-06 0.0e+00 3.6e-04 [ Info: 106 2.1e+02 2.4e-06 0.0e+00 3.2e-04 [ Info: 107 2.1e+02 2.1e-06 0.0e+00 3.0e-04 [ Info: 108 2.1e+02 1.8e-06 0.0e+00 2.6e-04 [ Info: 109 2.1e+02 1.6e-06 0.0e+00 2.5e-04 [ Info: 110 2.1e+02 1.5e-06 0.0e+00 2.2e-04 [ Info: 111 2.1e+02 1.3e-06 0.0e+00 2.0e-04 [ Info: 112 2.1e+02 1.2e-06 0.0e+00 1.8e-04 [ Info: 113 2.1e+02 1.1e-06 0.0e+00 1.7e-04 [ Info: 114 2.1e+02 1.0e-06 0.0e+00 1.7e-04 [ Info: 115 2.1e+02 9.4e-07 0.0e+00 1.6e-04 [ Info: 116 2.1e+02 8.7e-07 0.0e+00 1.6e-04 [ Info: 117 2.1e+02 8.1e-07 0.0e+00 1.6e-04 [ Info: 118 2.1e+02 7.6e-07 0.0e+00 1.5e-04 [ Info: 119 2.1e+02 7.1e-07 0.0e+00 1.5e-04 [ Info: 120 2.1e+02 6.7e-07 0.0e+00 1.4e-04 power: compliance = 211.73, vol = 0.5, gray = 0.381 [ Info: iter obj Δobj violation kkt_residual [ Info: 0 5.7e+02 Inf 0.0e+00 1.7e+01 [ Info: 1 4.2e+02 1.5e+02 0.0e+00 5.5e+01 [ Info: 2 3.1e+02 1.2e+02 0.0e+00 2.0e+01 [ Info: 3 2.5e+02 5.1e+01 0.0e+00 7.1e+00 [ Info: 4 2.4e+02 1.7e+01 0.0e+00 2.9e+00 [ Info: 5 2.3e+02 7.3e+00 0.0e+00 1.4e+00 [ Info: 6 2.3e+02 3.8e+00 0.0e+00 8.0e-01 [ Info: 7 2.2e+02 2.4e+00 0.0e+00 5.6e-01 [ Info: 8 2.2e+02 1.9e+00 0.0e+00 4.6e-01 [ Info: 9 2.2e+02 1.7e+00 0.0e+00 4.2e-01 [ Info: 10 2.2e+02 1.8e+00 0.0e+00 4.3e-01 [ Info: 11 2.2e+02 1.7e+00 0.0e+00 3.6e-01 [ Info: 12 2.2e+02 1.1e+00 0.0e+00 2.6e-01 [ Info: 13 2.1e+02 8.7e-01 0.0e+00 2.0e-01 [ Info: 14 2.1e+02 6.7e-01 0.0e+00 1.7e-01 [ Info: 15 2.1e+02 6.0e-01 0.0e+00 1.4e-01 [ Info: 16 2.1e+02 5.4e-01 0.0e+00 1.3e-01 [ Info: 17 2.1e+02 3.4e-01 0.0e+00 1.3e-01 [ Info: 18 2.1e+02 2.4e-01 0.0e+00 2.5e-01 [ Info: 19 2.1e+02 9.9e-02 0.0e+00 3.4e-01 [ Info: 20 2.1e+02 4.0e-02 0.0e+00 5.9e-01 [ Info: 21 2.1e+02 9.9e-01 0.0e+00 1.3e+00 [ Info: 22 2.1e+02 1.4e+00 0.0e+00 1.9e+00 [ Info: 23 2.2e+02 1.3e+00 0.0e+00 2.8e+00 [ Info: 24 2.2e+02 2.8e+00 0.0e+00 4.2e+00 [ Info: 25 2.2e+02 3.6e+00 0.0e+00 3.9e+00 [ Info: 26 2.1e+02 2.9e+00 0.0e+00 1.8e+00 [ Info: 27 2.1e+02 2.6e+00 0.0e+00 6.8e-01 [ Info: 28 2.1e+02 9.4e-01 0.0e+00 1.8e-01 [ Info: 29 2.1e+02 3.7e-01 0.0e+00 1.6e-01 [ Info: 30 2.1e+02 2.3e-01 0.0e+00 1.6e-01 [ Info: 31 2.1e+02 1.9e-01 0.0e+00 1.6e-01 [ Info: 32 2.1e+02 1.9e-01 0.0e+00 1.6e-01 [ Info: 33 2.1e+02 2.0e-01 0.0e+00 1.5e-01 [ Info: 34 2.1e+02 2.0e-01 0.0e+00 1.4e-01 [ Info: 35 2.1e+02 2.0e-01 0.0e+00 1.4e-01 [ Info: 36 2.1e+02 2.0e-01 0.0e+00 1.5e-01 [ Info: 37 2.1e+02 2.2e-01 0.0e+00 1.6e-01 [ Info: 38 2.1e+02 2.0e-01 0.0e+00 1.6e-01 [ Info: 39 2.1e+02 2.1e-01 0.0e+00 1.6e-01 [ Info: 40 2.1e+02 2.2e-01 0.0e+00 1.6e-01 [ Info: 41 2.1e+02 2.3e-01 0.0e+00 1.6e-01 [ Info: 42 2.1e+02 2.4e-01 0.0e+00 1.8e-01 [ Info: 43 2.1e+02 2.4e-01 0.0e+00 1.3e-01 [ Info: 44 2.1e+02 2.1e-01 0.0e+00 1.3e-01 [ Info: 45 2.0e+02 2.1e-01 0.0e+00 1.4e-01 [ Info: 46 2.0e+02 1.9e-01 0.0e+00 1.3e-01 [ Info: 47 2.0e+02 1.7e-01 0.0e+00 1.4e-01 [ Info: 48 2.0e+02 1.3e-01 0.0e+00 1.3e-01 [ Info: 49 2.0e+02 3.1e-02 0.0e+00 1.3e-01 [ Info: 50 2.0e+02 3.9e-02 0.0e+00 1.4e-01 [ Info: 51 2.0e+02 9.6e-02 0.0e+00 1.4e-01 [ Info: 52 2.0e+02 1.9e-01 0.0e+00 7.7e-02 [ Info: 53 2.0e+02 1.4e-01 0.0e+00 5.1e-02 [ Info: 54 2.0e+02 5.8e-02 0.0e+00 5.6e-02 [ Info: 55 2.0e+02 3.2e-02 0.0e+00 5.7e-02 [ Info: 56 2.0e+02 2.6e-02 0.0e+00 5.7e-02 [ Info: 57 2.0e+02 2.4e-02 0.0e+00 5.6e-02 [ Info: 58 2.0e+02 2.2e-02 0.0e+00 5.4e-02 [ Info: 59 2.0e+02 2.1e-02 0.0e+00 5.2e-02 [ Info: 60 2.0e+02 2.0e-02 0.0e+00 5.0e-02 [ Info: 61 2.0e+02 2.0e-02 0.0e+00 4.6e-02 [ Info: 62 2.0e+02 2.0e-02 0.0e+00 4.2e-02 [ Info: 63 2.0e+02 2.0e-02 0.0e+00 3.8e-02 [ Info: 64 2.0e+02 2.0e-02 0.0e+00 3.4e-02 [ Info: 65 2.0e+02 2.0e-02 0.0e+00 3.0e-02 [ Info: 66 2.0e+02 2.1e-02 0.0e+00 3.1e-02 [ Info: 67 2.0e+02 1.9e-02 0.0e+00 3.3e-02 [ Info: 68 2.0e+02 1.7e-02 0.0e+00 4.0e-02 [ Info: 69 2.0e+02 1.7e-02 0.0e+00 3.5e-02 [ Info: 70 2.0e+02 1.2e-02 0.0e+00 5.2e-02 [ Info: 71 2.0e+02 1.3e-02 0.0e+00 1.2e-01 [ Info: 72 2.0e+02 6.8e-02 0.0e+00 2.2e-01 [ Info: 73 2.0e+02 4.0e-02 0.0e+00 2.2e-01 [ Info: 74 2.0e+02 3.4e-02 0.0e+00 1.7e-01 [ Info: 75 2.0e+02 7.2e-02 0.0e+00 1.3e-01 [ Info: 76 2.0e+02 7.4e-02 0.0e+00 8.1e-02 [ Info: 77 2.0e+02 3.2e-02 0.0e+00 6.2e-02 [ Info: 78 2.0e+02 1.5e-02 0.0e+00 2.5e-02 [ Info: 79 2.0e+02 1.1e-02 0.0e+00 2.5e-02 [ Info: 80 2.0e+02 1.1e-02 0.0e+00 2.7e-02 [ Info: 81 2.0e+02 1.1e-02 0.0e+00 3.1e-02 [ Info: 82 2.0e+02 1.1e-02 0.0e+00 3.3e-02 [ Info: 83 2.0e+02 1.2e-02 0.0e+00 3.5e-02 [ Info: 84 2.0e+02 1.3e-02 0.0e+00 3.6e-02 [ Info: 85 2.0e+02 1.2e-02 0.0e+00 3.5e-02 [ Info: 86 2.0e+02 1.1e-02 0.0e+00 3.2e-02 [ Info: 87 2.0e+02 9.9e-03 0.0e+00 3.3e-02 [ Info: 88 2.0e+02 9.9e-03 0.0e+00 3.4e-02 [ Info: 89 2.0e+02 1.0e-02 0.0e+00 2.8e-02 [ Info: 90 2.0e+02 1.0e-02 0.0e+00 2.9e-02 [ Info: 91 2.0e+02 1.1e-02 0.0e+00 3.1e-02 [ Info: 92 2.0e+02 1.1e-02 0.0e+00 3.0e-02 [ Info: 93 2.0e+02 1.0e-02 0.0e+00 3.4e-02 [ Info: 94 2.0e+02 1.4e-03 0.0e+00 5.6e-02 [ Info: 95 2.0e+02 3.1e-02 0.0e+00 1.3e-01 [ Info: 96 2.0e+02 1.2e-01 0.0e+00 1.6e-01 [ Info: 97 2.0e+02 3.0e-02 0.0e+00 2.2e-01 [ Info: 98 2.0e+02 1.9e-01 0.0e+00 2.2e-01 [ Info: 99 2.0e+02 9.2e-02 0.0e+00 4.6e-01 [ Info: 100 2.0e+02 3.6e-02 0.0e+00 2.4e-01 [ Info: 101 2.0e+02 2.7e-01 0.0e+00 1.0e-01 [ Info: 102 2.0e+02 1.2e-01 0.0e+00 4.0e-02 [ Info: 103 2.0e+02 1.5e-02 0.0e+00 3.9e-02 [ Info: 104 2.0e+02 6.3e-03 0.0e+00 3.9e-02 [ Info: 105 2.0e+02 6.2e-03 0.0e+00 3.9e-02 [ Info: 106 2.0e+02 6.7e-03 0.0e+00 3.8e-02 [ Info: 107 2.0e+02 7.3e-03 0.0e+00 3.7e-02 [ Info: 108 2.0e+02 8.2e-03 0.0e+00 3.5e-02 [ Info: 109 2.0e+02 9.2e-03 0.0e+00 2.6e-02 [ Info: 110 2.0e+02 9.7e-03 0.0e+00 2.6e-02 [ Info: 111 2.0e+02 9.6e-03 0.0e+00 3.0e-02 [ Info: 112 2.0e+02 9.2e-03 0.0e+00 3.1e-02 [ Info: 113 2.0e+02 9.0e-03 0.0e+00 3.2e-02 [ Info: 114 2.0e+02 8.0e-03 0.0e+00 3.0e-02 [ Info: 115 2.0e+02 7.1e-03 0.0e+00 2.9e-02 [ Info: 116 2.0e+02 6.5e-03 0.0e+00 2.8e-02 [ Info: 117 2.0e+02 5.7e-03 0.0e+00 2.8e-02 [ Info: 118 2.0e+02 5.3e-03 0.0e+00 3.1e-02 [ Info: 119 2.0e+02 5.1e-03 0.0e+00 2.8e-02 [ Info: 120 2.0e+02 4.1e-03 0.0e+00 3.5e-02 rational: compliance = 202.99, vol = 0.5, gray = 0.424 [ Info: iter obj Δobj violation kkt_residual [ Info: 0 5.4e+02 Inf 0.0e+00 1.7e+01 [ Info: 1 3.9e+02 1.5e+02 0.0e+00 5.4e+01 [ Info: 2 2.9e+02 1.1e+02 0.0e+00 2.0e+01 [ Info: 3 2.4e+02 4.3e+01 0.0e+00 6.5e+00 [ Info: 4 2.3e+02 1.4e+01 0.0e+00 2.5e+00 [ Info: 5 2.2e+02 6.2e+00 0.0e+00 1.2e+00 [ Info: 6 2.2e+02 3.3e+00 0.0e+00 7.1e-01 [ Info: 7 2.2e+02 2.2e+00 0.0e+00 5.1e-01 [ Info: 8 2.1e+02 1.8e+00 0.0e+00 4.3e-01 [ Info: 9 2.1e+02 1.6e+00 0.0e+00 4.0e-01 [ Info: 10 2.1e+02 1.6e+00 0.0e+00 3.9e-01 [ Info: 11 2.1e+02 1.5e+00 0.0e+00 3.5e-01 [ Info: 12 2.1e+02 1.2e+00 0.0e+00 2.7e-01 [ Info: 13 2.1e+02 8.9e-01 0.0e+00 2.0e-01 [ Info: 14 2.1e+02 6.6e-01 0.0e+00 1.7e-01 [ Info: 15 2.1e+02 6.0e-01 0.0e+00 1.5e-01 [ Info: 16 2.1e+02 5.1e-01 0.0e+00 1.6e-01 [ Info: 17 2.1e+02 1.8e-02 0.0e+00 2.9e-01 [ Info: 18 2.1e+02 1.9e-01 0.0e+00 7.3e-01 [ Info: 19 2.1e+02 1.7e+00 0.0e+00 1.7e+00 [ Info: 20 2.1e+02 5.8e-01 0.0e+00 2.4e+00 [ Info: 21 2.1e+02 1.9e+00 0.0e+00 4.0e+00 [ Info: 22 2.1e+02 3.0e+00 0.0e+00 3.1e+00 [ Info: 23 2.0e+02 2.3e+00 0.0e+00 2.4e+00 [ Info: 24 2.0e+02 2.9e+00 0.0e+00 5.5e-01 [ Info: 25 2.0e+02 9.0e-01 0.0e+00 1.7e-01 [ Info: 26 2.0e+02 3.2e-01 0.0e+00 1.5e-01 [ Info: 27 2.0e+02 2.6e-01 0.0e+00 1.4e-01 [ Info: 28 2.0e+02 2.2e-01 0.0e+00 1.2e-01 [ Info: 29 2.0e+02 2.0e-01 0.0e+00 1.1e-01 [ Info: 30 2.0e+02 1.9e-01 0.0e+00 9.8e-02 [ Info: 31 2.0e+02 1.8e-01 0.0e+00 1.0e-01 [ Info: 32 2.0e+02 1.9e-01 0.0e+00 1.1e-01 [ Info: 33 2.0e+02 2.0e-01 0.0e+00 1.1e-01 [ Info: 34 2.0e+02 2.0e-01 0.0e+00 1.2e-01 [ Info: 35 2.0e+02 2.1e-01 0.0e+00 1.2e-01 [ Info: 36 2.0e+02 2.4e-01 0.0e+00 1.2e-01 [ Info: 37 2.0e+02 2.4e-01 0.0e+00 1.1e-01 [ Info: 38 2.0e+02 2.1e-01 0.0e+00 1.1e-01 [ Info: 39 2.0e+02 1.6e-01 0.0e+00 7.0e-02 [ Info: 40 2.0e+02 1.3e-01 0.0e+00 7.0e-02 [ Info: 41 2.0e+02 6.0e-02 0.0e+00 1.2e-01 [ Info: 42 2.0e+02 1.0e-01 0.0e+00 1.6e-01 [ Info: 43 2.0e+02 2.0e-01 0.0e+00 2.2e-01 [ Info: 44 2.0e+02 3.8e-01 0.0e+00 3.8e-01 [ Info: 45 2.0e+02 1.6e-01 0.0e+00 4.5e-01 [ Info: 46 2.0e+02 4.0e-01 0.0e+00 3.3e-01 [ Info: 47 2.0e+02 4.4e-01 0.0e+00 1.4e-01 [ Info: 48 2.0e+02 1.9e-01 0.0e+00 7.7e-02 [ Info: 49 2.0e+02 4.9e-02 0.0e+00 6.7e-02 [ Info: 50 2.0e+02 3.7e-02 0.0e+00 5.9e-02 [ Info: 51 2.0e+02 3.2e-02 0.0e+00 5.5e-02 [ Info: 52 2.0e+02 2.6e-02 0.0e+00 5.1e-02 [ Info: 53 2.0e+02 2.4e-02 0.0e+00 5.1e-02 [ Info: 54 2.0e+02 2.3e-02 0.0e+00 5.2e-02 [ Info: 55 2.0e+02 2.1e-02 0.0e+00 5.2e-02 [ Info: 56 2.0e+02 2.0e-02 0.0e+00 4.0e-02 [ Info: 57 2.0e+02 1.6e-02 0.0e+00 4.3e-02 [ Info: 58 2.0e+02 1.4e-02 0.0e+00 4.5e-02 [ Info: 59 2.0e+02 1.4e-02 0.0e+00 4.7e-02 [ Info: 60 2.0e+02 1.4e-02 0.0e+00 4.6e-02 [ Info: 61 2.0e+02 1.3e-02 0.0e+00 4.6e-02 [ Info: 62 2.0e+02 1.3e-02 0.0e+00 4.4e-02 [ Info: 63 2.0e+02 1.2e-02 0.0e+00 4.2e-02 [ Info: 64 2.0e+02 1.2e-02 0.0e+00 3.8e-02 [ Info: 65 2.0e+02 1.3e-02 0.0e+00 3.5e-02 [ Info: 66 2.0e+02 1.4e-02 0.0e+00 3.2e-02 [ Info: 67 2.0e+02 1.0e-02 0.0e+00 3.5e-02 [ Info: 68 2.0e+02 2.4e-02 0.0e+00 9.5e-02 [ Info: 69 2.0e+02 2.4e-01 0.0e+00 1.8e-01 [ Info: 70 2.0e+02 4.2e-01 0.0e+00 4.8e-01 [ Info: 71 2.0e+02 4.7e-01 0.0e+00 5.4e-01 [ Info: 72 2.0e+02 4.2e-01 0.0e+00 4.6e-01 [ Info: 73 2.0e+02 4.7e-01 0.0e+00 2.0e-01 [ Info: 74 2.0e+02 2.5e-01 0.0e+00 4.5e-02 [ Info: 75 2.0e+02 5.4e-02 0.0e+00 3.5e-02 [ Info: 76 2.0e+02 7.8e-03 0.0e+00 2.2e-02 [ Info: 77 2.0e+02 6.0e-03 0.0e+00 2.2e-02 [ Info: 78 2.0e+02 5.7e-03 0.0e+00 2.2e-02 [ Info: 79 2.0e+02 5.7e-03 0.0e+00 2.3e-02 [ Info: 80 2.0e+02 5.6e-03 0.0e+00 2.4e-02 [ Info: 81 2.0e+02 5.1e-03 0.0e+00 2.5e-02 [ Info: 82 2.0e+02 5.2e-03 0.0e+00 2.6e-02 [ Info: 83 2.0e+02 5.1e-03 0.0e+00 2.8e-02 [ Info: 84 2.0e+02 4.8e-03 0.0e+00 2.9e-02 [ Info: 85 2.0e+02 4.4e-03 0.0e+00 3.0e-02 [ Info: 86 2.0e+02 4.0e-03 0.0e+00 3.0e-02 [ Info: 87 2.0e+02 4.0e-03 0.0e+00 2.9e-02 [ Info: 88 2.0e+02 4.1e-03 0.0e+00 2.8e-02 [ Info: 89 2.0e+02 4.0e-03 0.0e+00 2.5e-02 [ Info: 90 2.0e+02 3.1e-03 0.0e+00 2.3e-02 [ Info: 91 2.0e+02 4.2e-04 0.0e+00 3.6e-02 [ Info: 92 2.0e+02 3.3e-02 0.0e+00 9.0e-02 [ Info: 93 2.0e+02 7.3e-02 0.0e+00 1.7e-01 [ Info: 94 2.0e+02 1.8e-01 0.0e+00 1.6e-01 [ Info: 95 2.0e+02 4.4e-02 0.0e+00 1.9e-01 [ Info: 96 2.0e+02 1.4e-01 0.0e+00 1.0e-01 [ Info: 97 2.0e+02 9.5e-02 0.0e+00 1.9e-02 [ Info: 98 2.0e+02 1.6e-02 0.0e+00 1.9e-02 [ Info: 99 2.0e+02 1.5e-03 0.0e+00 1.4e-02 [ Info: 100 2.0e+02 1.1e-03 0.0e+00 1.4e-02 [ Info: 101 2.0e+02 1.1e-03 0.0e+00 1.4e-02 [ Info: 102 2.0e+02 1.2e-03 0.0e+00 1.5e-02 [ Info: 103 2.0e+02 1.3e-03 0.0e+00 1.5e-02 [ Info: 104 2.0e+02 1.4e-03 0.0e+00 1.4e-02 [ Info: 105 2.0e+02 1.5e-03 0.0e+00 1.4e-02 [ Info: 106 2.0e+02 1.7e-03 0.0e+00 1.4e-02 [ Info: 107 2.0e+02 1.9e-03 0.0e+00 1.4e-02 [ Info: 108 2.0e+02 2.2e-03 0.0e+00 1.4e-02 [ Info: 109 2.0e+02 2.5e-03 0.0e+00 1.5e-02 [ Info: 110 2.0e+02 2.8e-03 0.0e+00 1.5e-02 [ Info: 111 2.0e+02 2.9e-03 0.0e+00 1.5e-02 [ Info: 112 2.0e+02 3.0e-03 0.0e+00 1.9e-02 [ Info: 113 2.0e+02 3.1e-04 0.0e+00 3.2e-02 [ Info: 114 2.0e+02 5.1e-03 0.0e+00 3.7e-02 [ Info: 115 2.0e+02 3.7e-02 0.0e+00 9.3e-02 [ Info: 116 2.0e+02 2.6e-02 0.0e+00 1.2e-01 [ Info: 117 2.0e+02 2.2e-02 0.0e+00 1.5e-01 [ Info: 118 2.0e+02 4.2e-02 0.0e+00 1.6e-01 [ Info: 119 2.0e+02 1.6e-02 0.0e+00 1.6e-01 [ Info: 120 2.0e+02 4.2e-02 0.0e+00 1.0e-01 sinh: compliance = 196.88, vol = 0.5, gray = 0.46 [ Info: iter obj Δobj violation kkt_residual [ Info: 0 1.2e+02 Inf 0.0e+00 2.3e-01 [ Info: 1 1.2e+02 6.0e-01 0.0e+00 7.2e-01 [ Info: 2 1.2e+02 5.9e-01 0.0e+00 6.9e-02 [ Info: 3 1.2e+02 6.3e-02 0.0e+00 3.6e-03 [ Info: 4 1.2e+02 4.5e-03 0.0e+00 2.2e-03 [ Info: 5 1.2e+02 1.1e-03 0.0e+00 1.6e-03 [ Info: 6 1.2e+02 6.1e-04 0.0e+00 1.6e-03 [ Info: 7 1.2e+02 4.7e-04 0.0e+00 1.5e-03 [ Info: 8 1.2e+02 3.8e-04 0.0e+00 1.6e-03 [ Info: 9 1.2e+02 2.7e-04 0.0e+00 1.7e-03 [ Info: 10 1.2e+02 2.2e-04 0.0e+00 1.6e-03 [ Info: 11 1.2e+02 1.5e-04 0.0e+00 1.6e-03 [ Info: 12 1.2e+02 1.3e-04 0.0e+00 2.0e-03 [ Info: 13 1.2e+02 1.3e-03 0.0e+00 4.3e-03 [ Info: 14 1.2e+02 1.6e-03 0.0e+00 3.9e-03 [ Info: 15 1.2e+02 1.1e-03 0.0e+00 3.1e-03 [ Info: 16 1.2e+02 1.9e-03 0.0e+00 9.8e-04 [ Info: 17 1.2e+02 5.5e-04 0.0e+00 7.5e-04 [ Info: 18 1.2e+02 6.9e-05 0.0e+00 6.0e-04 [ Info: 19 1.2e+02 1.7e-05 0.0e+00 6.0e-04 [ Info: 20 1.2e+02 1.1e-05 0.0e+00 6.9e-04 [ Info: 21 1.2e+02 3.6e-05 0.0e+00 3.9e-04 [ Info: 22 1.2e+02 3.8e-05 0.0e+00 4.8e-04 [ Info: 23 1.2e+02 2.8e-05 0.0e+00 4.3e-04 [ Info: 24 1.2e+02 2.6e-05 0.0e+00 4.1e-04 [ Info: 25 1.2e+02 2.6e-05 0.0e+00 4.0e-04 [ Info: 26 1.2e+02 3.4e-05 0.0e+00 4.0e-04 [ Info: 27 1.2e+02 4.5e-05 0.0e+00 4.5e-04 [ Info: 28 1.2e+02 4.2e-05 0.0e+00 4.6e-04 [ Info: 29 1.2e+02 3.9e-05 0.0e+00 5.3e-04 [ Info: 30 1.2e+02 2.3e-05 0.0e+00 7.4e-04 [ Info: 31 1.2e+02 5.4e-05 0.0e+00 1.4e-03 [ Info: 32 1.2e+02 1.9e-04 0.0e+00 1.5e-03 [ Info: 33 1.2e+02 8.3e-05 0.0e+00 1.8e-03 [ Info: 34 1.2e+02 1.7e-04 0.0e+00 1.5e-03 [ Info: 35 1.2e+02 2.3e-04 0.0e+00 7.5e-04 [ Info: 36 1.2e+02 8.8e-05 0.0e+00 3.9e-04 [ Info: 37 1.2e+02 1.9e-05 0.0e+00 3.7e-04 [ Info: 38 1.2e+02 8.6e-06 0.0e+00 3.6e-04 [ Info: 39 1.2e+02 8.9e-06 0.0e+00 3.5e-04 [ Info: 40 1.2e+02 9.9e-06 0.0e+00 3.4e-04 [ Info: 41 1.2e+02 1.1e-05 0.0e+00 3.3e-04 [ Info: 42 1.2e+02 1.2e-05 0.0e+00 3.2e-04 [ Info: 43 1.2e+02 1.3e-05 0.0e+00 3.1e-04 [ Info: 44 1.2e+02 1.5e-05 0.0e+00 3.0e-04 [ Info: 45 1.2e+02 1.6e-05 0.0e+00 2.8e-04 [ Info: 46 1.2e+02 6.3e-06 0.0e+00 4.6e-04 [ Info: 47 1.2e+02 1.7e-04 0.0e+00 1.6e-03 [ Info: 48 1.2e+02 2.1e-03 0.0e+00 7.1e-03 [ Info: 49 1.2e+02 4.6e-03 0.0e+00 5.4e-03 [ Info: 50 1.2e+02 1.1e-02 0.0e+00 1.6e-02 [ Info: 51 1.2e+02 3.4e-03 0.0e+00 2.2e-02 [ Info: 52 1.2e+02 7.9e-04 0.0e+00 1.2e-02 [ Info: 53 1.2e+02 1.4e-02 0.0e+00 6.7e-03 [ Info: 54 1.2e+02 5.4e-03 0.0e+00 3.1e-03 [ Info: 55 1.2e+02 8.3e-04 0.0e+00 5.7e-04 [ Info: 56 1.2e+02 9.7e-05 0.0e+00 4.5e-04 [ Info: 57 1.2e+02 1.9e-05 0.0e+00 4.8e-04 [ Info: 58 1.2e+02 1.8e-05 0.0e+00 5.0e-04 [ Info: 59 1.2e+02 1.8e-05 0.0e+00 4.9e-04 [ Info: 60 1.2e+02 1.8e-05 0.0e+00 4.7e-04 [ Info: 61 1.2e+02 1.8e-05 0.0e+00 4.5e-04 [ Info: 62 1.2e+02 1.9e-05 0.0e+00 4.3e-04 [ Info: 63 1.2e+02 1.9e-05 0.0e+00 2.9e-04 [ Info: 64 1.2e+02 1.5e-05 0.0e+00 2.5e-04 [ Info: 65 1.2e+02 1.3e-05 0.0e+00 2.6e-04 [ Info: 66 1.2e+02 1.4e-05 0.0e+00 2.6e-04 [ Info: 67 1.2e+02 1.5e-05 0.0e+00 2.5e-04 [ Info: 68 1.2e+02 1.7e-05 0.0e+00 2.3e-04 [ Info: 69 1.2e+02 1.9e-05 0.0e+00 2.3e-04 [ Info: 70 1.2e+02 2.1e-05 0.0e+00 2.4e-04 [ Info: 71 1.2e+02 1.5e-05 0.0e+00 3.4e-04 [ Info: 72 1.2e+02 1.0e-05 0.0e+00 7.0e-04 [ Info: 73 1.2e+02 7.0e-04 0.0e+00 4.2e-03 [ Info: 74 1.2e+02 3.4e-03 0.0e+00 4.5e-03 [ Info: 75 1.2e+02 8.9e-02 0.0e+00 8.2e-02 [ Info: 76 1.2e+02 3.8e-02 0.0e+00 6.0e-02 [ Info: 77 1.2e+02 2.8e-01 0.0e+00 3.8e-01 [ Info: 78 1.2e+02 1.4e-01 0.0e+00 2.6e-01 [ Info: 79 1.2e+02 1.9e-01 0.0e+00 5.9e-02 [ Info: 80 1.2e+02 7.0e-02 0.0e+00 1.2e-02 [ Info: 81 1.2e+02 1.5e-02 0.0e+00 2.6e-03 [ Info: 82 1.2e+02 2.4e-03 0.0e+00 1.8e-03 [ Info: 83 1.2e+02 5.5e-04 0.0e+00 1.2e-03 [ Info: 84 1.2e+02 1.8e-04 0.0e+00 1.1e-03 [ Info: 85 1.2e+02 1.1e-04 0.0e+00 1.0e-03 [ Info: 86 1.2e+02 8.5e-05 0.0e+00 9.4e-04 [ Info: 87 1.2e+02 7.3e-05 0.0e+00 8.5e-04 [ Info: 88 1.2e+02 6.7e-05 0.0e+00 7.6e-04 [ Info: 89 1.2e+02 6.4e-05 0.0e+00 6.8e-04 [ Info: 90 1.2e+02 6.3e-05 0.0e+00 5.9e-04 [ Info: 91 1.2e+02 6.4e-05 0.0e+00 5.5e-04 [ Info: 92 1.2e+02 6.5e-05 0.0e+00 5.1e-04 [ Info: 93 1.2e+02 5.4e-05 0.0e+00 5.0e-04 [ Info: 94 1.2e+02 4.7e-05 0.0e+00 4.1e-04 [ Info: 95 1.2e+02 1.1e-05 0.0e+00 7.7e-04 [ Info: 96 1.2e+02 2.2e-04 0.0e+00 1.9e-03 [ Info: 97 1.2e+02 1.1e-03 0.0e+00 3.2e-03 [ Info: 98 1.2e+02 4.4e-03 0.0e+00 7.7e-03 [ Info: 99 1.2e+02 3.4e-02 0.0e+00 3.5e-02 [ Info: 100 1.2e+02 3.7e-02 0.0e+00 3.4e-02 [ Info: 101 1.2e+02 4.2e-02 0.0e+00 6.8e-02 [ Info: 102 1.2e+02 4.5e-02 0.0e+00 4.6e-02 [ Info: 103 1.2e+02 4.1e-02 0.0e+00 2.3e-02 [ Info: 104 1.2e+02 2.6e-02 0.0e+00 5.5e-03 [ Info: 105 1.2e+02 5.8e-03 0.0e+00 1.1e-03 [ Info: 106 1.2e+02 2.3e-04 0.0e+00 1.0e-03 [ Info: 107 1.2e+02 4.8e-05 0.0e+00 9.4e-04 [ Info: 108 1.2e+02 3.4e-05 0.0e+00 5.2e-04 [ Info: 109 1.2e+02 2.4e-05 0.0e+00 5.3e-04 [ Info: 110 1.2e+02 2.1e-05 0.0e+00 4.9e-04 [ Info: 111 1.2e+02 1.9e-05 0.0e+00 4.6e-04 [ Info: 112 1.2e+02 1.9e-05 0.0e+00 2.9e-04 [ Info: 113 1.2e+02 2.0e-05 0.0e+00 2.9e-04 [ Info: 114 1.2e+02 2.2e-05 0.0e+00 2.7e-04 [ Info: 115 1.2e+02 2.4e-05 0.0e+00 2.8e-04 [ Info: 116 1.2e+02 2.4e-05 0.0e+00 2.8e-04 [ Info: 117 1.2e+02 3.0e-05 0.0e+00 1.0e-03 [ Info: 118 1.2e+02 4.4e-04 0.0e+00 3.2e-03 [ Info: 119 1.2e+02 2.6e-03 0.0e+00 4.5e-03 [ Info: 120 1.2e+02 4.9e-03 0.0e+00 8.6e-03 projected: compliance = 115.59, vol = 0.5, gray = 0.988
fig_p = visualize(problem; static=true, topology=results["power"])
display_app(fig_p)fig_proj = visualize(problem; static=true, topology=results["projected"])
display_app(fig_proj)The power, rational, and sinh penalties produce comparable topologies with varying amounts of gray; the projected penalty produces a noticeably crisper design.
Parameter sensitivity
Ramping the exponent of the power-law penalty trades stiffness for binary crispness. We sweep p and report the grayness and final compliance.
for p in (2.0, 3.0, 4.0, 5.0)
c, vol, g, _ = solve_with(PowerPenaltyFun(p))
println("p=$p: compliance = $(round(c, digits=2)), gray = $(round(g, digits=3))")
end[ Info: iter obj Δobj violation kkt_residual [ Info: 0 4.6e+02 Inf 0.0e+00 1.7e+01 [ Info: 1 3.4e+02 1.2e+02 0.0e+00 5.5e+01 [ Info: 2 2.6e+02 7.6e+01 0.0e+00 1.3e+01 [ Info: 3 2.3e+02 2.7e+01 0.0e+00 4.6e+00 [ Info: 4 2.2e+02 1.0e+01 0.0e+00 2.0e+00 [ Info: 5 2.2e+02 4.9e+00 0.0e+00 1.0e+00 [ Info: 6 2.2e+02 2.9e+00 0.0e+00 6.6e-01 [ Info: 7 2.1e+02 2.1e+00 0.0e+00 5.1e-01 [ Info: 8 2.1e+02 1.9e+00 0.0e+00 4.7e-01 [ Info: 9 2.1e+02 1.7e+00 0.0e+00 4.1e-01 [ Info: 10 2.1e+02 1.6e+00 0.0e+00 3.4e-01 [ Info: 11 2.1e+02 1.3e+00 0.0e+00 3.0e-01 [ Info: 12 2.1e+02 1.1e+00 0.0e+00 2.5e-01 [ Info: 13 2.0e+02 7.8e-01 0.0e+00 1.9e-01 [ Info: 14 2.0e+02 5.8e-01 0.0e+00 2.0e-01 [ Info: 15 2.0e+02 1.4e-02 0.0e+00 4.4e-01 [ Info: 16 2.0e+02 8.0e-01 0.0e+00 8.2e-01 [ Info: 17 2.1e+02 1.3e-01 0.0e+00 1.2e+00 [ Info: 18 2.0e+02 1.2e+00 0.0e+00 1.1e+00 [ Info: 19 2.0e+02 1.4e+00 0.0e+00 3.2e-01 [ Info: 20 2.0e+02 4.5e-01 0.0e+00 9.9e-02 [ Info: 21 2.0e+02 1.4e-01 0.0e+00 1.0e-01 [ Info: 22 2.0e+02 1.1e-01 0.0e+00 9.7e-02 [ Info: 23 2.0e+02 1.1e-01 0.0e+00 9.8e-02 [ Info: 24 2.0e+02 1.1e-01 0.0e+00 1.1e-01 [ Info: 25 2.0e+02 1.2e-01 0.0e+00 1.1e-01 [ Info: 26 2.0e+02 1.5e-01 0.0e+00 1.2e-01 [ Info: 27 2.0e+02 1.8e-01 0.0e+00 1.2e-01 [ Info: 28 2.0e+02 2.3e-01 0.0e+00 1.2e-01 [ Info: 29 2.0e+02 2.9e-01 0.0e+00 9.9e-02 [ Info: 30 2.0e+02 3.4e-01 0.0e+00 1.1e-01 [ Info: 31 2.0e+02 3.7e-01 0.0e+00 1.3e-01 [ Info: 32 2.0e+02 3.9e-01 0.0e+00 1.2e-01 [ Info: 33 2.0e+02 3.4e-01 0.0e+00 1.6e-01 [ Info: 34 2.0e+02 2.8e-01 0.0e+00 2.3e-01 [ Info: 35 2.0e+02 1.7e-01 0.0e+00 3.7e-01 [ Info: 36 2.0e+02 4.5e-01 0.0e+00 3.8e-01 [ Info: 37 2.0e+02 5.6e-01 0.0e+00 2.4e-01 [ Info: 38 2.0e+02 4.1e-01 0.0e+00 2.0e-01 [ Info: 39 2.0e+02 2.4e-01 0.0e+00 2.1e-01 [ Info: 40 2.0e+02 1.7e-01 0.0e+00 2.2e-01 [ Info: 41 2.0e+02 1.6e-01 0.0e+00 1.5e-01 [ Info: 42 2.0e+02 1.3e-01 0.0e+00 1.7e-01 [ Info: 43 2.0e+02 1.3e-01 0.0e+00 1.8e-01 [ Info: 44 2.0e+02 1.3e-01 0.0e+00 1.3e-01 [ Info: 45 2.0e+02 1.3e-01 0.0e+00 1.4e-01 [ Info: 46 2.0e+02 1.3e-01 0.0e+00 1.3e-01 [ Info: 47 2.0e+02 1.3e-01 0.0e+00 1.4e-01 [ Info: 48 2.0e+02 1.4e-01 0.0e+00 1.5e-01 [ Info: 49 2.0e+02 1.8e-01 0.0e+00 1.8e-01 [ Info: 50 2.0e+02 2.2e-01 0.0e+00 2.1e-01 [ Info: 51 2.0e+02 3.0e-01 0.0e+00 3.4e-01 [ Info: 52 1.9e+02 2.3e-01 0.0e+00 1.4e-01 [ Info: 53 1.9e+02 1.5e-01 0.0e+00 1.7e-01 [ Info: 54 1.9e+02 6.8e-02 0.0e+00 1.6e-01 [ Info: 55 1.9e+02 1.6e-01 0.0e+00 1.5e-01 [ Info: 56 1.9e+02 2.3e-01 0.0e+00 1.7e-01 [ Info: 57 1.9e+02 3.4e-01 0.0e+00 1.5e-01 [ Info: 58 1.9e+02 2.7e-01 0.0e+00 2.3e-01 [ Info: 59 1.9e+02 2.0e-01 0.0e+00 2.3e-01 [ Info: 60 1.9e+02 1.3e-01 0.0e+00 2.0e-01 [ Info: 61 1.9e+02 1.0e-01 0.0e+00 2.2e-01 [ Info: 62 1.9e+02 9.2e-02 0.0e+00 1.6e-01 [ Info: 63 1.9e+02 8.7e-02 0.0e+00 1.7e-01 [ Info: 64 1.9e+02 9.7e-02 0.0e+00 1.8e-01 [ Info: 65 1.9e+02 1.1e-01 0.0e+00 1.9e-01 [ Info: 66 1.9e+02 1.0e-01 0.0e+00 2.1e-01 [ Info: 67 1.9e+02 1.1e-01 0.0e+00 2.6e-01 [ Info: 68 1.9e+02 1.0e-01 0.0e+00 2.0e-01 [ Info: 69 1.9e+02 8.0e-02 0.0e+00 2.1e-01 [ Info: 70 1.9e+02 7.0e-02 0.0e+00 2.2e-01 [ Info: 71 1.9e+02 6.0e-02 0.0e+00 2.3e-01 [ Info: 72 1.9e+02 5.3e-02 0.0e+00 2.5e-01 [ Info: 73 1.9e+02 6.2e-02 0.0e+00 2.9e-01 [ Info: 74 1.9e+02 5.1e-02 0.0e+00 8.6e-02 [ Info: 75 1.9e+02 4.1e-02 0.0e+00 9.0e-02 [ Info: 76 1.9e+02 3.2e-02 0.0e+00 8.9e-02 [ Info: 77 1.9e+02 2.9e-02 0.0e+00 9.8e-02 [ Info: 78 1.9e+02 2.5e-02 0.0e+00 8.8e-02 [ Info: 79 1.9e+02 2.3e-02 0.0e+00 9.1e-02 [ Info: 80 1.9e+02 2.4e-02 0.0e+00 9.5e-02 [ Info: 81 1.9e+02 2.3e-02 0.0e+00 3.7e-02 [ Info: 82 1.9e+02 1.8e-02 0.0e+00 3.6e-02 [ Info: 83 1.9e+02 1.8e-02 0.0e+00 3.8e-02 [ Info: 84 1.9e+02 1.7e-02 0.0e+00 4.1e-02 [ Info: 85 1.9e+02 1.5e-02 0.0e+00 4.6e-02 [ Info: 86 1.9e+02 1.2e-02 0.0e+00 4.7e-02 [ Info: 87 1.9e+02 1.1e-02 0.0e+00 5.1e-02 [ Info: 88 1.9e+02 1.2e-02 0.0e+00 5.3e-02 [ Info: 89 1.9e+02 9.8e-03 0.0e+00 4.8e-02 [ Info: 90 1.9e+02 6.4e-03 0.0e+00 4.9e-02 [ Info: 91 1.9e+02 6.6e-03 0.0e+00 4.9e-02 [ Info: 92 1.9e+02 6.6e-03 0.0e+00 4.7e-02 [ Info: 93 1.9e+02 6.6e-03 0.0e+00 4.7e-02 [ Info: 94 1.9e+02 6.4e-03 0.0e+00 1.7e-02 [ Info: 95 1.9e+02 4.3e-03 0.0e+00 1.4e-02 [ Info: 96 1.9e+02 3.7e-03 0.0e+00 1.0e-02 [ Info: 97 1.9e+02 3.7e-03 0.0e+00 9.5e-03 [ Info: 98 1.9e+02 3.4e-03 0.0e+00 6.9e-03 [ Info: 99 1.9e+02 3.3e-03 0.0e+00 8.5e-03 [ Info: 100 1.9e+02 3.4e-03 0.0e+00 9.3e-03 [ Info: 101 1.9e+02 3.6e-03 0.0e+00 1.0e-02 [ Info: 102 1.9e+02 3.4e-03 0.0e+00 1.2e-02 [ Info: 103 1.9e+02 2.4e-03 0.0e+00 2.1e-02 [ Info: 104 1.9e+02 1.7e-03 0.0e+00 2.7e-02 [ Info: 105 1.9e+02 3.5e-03 0.0e+00 3.2e-02 [ Info: 106 1.9e+02 7.0e-03 0.0e+00 2.2e-02 [ Info: 107 1.9e+02 5.7e-03 0.0e+00 9.1e-03 [ Info: 108 1.9e+02 2.6e-03 0.0e+00 1.1e-02 [ Info: 109 1.9e+02 1.9e-03 0.0e+00 1.2e-02 [ Info: 110 1.9e+02 1.8e-03 0.0e+00 1.3e-02 [ Info: 111 1.9e+02 1.7e-03 0.0e+00 1.3e-02 [ Info: 112 1.9e+02 1.6e-03 0.0e+00 1.3e-02 [ Info: 113 1.9e+02 1.7e-03 0.0e+00 1.3e-02 [ Info: 114 1.9e+02 1.7e-03 0.0e+00 1.3e-02 [ Info: 115 1.9e+02 1.9e-03 0.0e+00 1.3e-02 [ Info: 116 1.9e+02 2.0e-03 0.0e+00 1.3e-02 [ Info: 117 1.9e+02 2.1e-03 0.0e+00 1.3e-02 [ Info: 118 1.9e+02 2.2e-03 0.0e+00 1.3e-02 [ Info: 119 1.9e+02 2.1e-03 0.0e+00 1.2e-02 [ Info: 120 1.9e+02 2.0e-03 0.0e+00 1.1e-02 p=2.0: compliance = 191.79, gray = 0.468 [ Info: iter obj Δobj violation kkt_residual [ Info: 0 9.1e+02 Inf 0.0e+00 5.2e+01 [ Info: 1 6.2e+02 2.9e+02 0.0e+00 1.6e+02 [ Info: 2 4.3e+02 1.9e+02 0.0e+00 3.7e+01 [ Info: 3 3.6e+02 6.6e+01 0.0e+00 1.3e+01 [ Info: 4 3.3e+02 2.7e+01 0.0e+00 5.8e+00 [ Info: 5 3.2e+02 1.6e+01 0.0e+00 3.4e+00 [ Info: 6 3.1e+02 1.1e+01 0.0e+00 2.6e+00 [ Info: 7 3.0e+02 8.8e+00 0.0e+00 2.2e+00 [ Info: 8 2.9e+02 7.5e+00 0.0e+00 1.8e+00 [ Info: 9 2.8e+02 6.5e+00 0.0e+00 1.6e+00 [ Info: 10 2.8e+02 6.0e+00 0.0e+00 1.4e+00 [ Info: 11 2.7e+02 6.0e+00 0.0e+00 1.4e+00 [ Info: 12 2.6e+02 7.4e+00 0.0e+00 1.6e+00 [ Info: 13 2.5e+02 9.3e+00 0.0e+00 2.1e+00 [ Info: 14 2.4e+02 1.1e+01 0.0e+00 2.3e+00 [ Info: 15 2.3e+02 1.0e+01 0.0e+00 2.1e+00 [ Info: 16 2.2e+02 8.1e+00 0.0e+00 1.4e+00 [ Info: 17 2.2e+02 4.5e+00 0.0e+00 7.6e-01 [ Info: 18 2.2e+02 2.4e+00 0.0e+00 4.7e-01 [ Info: 19 2.2e+02 1.5e+00 0.0e+00 4.3e-01 [ Info: 20 2.1e+02 9.8e-01 0.0e+00 2.7e-01 [ Info: 21 2.1e+02 6.6e-01 0.0e+00 2.8e-01 [ Info: 22 2.1e+02 5.2e-01 0.0e+00 2.8e-01 [ Info: 23 2.1e+02 4.8e-01 0.0e+00 2.4e-01 [ Info: 24 2.1e+02 5.0e-01 0.0e+00 2.1e-01 [ Info: 25 2.1e+02 4.6e-01 0.0e+00 1.6e-01 [ Info: 26 2.1e+02 2.7e-01 0.0e+00 1.0e-01 [ Info: 27 2.1e+02 1.1e-01 0.0e+00 9.2e-02 [ Info: 28 2.1e+02 6.0e-02 0.0e+00 6.1e-02 [ Info: 29 2.1e+02 3.4e-02 0.0e+00 6.5e-02 [ Info: 30 2.1e+02 2.4e-02 0.0e+00 6.7e-02 [ Info: 31 2.1e+02 2.0e-02 0.0e+00 6.7e-02 [ Info: 32 2.1e+02 1.6e-02 0.0e+00 6.3e-02 [ Info: 33 2.1e+02 1.6e-02 0.0e+00 6.1e-02 [ Info: 34 2.1e+02 1.6e-02 0.0e+00 6.0e-02 [ Info: 35 2.1e+02 1.7e-02 0.0e+00 5.9e-02 [ Info: 36 2.1e+02 1.4e-02 0.0e+00 1.5e-02 [ Info: 37 2.1e+02 8.4e-03 0.0e+00 1.3e-02 [ Info: 38 2.1e+02 6.6e-03 0.0e+00 1.3e-02 [ Info: 39 2.1e+02 5.5e-03 0.0e+00 1.3e-02 [ Info: 40 2.1e+02 4.4e-03 0.0e+00 9.6e-03 [ Info: 41 2.1e+02 2.8e-03 0.0e+00 8.0e-03 [ Info: 42 2.1e+02 2.0e-03 0.0e+00 6.5e-03 [ Info: 43 2.1e+02 1.3e-03 0.0e+00 6.4e-03 [ Info: 44 2.1e+02 1.1e-03 0.0e+00 5.9e-03 [ Info: 45 2.1e+02 1.0e-03 0.0e+00 5.9e-03 [ Info: 46 2.1e+02 1.0e-03 0.0e+00 5.4e-03 [ Info: 47 2.1e+02 9.6e-04 0.0e+00 5.4e-03 [ Info: 48 2.1e+02 9.1e-04 0.0e+00 5.3e-03 [ Info: 49 2.1e+02 8.7e-04 0.0e+00 5.2e-03 [ Info: 50 2.1e+02 8.5e-04 0.0e+00 5.1e-03 [ Info: 51 2.1e+02 8.2e-04 0.0e+00 5.0e-03 [ Info: 52 2.1e+02 8.0e-04 0.0e+00 4.9e-03 [ Info: 53 2.1e+02 7.7e-04 0.0e+00 4.8e-03 [ Info: 54 2.1e+02 6.5e-04 0.0e+00 4.1e-03 [ Info: 55 2.1e+02 5.6e-04 0.0e+00 3.9e-03 [ Info: 56 2.1e+02 4.8e-04 0.0e+00 3.5e-03 [ Info: 57 2.1e+02 4.2e-04 0.0e+00 3.5e-03 [ Info: 58 2.1e+02 3.7e-04 0.0e+00 3.2e-03 [ Info: 59 2.1e+02 3.2e-04 0.0e+00 3.9e-03 [ Info: 60 2.1e+02 2.8e-04 0.0e+00 4.0e-03 [ Info: 61 2.1e+02 2.4e-04 0.0e+00 4.4e-03 [ Info: 62 2.1e+02 2.1e-04 0.0e+00 4.6e-03 [ Info: 63 2.1e+02 1.6e-04 0.0e+00 4.1e-03 [ Info: 64 2.1e+02 1.3e-04 0.0e+00 2.8e-03 [ Info: 65 2.1e+02 8.8e-05 0.0e+00 2.6e-03 [ Info: 66 2.1e+02 6.6e-05 0.0e+00 1.7e-03 [ Info: 67 2.1e+02 5.9e-05 0.0e+00 1.7e-03 [ Info: 68 2.1e+02 5.9e-05 0.0e+00 1.7e-03 [ Info: 69 2.1e+02 6.0e-05 0.0e+00 1.7e-03 [ Info: 70 2.1e+02 6.0e-05 0.0e+00 1.7e-03 [ Info: 71 2.1e+02 6.0e-05 0.0e+00 1.7e-03 [ Info: 72 2.1e+02 5.9e-05 0.0e+00 1.7e-03 [ Info: 73 2.1e+02 5.8e-05 0.0e+00 1.7e-03 [ Info: 74 2.1e+02 5.6e-05 0.0e+00 1.6e-03 [ Info: 75 2.1e+02 5.5e-05 0.0e+00 1.6e-03 [ Info: 76 2.1e+02 5.3e-05 0.0e+00 1.6e-03 [ Info: 77 2.1e+02 5.1e-05 0.0e+00 1.6e-03 [ Info: 78 2.1e+02 4.5e-05 0.0e+00 1.4e-03 [ Info: 79 2.1e+02 4.1e-05 0.0e+00 1.5e-03 [ Info: 80 2.1e+02 3.7e-05 0.0e+00 1.4e-03 [ Info: 81 2.1e+02 3.4e-05 0.0e+00 1.6e-03 [ Info: 82 2.1e+02 3.1e-05 0.0e+00 1.3e-03 [ Info: 83 2.1e+02 2.9e-05 0.0e+00 1.6e-03 [ Info: 84 2.1e+02 2.7e-05 0.0e+00 1.2e-03 [ Info: 85 2.1e+02 2.5e-05 0.0e+00 1.8e-03 [ Info: 86 2.1e+02 2.3e-05 0.0e+00 1.4e-03 [ Info: 87 2.1e+02 2.2e-05 0.0e+00 2.0e-03 [ Info: 88 2.1e+02 2.1e-05 0.0e+00 1.5e-03 [ Info: 89 2.1e+02 2.0e-05 0.0e+00 2.0e-03 [ Info: 90 2.1e+02 2.0e-05 0.0e+00 1.4e-03 [ Info: 91 2.1e+02 1.9e-05 0.0e+00 1.7e-03 [ Info: 92 2.1e+02 1.5e-05 0.0e+00 9.5e-04 [ Info: 93 2.1e+02 7.6e-06 0.0e+00 1.0e-03 [ Info: 94 2.1e+02 3.6e-06 0.0e+00 1.0e-03 [ Info: 95 2.1e+02 3.2e-06 0.0e+00 9.9e-04 [ Info: 96 2.1e+02 3.1e-06 0.0e+00 9.3e-04 [ Info: 97 2.1e+02 3.2e-06 0.0e+00 8.6e-04 [ Info: 98 2.1e+02 3.2e-06 0.0e+00 7.8e-04 [ Info: 99 2.1e+02 3.2e-06 0.0e+00 7.1e-04 [ Info: 100 2.1e+02 3.2e-06 0.0e+00 6.3e-04 [ Info: 101 2.1e+02 3.2e-06 0.0e+00 5.6e-04 [ Info: 102 2.1e+02 3.2e-06 0.0e+00 4.9e-04 [ Info: 103 2.1e+02 3.1e-06 0.0e+00 4.3e-04 [ Info: 104 2.1e+02 3.0e-06 0.0e+00 3.8e-04 [ Info: 105 2.1e+02 2.7e-06 0.0e+00 3.6e-04 [ Info: 106 2.1e+02 2.4e-06 0.0e+00 3.2e-04 [ Info: 107 2.1e+02 2.1e-06 0.0e+00 3.0e-04 [ Info: 108 2.1e+02 1.8e-06 0.0e+00 2.6e-04 [ Info: 109 2.1e+02 1.6e-06 0.0e+00 2.5e-04 [ Info: 110 2.1e+02 1.5e-06 0.0e+00 2.2e-04 [ Info: 111 2.1e+02 1.3e-06 0.0e+00 2.0e-04 [ Info: 112 2.1e+02 1.2e-06 0.0e+00 1.8e-04 [ Info: 113 2.1e+02 1.1e-06 0.0e+00 1.7e-04 [ Info: 114 2.1e+02 1.0e-06 0.0e+00 1.7e-04 [ Info: 115 2.1e+02 9.4e-07 0.0e+00 1.6e-04 [ Info: 116 2.1e+02 8.7e-07 0.0e+00 1.6e-04 [ Info: 117 2.1e+02 8.1e-07 0.0e+00 1.6e-04 [ Info: 118 2.1e+02 7.6e-07 0.0e+00 1.5e-04 [ Info: 119 2.1e+02 7.1e-07 0.0e+00 1.5e-04 [ Info: 120 2.1e+02 6.7e-07 0.0e+00 1.4e-04 p=3.0: compliance = 211.73, gray = 0.381 [ Info: iter obj Δobj violation kkt_residual [ Info: 0 1.8e+03 Inf 0.0e+00 1.4e+02 [ Info: 1 1.2e+03 6.2e+02 0.0e+00 4.3e+02 [ Info: 2 7.2e+02 4.6e+02 0.0e+00 1.1e+02 [ Info: 3 5.6e+02 1.6e+02 0.0e+00 3.3e+01 [ Info: 4 5.0e+02 6.8e+01 0.0e+00 1.5e+01 [ Info: 5 4.6e+02 4.0e+01 0.0e+00 9.0e+00 [ Info: 6 4.3e+02 2.9e+01 0.0e+00 7.2e+00 [ Info: 7 4.0e+02 2.5e+01 0.0e+00 6.4e+00 [ Info: 8 3.8e+02 2.3e+01 0.0e+00 5.9e+00 [ Info: 9 3.5e+02 2.5e+01 0.0e+00 6.3e+00 [ Info: 10 3.2e+02 2.9e+01 0.0e+00 7.3e+00 [ Info: 11 2.9e+02 3.2e+01 0.0e+00 7.9e+00 [ Info: 12 2.7e+02 2.5e+01 0.0e+00 5.4e+00 [ Info: 13 2.5e+02 1.5e+01 0.0e+00 2.8e+00 [ Info: 14 2.4e+02 9.4e+00 0.0e+00 1.7e+00 [ Info: 15 2.4e+02 5.7e+00 0.0e+00 7.8e-01 [ Info: 16 2.4e+02 1.9e+00 0.0e+00 3.8e-01 [ Info: 17 2.3e+02 1.2e+00 0.0e+00 3.5e-01 [ Info: 18 2.3e+02 8.4e-01 0.0e+00 3.2e-01 [ Info: 19 2.3e+02 6.4e-01 0.0e+00 2.2e-01 [ Info: 20 2.3e+02 5.6e-01 0.0e+00 2.2e-01 [ Info: 21 2.3e+02 4.7e-01 0.0e+00 1.7e-01 [ Info: 22 2.3e+02 4.0e-01 0.0e+00 1.7e-01 [ Info: 23 2.3e+02 4.4e-01 0.0e+00 1.6e-01 [ Info: 24 2.3e+02 4.2e-01 0.0e+00 1.8e-01 [ Info: 25 2.3e+02 3.2e-01 0.0e+00 9.7e-02 [ Info: 26 2.3e+02 1.8e-01 0.0e+00 8.3e-02 [ Info: 27 2.3e+02 1.2e-01 0.0e+00 8.9e-02 [ Info: 28 2.3e+02 1.1e-01 0.0e+00 8.8e-02 [ Info: 29 2.3e+02 1.1e-01 0.0e+00 9.0e-02 [ Info: 30 2.3e+02 1.1e-01 0.0e+00 1.0e-01 [ Info: 31 2.3e+02 1.2e-01 0.0e+00 1.0e-01 [ Info: 32 2.3e+02 1.2e-01 0.0e+00 1.0e-01 [ Info: 33 2.3e+02 9.3e-02 0.0e+00 8.6e-02 [ Info: 34 2.3e+02 7.7e-02 0.0e+00 7.8e-02 [ Info: 35 2.3e+02 7.3e-02 0.0e+00 8.6e-02 [ Info: 36 2.3e+02 8.8e-02 0.0e+00 1.1e-01 [ Info: 37 2.3e+02 1.4e-01 0.0e+00 1.3e-01 [ Info: 38 2.3e+02 2.4e-01 0.0e+00 1.6e-01 [ Info: 39 2.3e+02 3.2e-01 0.0e+00 1.4e-01 [ Info: 40 2.3e+02 2.6e-01 0.0e+00 9.7e-02 [ Info: 41 2.3e+02 1.0e-01 0.0e+00 5.7e-02 [ Info: 42 2.3e+02 3.8e-02 0.0e+00 4.8e-02 [ Info: 43 2.3e+02 2.4e-02 0.0e+00 3.9e-02 [ Info: 44 2.3e+02 1.7e-02 0.0e+00 3.8e-02 [ Info: 45 2.3e+02 1.3e-02 0.0e+00 3.9e-02 [ Info: 46 2.3e+02 8.9e-03 0.0e+00 3.1e-02 [ Info: 47 2.3e+02 6.6e-03 0.0e+00 2.8e-02 [ Info: 48 2.3e+02 5.6e-03 0.0e+00 3.3e-02 [ Info: 49 2.3e+02 5.1e-03 0.0e+00 3.5e-02 [ Info: 50 2.3e+02 4.9e-03 0.0e+00 3.4e-02 [ Info: 51 2.3e+02 4.9e-03 0.0e+00 3.1e-02 [ Info: 52 2.3e+02 4.9e-03 0.0e+00 2.6e-02 [ Info: 53 2.3e+02 4.8e-03 0.0e+00 2.2e-02 [ Info: 54 2.3e+02 4.6e-03 0.0e+00 1.7e-02 [ Info: 55 2.3e+02 4.2e-03 0.0e+00 1.5e-02 [ Info: 56 2.3e+02 3.7e-03 0.0e+00 1.3e-02 [ Info: 57 2.3e+02 2.7e-03 0.0e+00 1.1e-02 [ Info: 58 2.3e+02 2.0e-03 0.0e+00 1.2e-02 [ Info: 59 2.3e+02 1.6e-03 0.0e+00 1.2e-02 [ Info: 60 2.3e+02 1.5e-03 0.0e+00 1.1e-02 [ Info: 61 2.3e+02 1.5e-03 0.0e+00 9.5e-03 [ Info: 62 2.3e+02 1.6e-03 0.0e+00 9.5e-03 [ Info: 63 2.3e+02 1.7e-03 0.0e+00 1.1e-02 [ Info: 64 2.3e+02 1.8e-03 0.0e+00 1.1e-02 [ Info: 65 2.3e+02 1.6e-03 0.0e+00 1.1e-02 [ Info: 66 2.3e+02 1.4e-03 0.0e+00 8.8e-03 [ Info: 67 2.3e+02 1.4e-03 0.0e+00 1.0e-02 [ Info: 68 2.3e+02 1.5e-03 0.0e+00 1.3e-02 [ Info: 69 2.3e+02 1.8e-03 0.0e+00 1.4e-02 [ Info: 70 2.3e+02 2.1e-03 0.0e+00 1.6e-02 [ Info: 71 2.3e+02 2.7e-03 0.0e+00 1.6e-02 [ Info: 72 2.3e+02 3.4e-03 0.0e+00 1.6e-02 [ Info: 73 2.3e+02 4.3e-03 0.0e+00 1.6e-02 [ Info: 74 2.3e+02 5.2e-03 0.0e+00 1.6e-02 [ Info: 75 2.3e+02 6.4e-03 0.0e+00 1.7e-02 [ Info: 76 2.3e+02 7.9e-03 0.0e+00 1.9e-02 [ Info: 77 2.3e+02 1.0e-02 0.0e+00 2.3e-02 [ Info: 78 2.3e+02 1.4e-02 0.0e+00 2.8e-02 [ Info: 79 2.3e+02 1.9e-02 0.0e+00 2.9e-02 [ Info: 80 2.3e+02 1.8e-02 0.0e+00 2.3e-02 [ Info: 81 2.3e+02 1.7e-02 0.0e+00 2.4e-02 [ Info: 82 2.3e+02 1.4e-02 0.0e+00 2.5e-02 [ Info: 83 2.3e+02 9.5e-03 0.0e+00 2.4e-02 [ Info: 84 2.3e+02 8.0e-03 0.0e+00 2.5e-02 [ Info: 85 2.3e+02 6.6e-03 0.0e+00 2.6e-02 [ Info: 86 2.3e+02 4.0e-03 0.0e+00 2.4e-02 [ Info: 87 2.3e+02 3.5e-03 0.0e+00 2.2e-02 [ Info: 88 2.3e+02 3.2e-03 0.0e+00 2.0e-02 [ Info: 89 2.3e+02 3.0e-03 0.0e+00 1.7e-02 [ Info: 90 2.3e+02 2.7e-03 0.0e+00 1.5e-02 [ Info: 91 2.3e+02 2.5e-03 0.0e+00 1.2e-02 [ Info: 92 2.3e+02 2.3e-03 0.0e+00 1.0e-02 [ Info: 93 2.3e+02 2.1e-03 0.0e+00 1.2e-02 [ Info: 94 2.3e+02 1.9e-03 0.0e+00 1.3e-02 [ Info: 95 2.3e+02 1.7e-03 0.0e+00 1.3e-02 [ Info: 96 2.3e+02 1.6e-03 0.0e+00 1.2e-02 [ Info: 97 2.3e+02 1.3e-03 0.0e+00 1.2e-02 [ Info: 98 2.3e+02 9.6e-04 0.0e+00 1.0e-02 [ Info: 99 2.3e+02 9.5e-04 0.0e+00 9.2e-03 [ Info: 100 2.3e+02 1.0e-03 0.0e+00 1.1e-02 [ Info: 101 2.3e+02 1.2e-03 0.0e+00 1.2e-02 [ Info: 102 2.3e+02 1.4e-03 0.0e+00 1.4e-02 [ Info: 103 2.3e+02 1.7e-03 0.0e+00 1.5e-02 [ Info: 104 2.3e+02 2.1e-03 0.0e+00 1.6e-02 [ Info: 105 2.3e+02 2.7e-03 0.0e+00 1.6e-02 [ Info: 106 2.3e+02 3.3e-03 0.0e+00 1.5e-02 [ Info: 107 2.3e+02 3.9e-03 0.0e+00 1.5e-02 [ Info: 108 2.3e+02 4.6e-03 0.0e+00 1.6e-02 [ Info: 109 2.3e+02 5.3e-03 0.0e+00 1.7e-02 [ Info: 110 2.3e+02 4.6e-03 0.0e+00 1.4e-02 [ Info: 111 2.3e+02 3.6e-03 0.0e+00 1.8e-02 [ Info: 112 2.3e+02 2.9e-03 0.0e+00 2.4e-02 [ Info: 113 2.3e+02 2.8e-03 0.0e+00 2.8e-02 [ Info: 114 2.3e+02 3.0e-03 0.0e+00 3.0e-02 [ Info: 115 2.3e+02 3.4e-03 0.0e+00 3.1e-02 [ Info: 116 2.3e+02 4.0e-03 0.0e+00 3.0e-02 [ Info: 117 2.3e+02 4.5e-03 0.0e+00 2.7e-02 [ Info: 118 2.3e+02 4.8e-03 0.0e+00 2.3e-02 [ Info: 119 2.3e+02 3.7e-03 0.0e+00 1.6e-02 [ Info: 120 2.3e+02 2.2e-03 0.0e+00 1.6e-02 p=4.0: compliance = 228.14, gray = 0.371 [ Info: iter obj Δobj violation kkt_residual [ Info: 0 3.6e+03 Inf 0.0e+00 3.3e+02 [ Info: 1 2.3e+03 1.2e+03 0.0e+00 1.0e+03 [ Info: 2 1.3e+03 1.1e+03 0.0e+00 3.2e+02 [ Info: 3 8.8e+02 3.7e+02 0.0e+00 7.8e+01 [ Info: 4 7.3e+02 1.5e+02 0.0e+00 3.7e+01 [ Info: 5 6.4e+02 9.1e+01 0.0e+00 2.3e+01 [ Info: 6 5.7e+02 6.5e+01 0.0e+00 1.6e+01 [ Info: 7 5.1e+02 6.4e+01 0.0e+00 1.7e+01 [ Info: 8 4.4e+02 7.2e+01 0.0e+00 1.9e+01 [ Info: 9 3.6e+02 7.6e+01 0.0e+00 2.3e+01 [ Info: 10 3.1e+02 5.3e+01 0.0e+00 1.2e+01 [ Info: 11 2.8e+02 2.6e+01 0.0e+00 4.9e+00 [ Info: 12 2.7e+02 1.5e+01 0.0e+00 2.3e+00 [ Info: 13 2.6e+02 8.5e+00 0.0e+00 1.5e+00 [ Info: 14 2.5e+02 6.2e+00 0.0e+00 1.0e+00 [ Info: 15 2.5e+02 2.2e+00 0.0e+00 6.6e-01 [ Info: 16 2.5e+02 1.1e+00 0.0e+00 3.7e-01 [ Info: 17 2.5e+02 6.2e-01 0.0e+00 3.0e-01 [ Info: 18 2.5e+02 3.9e-01 0.0e+00 2.3e-01 [ Info: 19 2.5e+02 3.0e-01 0.0e+00 1.8e-01 [ Info: 20 2.5e+02 2.1e-01 0.0e+00 1.8e-01 [ Info: 21 2.5e+02 1.9e-01 0.0e+00 2.2e-01 [ Info: 22 2.5e+02 1.7e-01 0.0e+00 1.1e-01 [ Info: 23 2.5e+02 1.2e-01 0.0e+00 8.6e-02 [ Info: 24 2.5e+02 8.3e-02 0.0e+00 8.4e-02 [ Info: 25 2.5e+02 7.3e-02 0.0e+00 8.3e-02 [ Info: 26 2.5e+02 5.4e-02 0.0e+00 6.7e-02 [ Info: 27 2.5e+02 3.7e-02 0.0e+00 7.0e-02 [ Info: 28 2.5e+02 3.3e-02 0.0e+00 7.4e-02 [ Info: 29 2.5e+02 2.3e-02 0.0e+00 3.0e-02 [ Info: 30 2.5e+02 1.3e-02 0.0e+00 2.4e-02 [ Info: 31 2.5e+02 9.9e-03 0.0e+00 2.2e-02 [ Info: 32 2.5e+02 7.8e-03 0.0e+00 2.1e-02 [ Info: 33 2.5e+02 6.4e-03 0.0e+00 2.0e-02 [ Info: 34 2.5e+02 4.8e-03 0.0e+00 1.8e-02 [ Info: 35 2.5e+02 4.0e-03 0.0e+00 1.6e-02 [ Info: 36 2.5e+02 3.4e-03 0.0e+00 1.6e-02 [ Info: 37 2.5e+02 3.2e-03 0.0e+00 1.5e-02 [ Info: 38 2.5e+02 2.9e-03 0.0e+00 1.5e-02 [ Info: 39 2.5e+02 2.7e-03 0.0e+00 1.5e-02 [ Info: 40 2.5e+02 2.4e-03 0.0e+00 1.5e-02 [ Info: 41 2.5e+02 2.1e-03 0.0e+00 1.4e-02 [ Info: 42 2.5e+02 2.0e-03 0.0e+00 1.4e-02 [ Info: 43 2.5e+02 1.8e-03 0.0e+00 1.4e-02 [ Info: 44 2.5e+02 1.6e-03 0.0e+00 1.4e-02 [ Info: 45 2.5e+02 1.5e-03 0.0e+00 4.7e-03 [ Info: 46 2.5e+02 7.2e-04 0.0e+00 3.3e-03 [ Info: 47 2.5e+02 4.0e-04 0.0e+00 3.6e-03 [ Info: 48 2.5e+02 2.5e-04 0.0e+00 3.8e-03 [ Info: 49 2.5e+02 1.7e-04 0.0e+00 3.9e-03 [ Info: 50 2.5e+02 1.3e-04 0.0e+00 3.8e-03 [ Info: 51 2.5e+02 1.0e-04 0.0e+00 4.0e-03 [ Info: 52 2.5e+02 8.5e-05 0.0e+00 3.8e-03 [ Info: 53 2.5e+02 7.3e-05 0.0e+00 3.8e-03 [ Info: 54 2.5e+02 6.4e-05 0.0e+00 3.6e-03 [ Info: 55 2.5e+02 5.9e-05 0.0e+00 3.6e-03 [ Info: 56 2.5e+02 5.6e-05 0.0e+00 3.4e-03 [ Info: 57 2.5e+02 5.6e-05 0.0e+00 3.3e-03 [ Info: 58 2.5e+02 5.6e-05 0.0e+00 3.0e-03 [ Info: 59 2.5e+02 5.8e-05 0.0e+00 3.0e-03 [ Info: 60 2.5e+02 5.9e-05 0.0e+00 2.5e-03 [ Info: 61 2.5e+02 6.1e-05 0.0e+00 2.7e-03 [ Info: 62 2.5e+02 5.4e-05 0.0e+00 1.9e-03 [ Info: 63 2.5e+02 3.4e-05 0.0e+00 1.6e-03 [ Info: 64 2.5e+02 2.3e-05 0.0e+00 1.3e-03 [ Info: 65 2.5e+02 1.7e-05 0.0e+00 1.2e-03 [ Info: 66 2.5e+02 1.3e-05 0.0e+00 1.0e-03 [ Info: 67 2.5e+02 1.1e-05 0.0e+00 9.3e-04 [ Info: 68 2.5e+02 8.5e-06 0.0e+00 7.5e-04 [ Info: 69 2.5e+02 7.0e-06 0.0e+00 7.0e-04 [ Info: 70 2.5e+02 5.9e-06 0.0e+00 5.6e-04 [ Info: 71 2.5e+02 5.0e-06 0.0e+00 5.6e-04 [ Info: 72 2.5e+02 4.4e-06 0.0e+00 4.4e-04 [ Info: 73 2.5e+02 4.0e-06 0.0e+00 5.6e-04 [ Info: 74 2.5e+02 3.6e-06 0.0e+00 4.3e-04 [ Info: 75 2.5e+02 3.3e-06 0.0e+00 6.5e-04 [ Info: 76 2.5e+02 2.9e-06 0.0e+00 6.6e-04 [ Info: 77 2.5e+02 2.4e-06 0.0e+00 9.0e-04 [ Info: 78 2.5e+02 2.5e-06 0.0e+00 7.2e-04 [ Info: 79 2.5e+02 3.0e-06 0.0e+00 6.5e-04 [ Info: 80 2.5e+02 2.4e-06 0.0e+00 3.8e-04 [ Info: 81 2.5e+02 1.6e-06 0.0e+00 5.3e-04 [ Info: 82 2.5e+02 1.5e-06 0.0e+00 4.9e-04 [ Info: 83 2.5e+02 1.5e-06 0.0e+00 5.4e-04 [ Info: 84 2.5e+02 1.6e-06 0.0e+00 4.9e-04 [ Info: 85 2.5e+02 1.7e-06 0.0e+00 5.0e-04 [ Info: 86 2.5e+02 1.8e-06 0.0e+00 4.2e-04 [ Info: 87 2.5e+02 1.9e-06 0.0e+00 4.4e-04 [ Info: 88 2.5e+02 2.0e-06 0.0e+00 3.3e-04 [ Info: 89 2.5e+02 2.0e-06 0.0e+00 3.9e-04 [ Info: 90 2.5e+02 2.0e-06 0.0e+00 3.7e-04 [ Info: 91 2.5e+02 2.0e-06 0.0e+00 4.2e-04 [ Info: 92 2.5e+02 1.9e-06 0.0e+00 4.4e-04 [ Info: 93 2.5e+02 1.8e-06 0.0e+00 5.1e-04 [ Info: 94 2.5e+02 1.7e-06 0.0e+00 6.0e-04 [ Info: 95 2.5e+02 1.4e-06 0.0e+00 6.9e-04 [ Info: 96 2.5e+02 1.2e-06 0.0e+00 8.4e-04 [ Info: 97 2.5e+02 1.5e-06 0.0e+00 6.4e-04 [ Info: 98 2.5e+02 1.9e-06 0.0e+00 5.6e-04 [ Info: 99 2.5e+02 1.4e-06 0.0e+00 3.8e-04 [ Info: 100 2.5e+02 8.6e-07 0.0e+00 4.6e-04 [ Info: 101 2.5e+02 8.5e-07 0.0e+00 4.6e-04 [ Info: 102 2.5e+02 9.4e-07 0.0e+00 4.6e-04 [ Info: 103 2.5e+02 1.1e-06 0.0e+00 4.6e-04 [ Info: 104 2.5e+02 1.2e-06 0.0e+00 4.2e-04 [ Info: 105 2.5e+02 1.3e-06 0.0e+00 4.0e-04 [ Info: 106 2.5e+02 1.4e-06 0.0e+00 3.7e-04 [ Info: 107 2.5e+02 1.5e-06 0.0e+00 3.5e-04 [ Info: 108 2.5e+02 1.6e-06 0.0e+00 3.1e-04 [ Info: 109 2.5e+02 1.6e-06 0.0e+00 3.5e-04 [ Info: 110 2.5e+02 1.6e-06 0.0e+00 3.2e-04 [ Info: 111 2.5e+02 1.6e-06 0.0e+00 3.6e-04 [ Info: 112 2.5e+02 1.6e-06 0.0e+00 3.4e-04 [ Info: 113 2.5e+02 1.5e-06 0.0e+00 4.1e-04 [ Info: 114 2.5e+02 1.4e-06 0.0e+00 4.0e-04 [ Info: 115 2.5e+02 1.4e-06 0.0e+00 5.2e-04 [ Info: 116 2.5e+02 1.3e-06 0.0e+00 5.0e-04 [ Info: 117 2.5e+02 1.3e-06 0.0e+00 6.3e-04 [ Info: 118 2.5e+02 1.2e-06 0.0e+00 5.9e-04 [ Info: 119 2.5e+02 1.2e-06 0.0e+00 6.0e-04 [ Info: 120 2.5e+02 1.3e-06 0.0e+00 4.4e-04 p=5.0: compliance = 246.38, gray = 0.377
Guidance
- Power law is the default and the most widely reported;
p = 3is the standard choice for 2D continuum problems. - Rational / sinh penalties transition more smoothly, which can help continuation strategies converge from a uniform start.
- Projected penalty is the go-to when a crisp 0/1 design matters more than a slight stiffness penalty; combine it with a continuation on the projection
β(see theprojected_filtertutorial) for best results.