def test_mdf_arch(self): prob = SellarProblem() prob.architecture = MDF() prob.run() prob.configure() solver_params = prob.solver.get_parameters() coupling = prob.get_coupling_vars() params = prob.get_parameters() opt_params = prob.driver.get_parameters() self.assertEqual(set(solver_params.keys()),set(coupling.keys())) self.assertEqual(params,opt_params)
def test_case_recording(self): cds_path = os.path.join(os.path.dirname(__file__), "cds.json") asm = set_as_top(SellarProblem()) asm.architecture = MDF() asm.recorders = [JSONCaseRecorder(cds_path)] asm.run() cds = CaseDataset(cds_path, 'json') data = cds.data.by_variable().fetch() self.assertFalse(set(asm.solution.keys()) - set(data.keys())) for var in asm.solution.keys(): self.assertTrue(data[var]) np.allclose(data[var], asm.solution[var]) del cds del data os.remove(cds_path)
for j, const in enumerate(constraints): dg_j = [ "ssa.dG[%d][%d]*%s" % (j, i, x) for i, x in enumerate(delta_z) ] constraint_parts = ["ssa.G[%d]" % j] constraint_parts.extend(dg_j) lin_constraint = "%s < 0" % "+".join(constraint_parts) sysopt.add_constraint(lin_constraint) #self.parent.driver.workflow.add("mda") self.parent.driver.workflow.add(sa_s) if global_dvs: self.parent.driver.workflow.add("ssa") self.parent.driver.workflow.add(bbopts) if global_dvs: self.parent.driver.workflow.add("sysopt") if __name__ == "__main__": from openmdao.lib.optproblems.api import SellarProblem #from openmdao.main.api import ArchitectureAssembly sp = SellarProblem() sp.architecture = BLISS() sp.run() for k, v in sp.check_solution().iteritems(): print " ", k, ": ", v
couple.dep.target)) if comp in constraints_by_comp: for const in constraints_by_comp[comp]: local_opt.add_constraint(str(const)) residuals = "+".join(residuals) global_constraint = "%s<=0" % residuals global_opt.add_constraint(global_constraint) local_opt.add_objective(residuals) if __name__ == "__main__": from openmdao.lib.optproblems.api import SellarProblem #from openmdao.main.api import ArchitectureAssembly prob = SellarProblem() prob.architecture = CO() prob.run() print "\n" print "Minimum found at (%f, %f, %f)" % (prob.dis1.z1, \ prob.dis1.z2, \ prob.dis1.x1) print "Minimum target was at (%f, %f, %f)" % (prob.global_des_var_targets[0], \ prob.global_des_var_targets[1], \ prob.local_des_var_targets[0]) print "Coupling vars: %f, %f" % (prob.dis1.y1, prob.dis2.y2) print "Coupling var targets: %f, %f" % (prob.coupling_var_targets[0], prob.coupling_var_targets[1])