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
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])
Solution of the sellar analytical problem using MDF. Problem forumulation is specified, and MDF is automatically set up for you. """ from openmdao.lib.architectures.api import MDF, BLISS, CO from openmdao.lib.casehandlers.api import DBCaseRecorder from openmdao.lib.optproblems.api import SellarProblem if __name__ == "__main__": # pragma: no cover import time from openmdao.main.api import set_as_top prob = SellarProblem() prob.architecture = MDF() prob.configure() prob.driver.recorders = [DBCaseRecorder()] tt = time.time() prob.run() error = prob.check_solution() print "\nUsing MDF Architecture" print "Minimum found at (%f, %f, %f)" % (prob.dis1.z1, prob.dis1.z2, prob.dis1.x1) print "Minimum differs from expected by (%f, %f, %f)" % (
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]) print "Minimum objective: ", prob.driver.eval_objective()
Solution of the sellar analytical problem using different Optimization Architectures. Problem forumulation is specified, and IDF, MDF, BLISS, CO, BLISS2000 are automatically set up for you. """ from openmdao.lib.architectures.api import MDF, BLISS, CO, BLISS2000, IDF from openmdao.lib.casehandlers.api import DBCaseRecorder from openmdao.lib.optproblems.api import SellarProblem if __name__ == "__main__": # pragma: no cover import time prob = SellarProblem() prob.architecture = MDF() prob.configure() prob.recorders = [DBCaseRecorder()] tt = time.time() prob.run() error = prob.check_solution() print "\nUsing MDF Architecture" print "Minimum found at (%f, %f, %f)" % (prob.dis1.z1, prob.dis1.z2, prob.dis1.x1) print "Minimum differs from expected by (%f, %f, %f)" % (
Problem forumulation is specified, and IDF,MDF,BLISS,CO,BLISS2000 are automatically set up for you. """ from openmdao.lib.architectures.api import MDF, BLISS, CO, BLISS2000, IDF from openmdao.lib.casehandlers.api import DBCaseRecorder from openmdao.lib.optproblems.api import SellarProblem if __name__ == "__main__": # pragma: no cover import time prob = SellarProblem() prob.architecture = MDF() prob.configure() prob.driver.recorders = [DBCaseRecorder()] tt = time.time() prob.run() error = prob.check_solution() print "\nUsing MDF Architecture" print "Minimum found at (%f, %f, %f)" % (prob.dis1.z1, prob.dis1.z2, prob.dis1.x1)
driver.add_constraint('%s = %s' % (system_var_map[l[1].target], s2)) for i, g in enumerate(global_dvs): s2 = 'global%d_store' % i self.parent.add(s2, Float(0.0, iotype="in")) driver.add_parameter(s2, low=g[1].low, high=g[1].high) driver.add_constraint('%s = %s' % (system_var_map[g[1].target], s2)) #driver.workflow.add(['DOE_Trainer_dis2','DOE_Trainer_dis1']) if __name__ == "__main__": from openmdao.lib.optproblems.api import UnitScalableProblem from openmdao.lib.optproblems.api import SellarProblem p = SellarProblem() p.architecture = BLISS2000() p.check_config() #print [param for param in p.DOE_Trainer_dis2.get_parameters()] #exit() p.run() for k, v in p.check_solution().iteritems(): print " ", k, ": ", v
Problem forumulation is specified, and MDF is automatically set up for you. """ from openmdao.lib.architectures.api import MDF, BLISS, CO from openmdao.lib.casehandlers.api import DBCaseRecorder from openmdao.lib.optproblems.api import SellarProblem if __name__ == "__main__": # pragma: no cover import time from openmdao.main.api import set_as_top prob = SellarProblem() prob.architecture = MDF() prob.configure() prob.driver.recorders = [DBCaseRecorder()] tt = time.time() prob.run() error = prob.check_solution() print "\nUsing MDF Architecture" print "Minimum found at (%f, %f, %f)" % (prob.dis1.z1, prob.dis1.z2, prob.dis1.x1)
driver.add_parameter(s2 , low=l[1].low, high=l[1].high) driver.add_constraint('%s = %s'%(system_var_map[l[1].target],s2)) for i,g in enumerate(global_dvs): s2='global%d_store'%i self.parent.add(s2,Float(0.0,iotype="in")) driver.add_parameter(s2 , low=g[1].low, high=g[1].high) driver.add_constraint('%s = %s'%(system_var_map[g[1].target],s2)) #driver.workflow.add(['DOE_Trainer_dis2','DOE_Trainer_dis1']) if __name__=="__main__": from openmdao.lib.optproblems.api import UnitScalableProblem from openmdao.lib.optproblems.api import SellarProblem p = SellarProblem() p.architecture = BLISS2000() p.check_config() #print [param for param in p.DOE_Trainer_dis2.get_parameters()] #exit() p.run() for k,v in p.check_solution().iteritems(): print " ",k,": ",v
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.check_config() 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)