def test_salib_morris_driver(self): nt = 4 driver = SalibDOEDriver(sa_method_name="Morris", sa_doe_options={"n_trajs": nt}) self.assert_morris_case_generation(nt, driver) salib_cases = driver.get_cases() self.assertTrue(len(salib_cases) > 0) salib_pb = driver.get_salib_problem() self.assertTrue(salib_pb)
def test_salib_sobol_driver(self): ns = 100 driver = SalibDOEDriver( sa_method_name="Sobol", sa_doe_options={ "n_samples": ns, "calc_second_order": True }, ) TestSalibDoeDriver.run_driver("sobol", driver) salib_cases = driver.get_cases() self.assertTrue(len(salib_cases) > 0) salib_pb = driver.get_salib_problem() self.assertTrue(salib_pb)
from ssbj_openmdao.ssbj_disciplines.common import PolynomialFunction from optparse import OptionParser parser = OptionParser() parser.add_option("-b", "--batch", action="store_true", dest="batch", default=False, help="do not plot anything") (options, args) = parser.parse_args() scalers, pf_init = get_initial_state() # have to init pf here as pf is reimported # and init value computed in init_ssjb_mda is lost pf = PolynomialFunction(pf_init) pb = Problem() pb.model = SsbjMda(scalers) pb.driver = SalibDOEDriver(sa_method_name='Morris', sa_doe_options={'n_trajs': 10, 'n_levels': 4}) case_recorder_filename = 'ssbj_mda_screening.sqlite' recorder = SqliteRecorder(case_recorder_filename) pb.driver.add_recorder(recorder) pb.model.add_recorder(recorder) pb.model.nonlinear_solver.add_recorder(recorder) pb.model.add_design_var('z', lower=[0.2, 0.666, 0.875, 0.45, 0.72, 0.5], upper=[1.8, 1.333, 1.125, 1.45, 1.27, 1.5]) pb.model.add_design_var('x_aer', lower=0.75, upper=1.25) pb.model.add_design_var('x_str', lower=[0.4, 0.75], upper=[1.6, 1.25]) pb.model.add_design_var('x_pro', lower=0.18, upper=1.81) pb.model.add_objective('R') pb.model.add_constraint('con1_esf', upper=0.) pb.model.add_constraint('con2_esf', upper=0.) pb.model.add_constraint('con_dpdx', upper=0.) pb.model.add_constraint('con_dt', upper=0.)
parser.add_option("-s", "--sobol", action="store_true", dest="sobol", default=False, help="do not plot anything") parser.add_option("-p", "--parallel", action="store_true", default=False, help="run doe in parallel") (options, args) = parser.parse_args() pb = Problem(LanceurPropSolide()) sa_method_name='Morris' sa_doe_options={'n_trajs': 10, 'n_levels': 4} if options.sobol: sa_method_name='Sobol' sa_doe_options={'n_samples': 500, 'calc_second_order': False} pb.driver = SalibDOEDriver(sa_method_name=sa_method_name, sa_doe_options=sa_doe_options) pb.driver.options['run_parallel'] = options.parallel case_recorder_filename = 'lanceur_prop_solide_screening.sqlite' recorder = SqliteRecorder(case_recorder_filename) pb.driver.add_recorder(recorder) if version.parse(OPENMDAO_VERSION) > version.parse("2.8.0"): pb.model.nonlinear_solver.options['err_on_non_converge'] = True else: pb.model.nonlinear_solver.options['err_on_maxiter'] = True pb.model.add_design_var('Ae', lower=-sys.float_info.max, upper=sys.float_info.max) pb.model.add_design_var('beta', lower=-sys.float_info.max, upper=sys.float_info.max) pb.model.add_design_var('De', lower=-sys.float_info.max, upper=sys.float_info.max)