Skip to content
Snippets Groups Projects
Commit 529da052 authored by Mads M. Pedersen's avatar Mads M. Pedersen
Browse files

don't scale turbineX and turbineY when using SLSQP

parent 62764953
No related branches found
No related tags found
1 merge request!94Handle disabled mpi
...@@ -32,18 +32,19 @@ class TopFarm(object): ...@@ -32,18 +32,19 @@ class TopFarm(object):
indeps = prob.model.add_subsystem('indeps', IndepVarComp(), promotes=['*']) indeps = prob.model.add_subsystem('indeps', IndepVarComp(), promotes=['*'])
min_x, min_y = self.boundary_comp.vertices.min(0) min_x, min_y = self.boundary_comp.vertices.min(0)
mean_x, mean_y = self.boundary_comp.vertices.mean(0) mean_x, mean_y = self.boundary_comp.vertices.mean(0)
indeps.add_output('turbineX', turbines[:, 0], units='m', ref=mean_x, ref0=min_x) if driver_options['optimizer'] == 'SLSQP':
indeps.add_output('turbineY', turbines[:, 1], units='m', ref=mean_y, ref0=min_y) min_x, min_y, mean_x, mean_y = 0, 0, 1, 1 # scaling disturbs SLSQP
indeps.add_output('turbineX', turbines[:, 0], units='m', ref0=min_x, ref=mean_x)
indeps.add_output('turbineY', turbines[:, 1], units='m', ref0=min_y, ref=mean_y)
indeps.add_output('boundary', self.boundary_comp.vertices, units='m') indeps.add_output('boundary', self.boundary_comp.vertices, units='m')
prob.model.add_subsystem('cost_comp', cost_comp, promotes=['*']) prob.model.add_subsystem('cost_comp', cost_comp, promotes=['*'])
prob.driver = ScipyOptimizeDriver() prob.driver = ScipyOptimizeDriver()
#prob.driver.options['optimizer'] = optimizer
prob.driver.options.update(driver_options) prob.driver.options.update(driver_options)
if driver_options['optimizer']=='SLSQP': design_var_kwargs = {}
if driver_options['optimizer'] == 'SLSQP':
# Default +/- sys.float_info.max does not work for SLSQP
design_var_kwargs = {'lower': np.nan, 'upper': np.nan} design_var_kwargs = {'lower': np.nan, 'upper': np.nan}
else:
design_var_kwargs = {}
prob.model.add_design_var('turbineX', **design_var_kwargs) prob.model.add_design_var('turbineX', **design_var_kwargs)
prob.model.add_design_var('turbineY', **design_var_kwargs) prob.model.add_design_var('turbineY', **design_var_kwargs)
prob.model.add_objective('cost') prob.model.add_objective('cost')
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment