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()