Example #1
0
    def test_ubcs(self):
        p = Problem(root=Group())
        root = p.root
        root.ln_solver = ScipyGMRES()

        self.P1 = root.add("P1", IndepVarComp('x', 1.0))
        self.C1 = root.add("C1", ExecComp('y=x1*2.0+x2*3.0', x2=1.0))
        self.C2 = root.add("C2", ExecComp('y=x1*2.0+x2'))
        self.C3 = root.add("C3", ExecComp('y=x*2.0'))
        self.C4 = root.add("C4", ExecComp('y=x1*2.0 + x2*5.0'))
        self.C5 = root.add("C5", ExecComp('y=x1*2.0 + x2*7.0'))

        root.connect("P1.x", "C1.x1")
        root.connect("C1.y", ("C2.x1", "C3.x"))
        root.connect("C2.y", "C4.x1")
        root.connect("C3.y", "C4.x2")

        # input-input connection
        root.connect("C1.x2", "C5.x2")

        # create a cycle
        root.connect("C4.y", "C1.x2")

        # set a bogus value for C4.y
        self.C4._init_unknowns_dict['y']['val'] = -999.

        p.setup(check=False)

        ubcs = p._get_ubc_vars(root.connections)

        self.assertEqual(ubcs, ['C1.x2'])

        p.run()
Example #2
0
    def test_ubcs(self):
        p = Problem(root=Group())
        root = p.root
        root.ln_solver = ScipyGMRES()

        self.P1 = root.add("P1", IndepVarComp('x', 1.0))
        self.C1 = root.add("C1", ExecComp('y=x1*2.0+x2*3.0', x2=1.0))
        self.C2 = root.add("C2", ExecComp('y=x1*2.0+x2'))
        self.C3 = root.add("C3", ExecComp('y=x*2.0'))
        self.C4 = root.add("C4", ExecComp('y=x1*2.0 + x2*5.0'))
        self.C5 = root.add("C5", ExecComp('y=x1*2.0 + x2*7.0'))

        root.connect("P1.x", "C1.x1")
        root.connect("C1.y", ("C2.x1", "C3.x"))
        root.connect("C2.y", "C4.x1")
        root.connect("C3.y", "C4.x2")

        # input-input connection
        root.connect("C1.x2", "C5.x2")

        # create a cycle
        root.connect("C4.y", "C1.x2")

        # set a bogus value for C4.y
        self.C4._init_unknowns_dict['y']['val'] = -999.

        p.setup(check=False)

        ubcs = p._get_ubc_vars(root.connections)

        self.assertEqual(ubcs, ['C1.x2'])

        p.run()