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:
on | off
Confidence level, if addconfint is on (available if optsolver is lm).
The table to use for the confidence intervals, if addconfint is on (available if optsolver is lm).
Name of the controlling study step or "user", if the feature is controlled manually.
on | off
Enforce design constraints strictly (available if optsolver is coordsearch, montecarlo, or neldermead).
on | off
sum | min | max
Handling multiple objectives (as a sum, minimum, or maximum), If optsolver is set to snopt, mma, or lm, only sum is available.
minimization | maximization
on | off
Distribute parametric sweep (available if optsolver is coordsearch, montecarlo, or neldermead).
on | off
Probes to use if probesel=manual.
all | none | manual
Random seed, if useseed is on (available if optsolver is montecarlo).
on | off
Use the random seed given by randseed (available if optsolver is montecarlo).
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
For log files for SNOPT, specify the name of the log file. Use the snoptprintdir to specify the directory. If no name is specified, the log file name is snoptout.txt.
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.