Пример #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
    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)
Пример #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 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
Пример #5
0
                                      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)" % (
Пример #7
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()
Пример #8
0
    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)
    
Пример #10
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
    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)
    
Пример #12
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
Пример #13
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.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)