Пример #1
0
 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)
Пример #2
0
        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

Пример #3
0
        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
Пример #4
0
                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()
Пример #5
0
                
            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()

Пример #6
0
            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
Пример #7
0
            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