Source code for openmdao.drivers.predeterminedruns_driver
"""
Baseclass for design-of-experiments Drivers that have pre-determined parameter sets.
"""
from openmdao.core.driver import Driver
from openmdao.util.record_util import create_local_meta, update_local_meta
from six import iteritems
[docs]class PredeterminedRunsDriver(Driver):
""" Baseclass for design-of-experiments Drivers that have pre-determined parameter sets.
"""
def __init__(self):
if type(self) == PredeterminedRunsDriver:
raise Exception('PredeterminedRunsDriver is an abstract class')
super(PredeterminedRunsDriver, self).__init__()
[docs] def run(self, problem):
"""Build a runlist and execute the Problem for each set of generated parameters.
"""
run_list = self._build_runlist()
# For each runlist entry, run the system and record the results
for run in run_list:
for dv_name, dv_val in iteritems(run):
self.set_desvar(dv_name, dv_val)
metadata = create_local_meta(None, 'Driver')
problem.root.solve_nonlinear(metadata=metadata)
self.recorders.record_iteration(problem.root, metadata)