Optimization
Handle optimization solver properties.
Syntax
model.sol(sname).create(fname,"Optimization")
model.sol(sname).feature(fname).set(pname,value)
model.sol(sname).feature(fname).create(aname,SolverAttribute)
Description
Operation feature. Use this feature to solve PDE-constrained optimization problems. The computed solution object contains the PDE solution evaluated for the optimal set of design variables. When the gradient-evaluation method is analytic, it also returns the adjoint solution.
The Optimization Module includes SNOPT and several other optimization solvers. See the Optimization Module Manual for details.
To add a stationary solver, substitute SolverAttribute above with StationaryAttrib. For a time-dependent solver, replace SolverAttribute with TimeAttrib.
Choosing solver is done with the following property
bobyqa | cobyla | coordsearch | lm | mma | montecarlo | neldermead | snopt
The following table includes general optimization solver properties, which a common to all optimization solvers:
Name of the controlling study step or "user" if the feature is controlled manually.
on | off
on | off
Probes to use if probesel=manual.
all | none | manual
When the optimization solver is set to SNOPT (snopt), the following properties are accepted:
analytic | forward | adjoint | forward_numeric
analytic | numeric
derivative | nonderivative
on | off
on | off
all | manual
on | off
cholesky | cg | qn
The property gradientsnopt is used to control if the gradient should be computed analytically (by solving the adjoint problem) or numerically. If the number of design variables is large, numerical computation of the gradient can be very time consuming. Analytic gradient is only supported when the underlying PDE-problem is stationary.
If manualstepcond is set to on, the expression in the property stepcond is evaluated when new values for the design variables have been computed. If the expression becomes negative, the new values are discarded and the optimization solver reduces the step length in the current line search.
When the optimization solver is set to Levenberg-Marquardt (lm), the following properties are accepted:
first | second
When the optimization solver is set to MMA, the following properties are accepted:
on | off
on | off
on | off
on | off
For a description of the optimization properties, see Advanced Solver Properties in the Optimization Module User’s Guide.