def setUp(self): self.top = top = set_as_top(Assembly()) driver = top.add('driver', SimpleCaseIterDriver()) top.add('comp1', ExecComp(exprs=['z=x+y'])) top.add('comp2', ExecComp(exprs=['z=x+1'])) top.connect('comp1.z', 'comp2.x') driver.workflow.add(['comp1', 'comp2']) # now create some Cases outputs = ['comp1.z', 'comp2.z'] cases = [] for i in range(10): inputs = [('comp1.x', i), ('comp1.y', i*2)] cases.append(Case(inputs=inputs, outputs=outputs, label='case%s'%i)) driver.iterator = ListCaseIterator(cases)
def setUp(self): self.top = top = set_as_top(Assembly()) driver = top.add('driver', SimpleCaseIterDriver()) top.add('comp1', ExecComp(exprs=['z=x+y'])) top.add('comp2', ExecComp(exprs=['z=x+1'])) top.connect('comp1.z', 'comp2.x') driver.workflow.add(['comp1', 'comp2']) # now create some Cases outputs = ['comp1.z', 'comp2.z'] cases = [] for i in range(10): inputs = [('comp1.x', i), ('comp1.y', i * 2)] cases.append(Case(inputs=inputs, outputs=outputs)) Case.set_vartree_inputs(driver, cases) driver.add_responses(outputs)
def setUp(self): self.top = top = set_as_top(Assembly()) comp1 = top.add('comp1', ExecComp(exprs=['z=x*y+100'])) comp2 = top.add('comp2', ExecComp(exprs=['z=x*.4'])) top.connect('comp1.z', 'comp2.x') driver = top.add('driver', SimpleCaseIterDriver()) driver.workflow.add([comp1, comp2]) plotter = top.add('plotter', XYplotter()) plotter.title = "Foobar" #plotter.add_line(y="comp1.z", line_type='bo-') plotter.add_line(x="comp1.x", y="comp1.z", line_type='bo-') plotter.add_line(x='comp1.x', y="comp2.z", line_type='rD-', label='blah') # now create some Cases outputs = [('comp1.z', None, None), ('comp2.z', None, None)] cases = [] for i in range(10): inputs = [('comp1.x', None, i), ('comp1.y', None, i*2)] cases.append(Case(inputs=inputs, outputs=outputs, ident='case%s'%i)) driver.iterator = ListCaseIterator(cases)
def model_par3_setup(num_inputs, mpi=True): vsize = 5 # array var size # a comp feeds 3 parallel comps which feed # another comp top = set_as_top(Assembly()) if mpi: drv = MPICaseDriver() else: drv = SimpleCaseIterDriver() driver = top.add("driver", drv) top.add("C1", ABCDArrayComp(vsize)) top.add("C2", ABCDArrayComp(vsize)) top.add("C3", ABCDArrayComp(vsize)) top.add("C4", ABCDArrayComp(vsize)) top.add("C5", ABCDArrayComp(vsize)) top.driver.workflow.add(['C1', 'C2', 'C3', 'C4', 'C5']) top.connect('C1.c', 'C2.a') top.connect('C1.out_string', 'C2.in_string') top.connect('C1.out_list', 'C4.in_list') top.connect('C1.d', 'C3.b') top.connect('C1.c', 'C4.a') top.connect('C2.out_string', 'C5.in_string') top.connect('C3.d', 'C5.b') top.connect('C4.c', 'C5.a') top.connect('C4.out_list', 'C5.in_list') # set up parameters and responses for CaseDriver driver.add_parameter("C1.a") driver.add_parameter("C1.b") driver.add_parameter("C1.in_string") driver.add_parameter("C1.in_list") driver.add_response("C5.c") driver.add_response("C5.d") driver.add_response("C5.out_string") driver.add_response("C5.out_list") # set up inputs a = np.ones(vsize, float) * 3.0 b = np.ones(vsize, float) * 7.0 s = 'abcdefghijklmnopqrstuvwxyz' avals = [] bvals = [] svals = [] lvals = [] for i in range(num_inputs): avals.append(a) a += 1. bvals.append(b) b += 1. svals.append(s[:i]) lvals.append(range(i + 1)) driver.case_inputs.C1.a = avals driver.case_inputs.C1.b = bvals driver.case_inputs.C1.in_string = svals driver.case_inputs.C1.in_list = lvals # expected results expected = {} for name in driver.get_responses(): expected[name] = [] for i in range(num_inputs): if name == 'C5.c': val = (b + np.ones(vsize, float)) * 2. elif name == 'C5.d': val = a * 2. elif name == 'C5.out_string': val = s[:i] + '_C1_C2_C5' elif name == 'C5.out_list': val = range(i + 1) + [1.5, 1.5, 1.5] expected[name].append(val) return top, expected