Source code for openmdao.drivers.uniform_driver

"""
OpenMDAO design-of-experiments driver implementing the Uniform method.
"""

from openmdao.drivers.predeterminedruns_driver import PredeterminedRunsDriver
from six import moves, iteritems
import numpy as np


[docs]class UniformDriver(PredeterminedRunsDriver): """Design-of-experiments Driver implementing the Uniform method. Args ---- num_samples : int, optional The number of samples to run. Defaults to 1. num_par_doe : int, optional The number of DOE cases to run concurrently. Defaults to 1. """ def __init__(self, num_samples=1, num_par_doe=1): super(UniformDriver, self).__init__(num_par_doe=num_par_doe) self.num_samples = num_samples def _build_runlist(self): """Build a runlist based on a uniform distribution.""" for i in moves.range(self.num_samples): yield ((key, np.random.uniform(bound['lower'], bound['upper'])) for key, bound in iteritems(self.get_desvar_metadata()))