Optimization

High-level optimization interface and gradient computation.

Main Interface

DistributedEmitterOpt.optimize!Function
optimize!(prob; kwargs...) -> (g_opt, p_opt)

Run topology optimization with beta-continuation.

Keyword arguments:

  • max_iter – iterations per beta value (default 40)
  • β_schedule – projection steepness values to sweep
  • α_schedule – optional loss schedule (same length as beta_schedule)
  • use_constraints – enable linewidth constraints on the final beta epoch only
  • tol – relative tolerance for convergence
  • backup – enable autosaving (p, g_history) checkpoints
  • backup_every – autosave interval (iterations)
  • backup_path – optional checkpoint path (default joinpath(prob.root, "results_backup.jld2"))
  • resume_from – optional checkpoint path to resume from
optimize!(prob::EigenOptimizationProblem; kwargs...) -> (g_opt, p_opt)

Run eigenvalue-based optimization with beta-continuation. Note: eigen sensitivities are TODO and will error during gradient evaluation.

Utilities