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
  • tol – relative tolerance for convergence
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