windse.OptimizationManager
The OptimizationManager submodule contains all the required function for optimizing via dolfin-adjoint. To use dolfin-adjoin set:
general:
dolfin_adjoint: True
in the param.yaml file.
Todo
Read through an update the docstrings for these functions.
Create specific optimization classes.
Classes
- class windse.OptimizationManager.ConsComp(**kwargs)
OpenMDAO component to wrap the constraint computation.
A small wrapper used on the fenics methods for computing constraint and Jacobian values using the OpenMDAO syntax.
- compute(inputs, outputs)
Compute outputs given inputs. The model is assumed to be in an unscaled state.
- Parameters:
inputs (Vector) – Unscaled, dimensional input variables read via inputs[key].
outputs (Vector) – Unscaled, dimensional output variables read via outputs[key].
discrete_inputs (dict or None) – If not None, dict containing discrete input values.
discrete_outputs (dict or None) – If not None, dict containing discrete output values.
- compute_partials(inputs, partials)
Compute sub-jacobian parts. The model is assumed to be in an unscaled state.
- Parameters:
inputs (Vector) – Unscaled, dimensional input variables read via inputs[key].
partials (Jacobian) – Sub-jac components written to partials[output_name, input_name]..
discrete_inputs (dict or None) – If not None, dict containing discrete input values.
- initialize()
Perform any one-time initialization run at instantiation.
- setup()
Declare inputs and outputs.
- Available attributes:
name pathname comm options
- class windse.OptimizationManager.MergedConstraint(constraint_list, fprint)
- class windse.OptimizationManager.MinimumDistanceConstraint(x_inds, y_inds, target=200, scale=1.0)
- class windse.OptimizationManager.ObjComp(**kwargs)
OpenMDAO component to wrap the objective computation from dolfin.
Specifically, we use the J and dJ (function and Jacobian) methods to compute the function value and derivative values as needed by the OpenMDAO optimizers.
- compute(inputs, outputs)
Compute outputs given inputs. The model is assumed to be in an unscaled state.
- Parameters:
inputs (Vector) – Unscaled, dimensional input variables read via inputs[key].
outputs (Vector) – Unscaled, dimensional output variables read via outputs[key].
discrete_inputs (dict or None) – If not None, dict containing discrete input values.
discrete_outputs (dict or None) – If not None, dict containing discrete output values.
- compute_partials(inputs, partials)
Compute sub-jacobian parts. The model is assumed to be in an unscaled state.
- Parameters:
inputs (Vector) – Unscaled, dimensional input variables read via inputs[key].
partials (Jacobian) – Sub-jac components written to partials[output_name, input_name]..
discrete_inputs (dict or None) – If not None, dict containing discrete input values.
- initialize()
Perform any one-time initialization run at instantiation.
- setup()
Declare inputs and outputs.
- Available attributes:
name pathname comm options
- class windse.OptimizationManager.ObjectiveConstraint(solver, controls, key, value)
- class windse.OptimizationManager.Optimizer(solver)
A GenericProblem contains on the basic functions required by all problem objects.
- Parameters:
dom (
windse.DomainManager.GenericDomain()) – a windse domain object.
- Gradient()
Returns a gradient of the objective function
Functions
- windse.OptimizationManager.gather(m)
Helper function to gather constraint Jacobians. Adapated from fenics.
- windse.OptimizationManager.om_wrapper(J, initial_DVs, dJ, H, bounds, **kwargs)
Custom optimization wrapper to use OpenMDAO optimizers with dolfin-adjoint.
Follows the API as defined by dolfin-adjoint.
- Parameters:
J (object) – Function to compute the model analysis value at a design point.
initial_DVs (array) – The initial design variables so we can get the array sizing correct for the OpenMDAO implementation.
dJ (object) – Function to compute the Jacobian at a design point.
H (object) – Function to compute the Hessian at a design point (not used).
bounds (array) – Array of lower and upper bound values for the design variables.
- Returns:
DVs – The optimal design variable values.
- Return type:
array