-
-
-
-
-
-
Left clicking on a node in the partition tree will navigate to that node. Right clicking on a node
- in the partition tree will collapse/uncollapse it. A click on any element in the N^2 diagram
- will allow those arrows to persist.
-
-
-
-
+
+
+
Left clicking on a node in the partition tree will navigate to that node. Right clicking on a node in the model hierarchy will collapse/uncollapse it. A click on any element in the N^2 diagram will allow those arrows to persist.
+
+
+
+
+
+
@@ -478,6 +541,9 @@
OpenMDAO Partition Tree and N2 diagram.
+
+ Note: Derivative declarations ignored, so dense component connectivity is assumed
+
@@ -500,7 +566,8 @@
OpenMDAO Partition Tree and N2 diagram.
-
-
-
-
-
+
+
+
+
-
+
+
-
+
-
+
+
-
+
+
-
+
+
-
+
+
\ No newline at end of file
+
+
diff --git a/openmdao/docs/theory_manual/total_derivs/aerostruct_n2.py b/openmdao/docs/theory_manual/total_derivs/aerostruct_n2.py
index 75aad7faed..0dcc17a409 100644
--- a/openmdao/docs/theory_manual/total_derivs/aerostruct_n2.py
+++ b/openmdao/docs/theory_manual/total_derivs/aerostruct_n2.py
@@ -2,27 +2,26 @@
This is not a real run_file. It is only used to make the n2
diagram for the notional aerostructural problem used for demonstration in the docs.
"""
+import openmdao.api as om
-from openmdao.api import Problem, Group, ExecComp, IndepVarComp, view_model, ImplicitComponent
-
-p = Problem()
-dvs = p.model.add_subsystem('design_vars', IndepVarComp(), promotes=['*'])
+p = om.Problem()
+dvs = p.model.add_subsystem('design_vars', om.IndepVarComp(), promotes=['*'])
dvs.add_output('x_aero')
dvs.add_output('x_struct')
-aerostruct = p.model.add_subsystem('aerostruct_cycle', Group(), promotes=['*'])
+aerostruct = p.model.add_subsystem('aerostruct_cycle', om.Group(), promotes=['*'])
#note the equations don't matter... just need a simple way to get inputs and outputs there
aerostruct.add_subsystem('aero',
- ExecComp(['w = u+x_aero', 'Cl=u+x_aero', 'Cd = u + x_aero']),
+ om.ExecComp(['w = u+x_aero', 'Cl=u+x_aero', 'Cd = u + x_aero']),
promotes=['*'])
-aerostruct.add_subsystem('struct', ExecComp(['u = w+x_struct', 'mass=x_struct']),
+aerostruct.add_subsystem('struct', om.ExecComp(['u = w+x_struct', 'mass=x_struct']),
promotes=['*'])
-p.model.add_subsystem('objective', ExecComp('f=mass+Cl/Cd'), promotes=['*'])
-p.model.add_subsystem('constraint', ExecComp('g=Cl'), promotes=['*'])
+p.model.add_subsystem('objective', om.ExecComp('f=mass+Cl/Cd'), promotes=['*'])
+p.model.add_subsystem('constraint', om.ExecComp('g=Cl'), promotes=['*'])
p.setup()
-view_model(p, outfile='aerostruct_n2.html', embeddable=True, show_browser=False)
+om.view_model(p, outfile='aerostruct_n2.html', embeddable=True, show_browser=False)
diff --git a/openmdao/drivers/tests/test_doe_driver.py b/openmdao/drivers/tests/test_doe_driver.py
index cc4023450e..5dc696cd26 100644
--- a/openmdao/drivers/tests/test_doe_driver.py
+++ b/openmdao/drivers/tests/test_doe_driver.py
@@ -13,13 +13,7 @@
import numpy as np
-from openmdao.api import Problem, ExplicitComponent, IndepVarComp, ExecComp, \
- SqliteRecorder, CaseReader, PETScVector
-
-from openmdao.drivers.doe_driver import DOEDriver
-from openmdao.drivers.doe_generators import ListGenerator, CSVGenerator, \
- UniformGenerator, FullFactorialGenerator, PlackettBurmanGenerator, \
- BoxBehnkenGenerator, LatinHypercubeGenerator
+import openmdao.api as om
from openmdao.test_suite.components.paraboloid import Paraboloid
from openmdao.test_suite.groups.parallel_groups import FanInGrouped
@@ -30,7 +24,7 @@
from openmdao.utils.mpi import MPI
-class ParaboloidArray(ExplicitComponent):
+class ParaboloidArray(om.ExplicitComponent):
"""
Evaluates the equation f(x,y) = (x-3)^2 + x*y + (y+4)^2 - 3.
@@ -55,17 +49,17 @@ def compute(self, inputs, outputs):
class TestErrors(unittest.TestCase):
def test_generator_check(self):
- prob = Problem()
+ prob = om.Problem()
with self.assertRaises(TypeError) as err:
- prob.driver = DOEDriver(FullFactorialGenerator)
+ prob.driver = om.DOEDriver(om.FullFactorialGenerator)
self.assertEqual(str(err.exception),
"DOEDriver requires an instance of DOEGenerator, "
"but a class object was found: FullFactorialGenerator")
with self.assertRaises(TypeError) as err:
- prob.driver = DOEDriver(Problem())
+ prob.driver = om.DOEDriver(om.Problem())
self.assertEqual(str(err.exception),
"DOEDriver requires an instance of DOEGenerator, "
@@ -73,7 +67,7 @@ def test_generator_check(self):
def test_lhc_criterion(self):
with self.assertRaises(ValueError) as err:
- LatinHypercubeGenerator(criterion='foo')
+ om.LatinHypercubeGenerator(criterion='foo')
self.assertEqual(str(err.exception),
"Invalid criterion 'foo' specified for LatinHypercubeGenerator. "
@@ -96,35 +90,35 @@ def tearDown(self):
pass
def test_no_generator(self):
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', 0.), promotes=['*'])
- model.add_subsystem('p2', IndepVarComp('y', 0.), promotes=['*'])
+ model.add_subsystem('p1', om.IndepVarComp('x', 0.), promotes=['*'])
+ model.add_subsystem('p2', om.IndepVarComp('y', 0.), promotes=['*'])
model.add_subsystem('comp', Paraboloid(), promotes=['*'])
model.add_design_var('x', lower=-10, upper=10)
model.add_design_var('y', lower=-10, upper=10)
model.add_objective('f_xy')
- prob.driver = DOEDriver()
- prob.driver.add_recorder(SqliteRecorder("cases.sql"))
+ prob.driver = om.DOEDriver()
+ prob.driver.add_recorder(om.SqliteRecorder("cases.sql"))
prob.setup()
prob.run_driver()
prob.cleanup()
- cr = CaseReader("cases.sql")
+ cr = om.CaseReader("cases.sql")
cases = cr.list_cases('driver')
self.assertEqual(len(cases), 0)
def test_list(self):
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', 0.0), promotes=['x'])
- model.add_subsystem('p2', IndepVarComp('y', 0.0), promotes=['y'])
+ model.add_subsystem('p1', om.IndepVarComp('x', 0.0), promotes=['x'])
+ model.add_subsystem('p2', om.IndepVarComp('y', 0.0), promotes=['y'])
model.add_subsystem('comp', Paraboloid(), promotes=['x', 'y', 'f_xy'])
model.add_design_var('x', lower=0.0, upper=1.0)
@@ -134,12 +128,12 @@ def test_list(self):
prob.setup()
# create a list of DOE cases
- case_gen = FullFactorialGenerator(levels=3)
+ case_gen = om.FullFactorialGenerator(levels=3)
cases = list(case_gen(model.get_design_vars(recurse=True)))
# create DOEDriver using provided list of cases
- prob.driver = DOEDriver(cases)
- prob.driver.add_recorder(SqliteRecorder("cases.sql"))
+ prob.driver = om.DOEDriver(cases)
+ prob.driver.add_recorder(om.SqliteRecorder("cases.sql"))
prob.run_driver()
prob.cleanup()
@@ -158,7 +152,7 @@ def test_list(self):
8: {'x': np.array([1.]), 'y': np.array([1.]), 'f_xy': np.array([27.00])},
}
- cr = CaseReader("cases.sql")
+ cr = om.CaseReader("cases.sql")
cases = cr.list_cases('driver')
self.assertEqual(len(cases), 9)
@@ -170,11 +164,11 @@ def test_list(self):
self.assertEqual(outputs['f_xy'], expected[n]['f_xy'])
def test_list_errors(self):
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', 0.0), promotes=['x'])
- model.add_subsystem('p2', IndepVarComp('y', 0.0), promotes=['y'])
+ model.add_subsystem('p1', om.IndepVarComp('x', 0.0), promotes=['x'])
+ model.add_subsystem('p2', om.IndepVarComp('y', 0.0), promotes=['y'])
model.add_subsystem('comp', Paraboloid(), promotes=['x', 'y', 'f_xy'])
model.add_design_var('x', lower=0.0, upper=1.0)
@@ -187,13 +181,13 @@ def test_list_errors(self):
cases = {'desvar': 1.0}
with self.assertRaises(RuntimeError) as err:
- prob.driver = DOEDriver(generator=ListGenerator(cases))
+ prob.driver = om.DOEDriver(generator=om.ListGenerator(cases))
self.assertEqual(str(err.exception), "Invalid DOE case data, "
"expected a list but got a dict.")
# data contains a list of non-list
cases = [{'desvar': 1.0}]
- prob.driver = DOEDriver(generator=ListGenerator(cases))
+ prob.driver = om.DOEDriver(generator=om.ListGenerator(cases))
with self.assertRaises(RuntimeError) as err:
prob.run_driver()
@@ -206,7 +200,7 @@ def test_list_errors(self):
[['p1.x', 1.], ['p2.y', 1., 'foo']]
]
- prob.driver = DOEDriver(generator=ListGenerator(cases))
+ prob.driver = om.DOEDriver(generator=om.ListGenerator(cases))
with self.assertRaises(RuntimeError) as err:
prob.run_driver()
@@ -220,7 +214,7 @@ def test_list_errors(self):
[['p1.x', 1.], ['p2.z', 1.]]
]
- prob.driver = DOEDriver(generator=ListGenerator(cases))
+ prob.driver = om.DOEDriver(generator=om.ListGenerator(cases))
with self.assertRaises(RuntimeError) as err:
prob.run_driver()
@@ -234,7 +228,7 @@ def test_list_errors(self):
[['p1.y', 1.], ['p2.z', 1.]]
]
- prob.driver = DOEDriver(generator=ListGenerator(cases))
+ prob.driver = om.DOEDriver(generator=om.ListGenerator(cases))
with self.assertRaises(RuntimeError) as err:
prob.run_driver()
@@ -243,11 +237,11 @@ def test_list_errors(self):
"[['p1.y', 1.0], ['p2.z', 1.0]]")
def test_csv(self):
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', 0.0), promotes=['x'])
- model.add_subsystem('p2', IndepVarComp('y', 0.0), promotes=['y'])
+ model.add_subsystem('p1', om.IndepVarComp('x', 0.0), promotes=['x'])
+ model.add_subsystem('p2', om.IndepVarComp('y', 0.0), promotes=['y'])
model.add_subsystem('comp', Paraboloid(), promotes=['x', 'y', 'f_xy'])
model.add_design_var('x', lower=0.0, upper=1.0)
@@ -258,7 +252,7 @@ def test_csv(self):
# create a list of DOE cases
cases = []
- case_gen = FullFactorialGenerator(levels=3)
+ case_gen = om.FullFactorialGenerator(levels=3)
for case in case_gen(model.get_design_vars(recurse=True)):
cases.append([(var, val) for (var, val) in case])
@@ -271,8 +265,8 @@ def test_csv(self):
writer.writerow([val for (var, val) in case])
# create DOEDriver using generated CSV file
- prob.driver = DOEDriver(CSVGenerator('cases.csv'))
- prob.driver.add_recorder(SqliteRecorder("cases.sql"))
+ prob.driver = om.DOEDriver(om.CSVGenerator('cases.csv'))
+ prob.driver.add_recorder(om.SqliteRecorder("cases.sql"))
prob.run_driver()
prob.cleanup()
@@ -291,7 +285,7 @@ def test_csv(self):
8: {'x': np.array([1.]), 'y': np.array([1.]), 'f_xy': np.array([27.00])},
}
- cr = CaseReader("cases.sql")
+ cr = om.CaseReader("cases.sql")
cases = cr.list_cases('driver')
self.assertEqual(len(cases), 9)
@@ -303,11 +297,11 @@ def test_csv(self):
self.assertEqual(outputs['f_xy'], expected[n]['f_xy'])
def test_csv_array(self):
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', [0., 1.]))
- model.add_subsystem('p2', IndepVarComp('y', [0., 1.]))
+ model.add_subsystem('p1', om.IndepVarComp('x', [0., 1.]))
+ model.add_subsystem('p2', om.IndepVarComp('y', [0., 1.]))
model.add_subsystem('comp1', Paraboloid())
model.add_subsystem('comp2', Paraboloid())
@@ -324,7 +318,7 @@ def test_csv_array(self):
# create a list of DOE cases
cases = []
- case_gen = FullFactorialGenerator(levels=2)
+ case_gen = om.FullFactorialGenerator(levels=2)
for case in case_gen(model.get_design_vars(recurse=True)):
cases.append([(var, val) for (var, val) in case])
@@ -337,8 +331,8 @@ def test_csv_array(self):
writer.writerow([val for (var, val) in case])
# create DOEDriver using generated CSV file
- prob.driver = DOEDriver(CSVGenerator('cases.csv'))
- prob.driver.add_recorder(SqliteRecorder("cases.sql"))
+ prob.driver = om.DOEDriver(om.CSVGenerator('cases.csv'))
+ prob.driver.add_recorder(om.SqliteRecorder("cases.sql"))
prob.run_driver()
prob.cleanup()
@@ -362,7 +356,7 @@ def test_csv_array(self):
15: {'p1.x': np.array([1., 1.]), 'p2.y': np.array([1., 1.])},
}
- cr = CaseReader("cases.sql")
+ cr = om.CaseReader("cases.sql")
cases = cr.list_cases('driver')
self.assertEqual(len(cases), 16)
@@ -377,22 +371,22 @@ def test_csv_array(self):
def test_csv_errors(self):
# test invalid file name
with self.assertRaises(RuntimeError) as err:
- CSVGenerator(1.23)
+ om.CSVGenerator(1.23)
self.assertEqual(str(err.exception),
"'1.23' is not a valid file name.")
# test file not found
with self.assertRaises(RuntimeError) as err:
- CSVGenerator('nocases.csv')
+ om.CSVGenerator('nocases.csv')
self.assertEqual(str(err.exception),
"File not found: nocases.csv")
# create problem and a list of DOE cases
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', 0.0), promotes=['x'])
- model.add_subsystem('p2', IndepVarComp('y', 0.0), promotes=['y'])
+ model.add_subsystem('p1', om.IndepVarComp('x', 0.0), promotes=['x'])
+ model.add_subsystem('p2', om.IndepVarComp('y', 0.0), promotes=['y'])
model.add_subsystem('comp', Paraboloid(), promotes=['x', 'y', 'f_xy'])
model.add_design_var('x', lower=0.0, upper=1.0)
@@ -402,7 +396,7 @@ def test_csv_errors(self):
prob.setup()
cases = []
- case_gen = FullFactorialGenerator(levels=2)
+ case_gen = om.FullFactorialGenerator(levels=2)
for case in case_gen(model.get_design_vars(recurse=True)):
cases.append([(var, val) for (var, val) in case])
@@ -415,7 +409,7 @@ def test_csv_errors(self):
for case in cases:
writer.writerow([val for (var, val) in case])
- prob.driver = DOEDriver(CSVGenerator('cases.csv'))
+ prob.driver = om.DOEDriver(om.CSVGenerator('cases.csv'))
with self.assertRaises(RuntimeError) as err:
prob.run_driver()
self.assertEqual(str(err.exception), "Invalid DOE case file, "
@@ -457,19 +451,19 @@ def test_csv_errors(self):
"could not broadcast input array from shape (4) into shape (1)")
def test_uniform(self):
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', 0.), promotes=['*'])
- model.add_subsystem('p2', IndepVarComp('y', 0.), promotes=['*'])
+ model.add_subsystem('p1', om.IndepVarComp('x', 0.), promotes=['*'])
+ model.add_subsystem('p2', om.IndepVarComp('y', 0.), promotes=['*'])
model.add_subsystem('comp', Paraboloid(), promotes=['*'])
model.add_design_var('x', lower=-10, upper=10)
model.add_design_var('y', lower=-10, upper=10)
model.add_objective('f_xy')
- prob.driver = DOEDriver(UniformGenerator(num_samples=5, seed=0))
- prob.driver.add_recorder(SqliteRecorder("cases.sql"))
+ prob.driver = om.DOEDriver(om.UniformGenerator(num_samples=5, seed=0))
+ prob.driver.add_recorder(om.SqliteRecorder("cases.sql"))
prob.setup()
prob.run_driver()
@@ -484,7 +478,7 @@ def test_uniform(self):
4: {'x': np.array([ 9.27325521]), 'y': np.array([-2.33116962])},
}
- cr = CaseReader("cases.sql")
+ cr = om.CaseReader("cases.sql")
cases = cr.list_cases('driver')
self.assertEqual(len(cases), 5)
@@ -495,19 +489,19 @@ def test_uniform(self):
assert_rel_error(self, outputs['y'], expected[n]['y'], 1e-4)
def test_full_factorial(self):
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', 0.0), promotes=['x'])
- model.add_subsystem('p2', IndepVarComp('y', 0.0), promotes=['y'])
+ model.add_subsystem('p1', om.IndepVarComp('x', 0.0), promotes=['x'])
+ model.add_subsystem('p2', om.IndepVarComp('y', 0.0), promotes=['y'])
model.add_subsystem('comp', Paraboloid(), promotes=['x', 'y', 'f_xy'])
model.add_design_var('x', lower=0.0, upper=1.0)
model.add_design_var('y', lower=0.0, upper=1.0)
model.add_objective('f_xy')
- prob.driver = DOEDriver(generator=FullFactorialGenerator(levels=3))
- prob.driver.add_recorder(SqliteRecorder("cases.sql"))
+ prob.driver = om.DOEDriver(generator=om.FullFactorialGenerator(levels=3))
+ prob.driver.add_recorder(om.SqliteRecorder("cases.sql"))
prob.setup()
prob.run_driver()
@@ -527,7 +521,7 @@ def test_full_factorial(self):
8: {'x': np.array([1.]), 'y': np.array([1.]), 'f_xy': np.array([27.00])},
}
- cr = CaseReader("cases.sql")
+ cr = om.CaseReader("cases.sql")
cases = cr.list_cases('driver')
self.assertEqual(len(cases), 9)
@@ -539,17 +533,17 @@ def test_full_factorial(self):
self.assertEqual(outputs['f_xy'], expected[n]['f_xy'])
def test_full_factorial_array(self):
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('p1', IndepVarComp('xy', np.array([0., 0.])), promotes=['*'])
+ model.add_subsystem('p1', om.IndepVarComp('xy', np.array([0., 0.])), promotes=['*'])
model.add_subsystem('comp', ParaboloidArray(), promotes=['*'])
model.add_design_var('xy', lower=np.array([-50., -50.]), upper=np.array([50., 50.]))
model.add_objective('f_xy')
- prob.driver = DOEDriver(FullFactorialGenerator(levels=3))
- prob.driver.add_recorder(SqliteRecorder("cases.sql"))
+ prob.driver = om.DOEDriver(om.FullFactorialGenerator(levels=3))
+ prob.driver.add_recorder(om.SqliteRecorder("cases.sql"))
prob.setup()
prob.run_driver()
@@ -567,7 +561,7 @@ def test_full_factorial_array(self):
8: {'xy': np.array([ 50., 50.])},
}
- cr = CaseReader("cases.sql")
+ cr = om.CaseReader("cases.sql")
cases = cr.list_cases('driver')
self.assertEqual(len(cases), 9)
@@ -578,19 +572,19 @@ def test_full_factorial_array(self):
self.assertEqual(outputs['xy'][1], expected[n]['xy'][1])
def test_plackett_burman(self):
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', 0.0), promotes=['x'])
- model.add_subsystem('p2', IndepVarComp('y', 0.0), promotes=['y'])
+ model.add_subsystem('p1', om.IndepVarComp('x', 0.0), promotes=['x'])
+ model.add_subsystem('p2', om.IndepVarComp('y', 0.0), promotes=['y'])
model.add_subsystem('comp', Paraboloid(), promotes=['x', 'y', 'f_xy'])
model.add_design_var('x', lower=0.0, upper=1.0)
model.add_design_var('y', lower=0.0, upper=1.0)
model.add_objective('f_xy')
- prob.driver = DOEDriver(PlackettBurmanGenerator())
- prob.driver.add_recorder(SqliteRecorder("cases.sql"))
+ prob.driver = om.DOEDriver(om.PlackettBurmanGenerator())
+ prob.driver.add_recorder(om.SqliteRecorder("cases.sql"))
prob.setup()
prob.run_driver()
@@ -603,7 +597,7 @@ def test_plackett_burman(self):
3: {'x': np.array([1.]), 'y': np.array([1.]), 'f_xy': np.array([27.00])},
}
- cr = CaseReader("cases.sql")
+ cr = om.CaseReader("cases.sql")
cases = cr.list_cases('driver')
self.assertEqual(len(cases), 4)
@@ -618,15 +612,15 @@ def test_box_behnken(self):
upper = 10.
center = 1
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- indep = model.add_subsystem('indep', IndepVarComp(), promotes=['*'])
+ indep = model.add_subsystem('indep', om.IndepVarComp(), promotes=['*'])
indep.add_output('x', 0.0)
indep.add_output('y', 0.0)
indep.add_output('z', 0.0)
- model.add_subsystem('comp', ExecComp('a = x**2 + y - z'), promotes=['*'])
+ model.add_subsystem('comp', om.ExecComp('a = x**2 + y - z'), promotes=['*'])
model.add_design_var('x', lower=0., upper=upper)
model.add_design_var('y', lower=0., upper=upper)
@@ -634,14 +628,14 @@ def test_box_behnken(self):
model.add_objective('a')
- prob.driver = DOEDriver(BoxBehnkenGenerator(center=center))
- prob.driver.add_recorder(SqliteRecorder("cases.sql"))
+ prob.driver = om.DOEDriver(om.BoxBehnkenGenerator(center=center))
+ prob.driver.add_recorder(om.SqliteRecorder("cases.sql"))
prob.setup()
prob.run_driver()
prob.cleanup()
- cr = CaseReader("cases.sql")
+ cr = om.CaseReader("cases.sql")
cases = cr.list_cases('driver')
# The Box-Behnken design for 3 factors involves three blocks, in each of
@@ -685,21 +679,21 @@ def test_latin_hypercube(self):
xlb, xub = bounds[0][0], bounds[1][0]
ylb, yub = bounds[0][1], bounds[1][1]
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', 0.0), promotes=['x'])
- model.add_subsystem('p2', IndepVarComp('y', 0.0), promotes=['y'])
+ model.add_subsystem('p1', om.IndepVarComp('x', 0.0), promotes=['x'])
+ model.add_subsystem('p2', om.IndepVarComp('y', 0.0), promotes=['y'])
model.add_subsystem('comp', Paraboloid(), promotes=['x', 'y', 'f_xy'])
model.add_design_var('x', lower=xlb, upper=xub)
model.add_design_var('y', lower=ylb, upper=yub)
model.add_objective('f_xy')
- prob.driver = DOEDriver()
- prob.driver.options['generator'] = LatinHypercubeGenerator(samples=4, seed=0)
+ prob.driver = om.DOEDriver()
+ prob.driver.options['generator'] = om.LatinHypercubeGenerator(samples=4, seed=0)
- prob.driver.add_recorder(SqliteRecorder("cases.sql"))
+ prob.driver.add_recorder(om.SqliteRecorder("cases.sql"))
prob.setup()
prob.run_driver()
@@ -727,7 +721,7 @@ def test_latin_hypercube(self):
3: {'x': np.array([-0.72559325]), 'y': np.array([-2.27558409])},
}
- cr = CaseReader("cases.sql")
+ cr = om.CaseReader("cases.sql")
cases = cr.list_cases('driver')
self.assertEqual(len(cases), 4)
@@ -757,17 +751,17 @@ def test_latin_hypercube_array(self):
[ 10, 50] # upper bounds for x and y
])
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('p1', IndepVarComp('xy', np.array([50., 50.])), promotes=['*'])
+ model.add_subsystem('p1', om.IndepVarComp('xy', np.array([50., 50.])), promotes=['*'])
model.add_subsystem('comp', ParaboloidArray(), promotes=['*'])
model.add_design_var('xy', lower=bounds[0], upper=bounds[1])
model.add_objective('f_xy')
- prob.driver = DOEDriver(LatinHypercubeGenerator(samples=4, seed=0))
- prob.driver.add_recorder(SqliteRecorder("cases.sql"))
+ prob.driver = om.DOEDriver(om.LatinHypercubeGenerator(samples=4, seed=0))
+ prob.driver.add_recorder(om.SqliteRecorder("cases.sql"))
prob.setup()
prob.run_driver()
@@ -795,7 +789,7 @@ def test_latin_hypercube_array(self):
3: {'xy': np.array([-7.25593248, -11.37792043])},
}
- cr = CaseReader("cases.sql")
+ cr = om.CaseReader("cases.sql")
cases = cr.list_cases('driver')
self.assertEqual(len(cases), 4)
@@ -821,10 +815,10 @@ def test_latin_hypercube_center(self):
samples = 4
upper = 10.
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- indep = model.add_subsystem('indep', IndepVarComp())
+ indep = model.add_subsystem('indep', om.IndepVarComp())
indep.add_output('x', 0.0)
indep.add_output('y', 0.0)
@@ -838,14 +832,14 @@ def test_latin_hypercube_center(self):
model.add_objective('comp.f_xy')
- prob.driver = DOEDriver(LatinHypercubeGenerator(samples=samples, criterion='c'))
- prob.driver.add_recorder(SqliteRecorder("cases.sql"))
+ prob.driver = om.DOEDriver(om.LatinHypercubeGenerator(samples=samples, criterion='c'))
+ prob.driver.add_recorder(om.SqliteRecorder("cases.sql"))
prob.setup()
prob.run_driver()
prob.cleanup()
- cr = CaseReader("cases.sql")
+ cr = om.CaseReader("cases.sql")
cases = cr.list_cases('driver')
self.assertEqual(len(cases), samples)
@@ -876,7 +870,7 @@ def test_latin_hypercube_center(self):
self.assertEqual(y_buckets_filled, all_buckets)
-@unittest.skipUnless(PETScVector, "PETSc is required.")
+@unittest.skipUnless(om.PETScVector, "PETSc is required.")
class TestParallelDOE(unittest.TestCase):
N_PROCS = 4
@@ -894,9 +888,9 @@ def tearDown(self):
pass
def test_indivisible_error(self):
- prob = Problem()
+ prob = om.Problem()
- prob.driver = DOEDriver(FullFactorialGenerator(levels=3))
+ prob.driver = om.DOEDriver(om.FullFactorialGenerator(levels=3))
prob.driver.options['run_parallel'] = True
prob.driver.options['procs_per_model'] = 3
@@ -910,13 +904,13 @@ def test_indivisible_error(self):
"of processors per model that divides into 4.")
def test_minprocs_error(self):
- prob = Problem(FanInGrouped())
+ prob = om.Problem(FanInGrouped())
# require 2 procs for the ParallelGroup
prob.model._proc_info['sub'] = (2, None, 1.0)
# run cases on all procs
- prob.driver = DOEDriver(FullFactorialGenerator(levels=3))
+ prob.driver = om.DOEDriver(om.FullFactorialGenerator(levels=3))
prob.driver.options['run_parallel'] = True
prob.driver.options['procs_per_model'] = 1
@@ -928,20 +922,20 @@ def test_minprocs_error(self):
"required for the following subsystems: ['sub']")
def test_full_factorial(self):
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', 0.0), promotes=['x'])
- model.add_subsystem('p2', IndepVarComp('y', 0.0), promotes=['y'])
+ model.add_subsystem('p1', om.IndepVarComp('x', 0.0), promotes=['x'])
+ model.add_subsystem('p2', om.IndepVarComp('y', 0.0), promotes=['y'])
model.add_subsystem('comp', Paraboloid(), promotes=['x', 'y', 'f_xy'])
model.add_design_var('x', lower=0.0, upper=1.0)
model.add_design_var('y', lower=0.0, upper=1.0)
model.add_objective('f_xy')
- prob.driver = DOEDriver(FullFactorialGenerator(levels=3), procs_per_model=1,
+ prob.driver = om.DOEDriver(om.FullFactorialGenerator(levels=3), procs_per_model=1,
run_parallel=True)
- prob.driver.add_recorder(SqliteRecorder("cases.sql"))
+ prob.driver.add_recorder(om.SqliteRecorder("cases.sql"))
prob.setup()
@@ -973,7 +967,7 @@ def test_full_factorial(self):
expect_msg = "Cases from rank %d are being written to %s." % (rank, filename)
self.assertTrue(expect_msg in output)
- cr = CaseReader(filename)
+ cr = om.CaseReader(filename)
cases = cr.list_cases('driver')
# cases recorded on this proc
@@ -996,7 +990,7 @@ def test_fan_in_grouped(self):
# run 2 cases at a time, each using 2 of our 4 procs
doe_parallel = 2
- prob = Problem(FanInGrouped())
+ prob = om.Problem(FanInGrouped())
model = prob.model
model.add_design_var('iv.x1', lower=0.0, upper=1.0)
@@ -1004,8 +998,8 @@ def test_fan_in_grouped(self):
model.add_objective('c3.y')
- prob.driver = DOEDriver(FullFactorialGenerator(levels=3))
- prob.driver.add_recorder(SqliteRecorder("cases.sql"))
+ prob.driver = om.DOEDriver(om.FullFactorialGenerator(levels=3))
+ prob.driver.add_recorder(om.SqliteRecorder("cases.sql"))
prob.driver.options['run_parallel'] = True
prob.driver.options['procs_per_model'] = doe_parallel
@@ -1042,7 +1036,7 @@ def test_fan_in_grouped(self):
expect_msg = "Cases from rank %d are being written to %s." % (rank, filename)
self.assertTrue(expect_msg in output)
- cr = CaseReader(filename)
+ cr = om.CaseReader(filename)
cases = cr.list_cases('driver')
# cases recorded on this proc
@@ -1068,7 +1062,7 @@ def test_fan_in_grouped_serial(self):
# run cases on all procs (parallel model will run on single proc)
doe_parallel = 1
- prob = Problem(FanInGrouped())
+ prob = om.Problem(FanInGrouped())
model = prob.model
model.add_design_var('iv.x1', lower=0.0, upper=1.0)
@@ -1076,8 +1070,8 @@ def test_fan_in_grouped_serial(self):
model.add_objective('c3.y')
- prob.driver = DOEDriver(FullFactorialGenerator(levels=3))
- prob.driver.add_recorder(SqliteRecorder("cases.sql"))
+ prob.driver = om.DOEDriver(om.FullFactorialGenerator(levels=3))
+ prob.driver.add_recorder(om.SqliteRecorder("cases.sql"))
prob.driver.options['run_parallel'] = True
prob.driver.options['procs_per_model'] = doe_parallel
@@ -1113,7 +1107,7 @@ def test_fan_in_grouped_serial(self):
expect_msg = "Cases from rank %d are being written to %s." % (rank, filename)
self.assertTrue(expect_msg in output)
- cr = CaseReader(filename)
+ cr = om.CaseReader(filename)
cases = cr.list_cases('driver')
# cases recorded on this proc
@@ -1204,30 +1198,28 @@ def tearDown(self):
pass
def test_uniform(self):
- from openmdao.api import Problem, IndepVarComp
+ import openmdao.api as om
from openmdao.test_suite.components.paraboloid import Paraboloid
- from openmdao.api import DOEDriver, UniformGenerator, SqliteRecorder, CaseReader
-
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', 0.), promotes=['*'])
- model.add_subsystem('p2', IndepVarComp('y', 0.), promotes=['*'])
+ model.add_subsystem('p1', om.IndepVarComp('x', 0.), promotes=['*'])
+ model.add_subsystem('p2', om.IndepVarComp('y', 0.), promotes=['*'])
model.add_subsystem('comp', Paraboloid(), promotes=['*'])
model.add_design_var('x', lower=-10, upper=10)
model.add_design_var('y', lower=-10, upper=10)
model.add_objective('f_xy')
- prob.driver = DOEDriver(UniformGenerator(num_samples=5))
- prob.driver.add_recorder(SqliteRecorder("cases.sql"))
+ prob.driver = om.DOEDriver(om.UniformGenerator(num_samples=5))
+ prob.driver.add_recorder(om.SqliteRecorder("cases.sql"))
prob.setup()
prob.run_driver()
prob.cleanup()
- cr = CaseReader("cases.sql")
+ cr = om.CaseReader("cases.sql")
cases = cr.list_cases('driver')
self.assertEqual(len(cases), 5)
@@ -1240,16 +1232,14 @@ def test_uniform(self):
print("\n".join(["x: %5.2f, y: %5.2f, f_xy: %6.2f" % (x, y, f_xy) for x, y, f_xy in values]))
def test_csv(self):
- from openmdao.api import Problem, IndepVarComp
+ import openmdao.api as om
from openmdao.test_suite.components.paraboloid import Paraboloid
- from openmdao.api import DOEDriver, CSVGenerator, SqliteRecorder, CaseReader
-
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', 0.0), promotes=['x'])
- model.add_subsystem('p2', IndepVarComp('y', 0.0), promotes=['y'])
+ model.add_subsystem('p1', om.IndepVarComp('x', 0.0), promotes=['x'])
+ model.add_subsystem('p2', om.IndepVarComp('y', 0.0), promotes=['y'])
model.add_subsystem('comp', Paraboloid(), promotes=['x', 'y', 'f_xy'])
model.add_design_var('x', lower=0.0, upper=1.0)
@@ -1263,13 +1253,13 @@ def test_csv(self):
self.assertEqual(f.read(), self.expected_csv)
# run problem with DOEDriver using the CSV file
- prob.driver = DOEDriver(CSVGenerator('cases.csv'))
- prob.driver.add_recorder(SqliteRecorder("cases.sql"))
+ prob.driver = om.DOEDriver(om.CSVGenerator('cases.csv'))
+ prob.driver.add_recorder(om.SqliteRecorder("cases.sql"))
prob.run_driver()
prob.cleanup()
- cr = CaseReader("cases.sql")
+ cr = om.CaseReader("cases.sql")
cases = cr.list_cases('driver')
values = []
@@ -1281,18 +1271,16 @@ def test_csv(self):
self.expected_text)
def test_list(self):
- from openmdao.api import Problem, IndepVarComp
+ import openmdao.api as om
from openmdao.test_suite.components.paraboloid import Paraboloid
- from openmdao.api import DOEDriver, ListGenerator, SqliteRecorder, CaseReader
-
import json
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', 0.0), promotes=['x'])
- model.add_subsystem('p2', IndepVarComp('y', 0.0), promotes=['y'])
+ model.add_subsystem('p1', om.IndepVarComp('x', 0.0), promotes=['x'])
+ model.add_subsystem('p2', om.IndepVarComp('y', 0.0), promotes=['y'])
model.add_subsystem('comp', Paraboloid(), promotes=['x', 'y', 'f_xy'])
model.add_design_var('x', lower=0.0, upper=1.0)
@@ -1312,17 +1300,17 @@ def test_list(self):
self.assertEqual(case_list, json.loads(json_data))
# create DOEDriver using provided list of cases
- prob.driver = DOEDriver(case_list)
+ prob.driver = om.DOEDriver(case_list)
# a ListGenerator was created
- self.assertEqual(type(prob.driver.options['generator']), ListGenerator)
+ self.assertEqual(type(prob.driver.options['generator']), om.ListGenerator)
- prob.driver.add_recorder(SqliteRecorder("cases.sql"))
+ prob.driver.add_recorder(om.SqliteRecorder("cases.sql"))
prob.run_driver()
prob.cleanup()
- cr = CaseReader("cases.sql")
+ cr = om.CaseReader("cases.sql")
cases = cr.list_cases('driver')
values = []
@@ -1334,7 +1322,7 @@ def test_list(self):
self.expected_text)
-@unittest.skipUnless(PETScVector, "PETSc is required.")
+@unittest.skipUnless(om.PETScVector, "PETSc is required.")
class TestParallelDOEFeature(unittest.TestCase):
N_PROCS = 2
@@ -1385,30 +1373,27 @@ def tearDown(self):
pass
def test_full_factorial(self):
- from openmdao.api import Problem, IndepVarComp
+ import openmdao.api as om
from openmdao.test_suite.components.paraboloid import Paraboloid
- from openmdao.api import DOEDriver, FullFactorialGenerator
- from openmdao.api import SqliteRecorder, CaseReader
-
from mpi4py import MPI
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', 0.0), promotes=['x'])
- model.add_subsystem('p2', IndepVarComp('y', 0.0), promotes=['y'])
+ model.add_subsystem('p1', om.IndepVarComp('x', 0.0), promotes=['x'])
+ model.add_subsystem('p2', om.IndepVarComp('y', 0.0), promotes=['y'])
model.add_subsystem('comp', Paraboloid(), promotes=['x', 'y', 'f_xy'])
model.add_design_var('x', lower=0.0, upper=1.0)
model.add_design_var('y', lower=0.0, upper=1.0)
model.add_objective('f_xy')
- prob.driver = DOEDriver(FullFactorialGenerator(levels=3))
+ prob.driver = om.DOEDriver(om.FullFactorialGenerator(levels=3))
prob.driver.options['run_parallel'] = True
prob.driver.options['procs_per_model'] = 1
- prob.driver.add_recorder(SqliteRecorder("cases.sql"))
+ prob.driver.add_recorder(om.SqliteRecorder("cases.sql"))
prob.setup()
prob.run_driver()
@@ -1421,7 +1406,7 @@ def test_full_factorial(self):
filename = "cases.sql_%d" % rank
self.assertEqual(filename, "cases.sql_%d" % rank)
- cr = CaseReader(filename)
+ cr = om.CaseReader(filename)
cases = cr.list_cases('driver')
self.assertEqual(len(cases), 5 if rank == 0 else 4)
@@ -1434,7 +1419,7 @@ def test_full_factorial(self):
self.expect_text)
-@unittest.skipUnless(PETScVector, "PETSc is required.")
+@unittest.skipUnless(om.PETScVector, "PETSc is required.")
class TestParallelDOEFeature2(unittest.TestCase):
N_PROCS = 4
@@ -1485,15 +1470,12 @@ def tearDown(self):
pass
def test_fan_in_grouped(self):
- from openmdao.api import Problem
+ import openmdao.api as om
from openmdao.test_suite.groups.parallel_groups import FanInGrouped
- from openmdao.api import DOEDriver, FullFactorialGenerator
- from openmdao.api import SqliteRecorder, CaseReader
-
from mpi4py import MPI
- prob = Problem(FanInGrouped())
+ prob = om.Problem(FanInGrouped())
model = prob.model
model.add_design_var('iv.x1', lower=0.0, upper=1.0)
@@ -1501,8 +1483,8 @@ def test_fan_in_grouped(self):
model.add_objective('c3.y')
- prob.driver = DOEDriver(FullFactorialGenerator(levels=3))
- prob.driver.add_recorder(SqliteRecorder("cases.sql"))
+ prob.driver = om.DOEDriver(om.FullFactorialGenerator(levels=3))
+ prob.driver.add_recorder(om.SqliteRecorder("cases.sql"))
prob.driver.options['run_parallel'] = True
# run 2 cases at a time, each using 2 of our 4 procs
@@ -1518,7 +1500,7 @@ def test_fan_in_grouped(self):
if rank < doe_parallel:
filename = "cases.sql_%d" % rank
- cr = CaseReader(filename)
+ cr = om.CaseReader(filename)
cases = cr.list_cases('driver')
values = []
diff --git a/openmdao/drivers/tests/test_genetic_algorithm_driver.py b/openmdao/drivers/tests/test_genetic_algorithm_driver.py
index 541e5ac8e6..0f456769d5 100644
--- a/openmdao/drivers/tests/test_genetic_algorithm_driver.py
+++ b/openmdao/drivers/tests/test_genetic_algorithm_driver.py
@@ -4,15 +4,13 @@
import numpy as np
-from openmdao.api import Problem, Group, IndepVarComp, ExplicitComponent, ExecComp, \
- PETScVector, ParallelGroup
-from openmdao.drivers.genetic_algorithm_driver import SimpleGADriver,\
- GeneticAlgorithm
+import openmdao.api as om
+from openmdao.drivers.genetic_algorithm_driver import GeneticAlgorithm
from openmdao.test_suite.components.branin import Branin, BraninDiscrete
+from openmdao.test_suite.components.paraboloid import Paraboloid
from openmdao.test_suite.components.three_bar_truss import ThreeBarTruss
from openmdao.utils.assert_utils import assert_rel_error
from openmdao.utils.mpi import MPI
-from openmdao.test_suite.components.paraboloid import Paraboloid
class TestSimpleGA(unittest.TestCase):
@@ -20,7 +18,7 @@ class TestSimpleGA(unittest.TestCase):
def test_simple_test_func(self):
np.random.seed(11)
- class MyComp(ExplicitComponent):
+ class MyComp(om.ExplicitComponent):
def setup(self):
self.add_input('x', np.zeros((2, )))
@@ -38,12 +36,12 @@ def compute(self, inputs, outputs):
outputs['c'] = (x[0] + x[1] + 1.0)**2
outputs['d'] = 19.0 - 14.0*x[0] + 3.0*x[0]**2 - 14.0*x[1] + 6.0*x[0]*x[1] + 3.0*x[1]**2
- prob = Problem()
- prob.model = model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('px', IndepVarComp('x', np.array([0.2, -0.2])))
+ model.add_subsystem('px', om.IndepVarComp('x', np.array([0.2, -0.2])))
model.add_subsystem('comp', MyComp())
- model.add_subsystem('obj', ExecComp('f=(30 + a*b)*(1 + c*d)'))
+ model.add_subsystem('obj', om.ExecComp('f=(30 + a*b)*(1 + c*d)'))
model.connect('px.x', 'comp.x')
model.connect('comp.a', 'obj.a')
@@ -55,13 +53,13 @@ def compute(self, inputs, outputs):
model.add_design_var('px.x', lower=np.array([0.2, -1.0]), upper=np.array([1.0, -0.2]))
model.add_objective('obj.f')
- prob.driver = SimpleGADriver()
+ prob.driver = om.SimpleGADriver()
prob.driver.options['bits'] = {'px.x': 16}
prob.driver.options['max_gen'] = 75
prob.driver._randomstate = 11
- prob.setup(check=False)
+ prob.setup()
prob.run_driver()
# TODO: Satadru listed this solution, but I get a way better one.
@@ -73,11 +71,11 @@ def compute(self, inputs, outputs):
def test_mixed_integer_branin(self):
np.random.seed(1)
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('p1', IndepVarComp('xC', 7.5))
- model.add_subsystem('p2', IndepVarComp('xI', 0.0))
+ model.add_subsystem('p1', om.IndepVarComp('xC', 7.5))
+ model.add_subsystem('p2', om.IndepVarComp('xI', 0.0))
model.add_subsystem('comp', Branin())
model.connect('p2.xI', 'comp.x0')
@@ -87,12 +85,12 @@ def test_mixed_integer_branin(self):
model.add_design_var('p1.xC', lower=0.0, upper=15.0)
model.add_objective('comp.f')
- prob.driver = SimpleGADriver(max_gen=75, pop_size=25)
+ prob.driver = om.SimpleGADriver(max_gen=75, pop_size=25)
prob.driver.options['bits'] = {'p1.xC': 8}
prob.driver._randomstate = 1
- prob.setup(check=False)
+ prob.setup()
prob.run_driver()
# Optimal solution
@@ -102,10 +100,10 @@ def test_mixed_integer_branin(self):
def test_mixed_integer_branin_discrete(self):
np.random.seed(1)
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- indep = IndepVarComp()
+ indep = om.IndepVarComp()
indep.add_output('xC', val=7.5)
indep.add_discrete_output('xI', val=0)
@@ -119,12 +117,12 @@ def test_mixed_integer_branin_discrete(self):
model.add_design_var('p.xC', lower=0.0, upper=15.0)
model.add_objective('comp.f')
- prob.driver = SimpleGADriver(max_gen=75, pop_size=25)
+ prob.driver = om.SimpleGADriver(max_gen=75, pop_size=25)
prob.driver.options['bits'] = {'p.xC': 8}
prob.driver._randomstate = 1
- prob.setup(check=False)
+ prob.setup()
prob.run_driver()
# Optimal solution
@@ -135,7 +133,7 @@ def test_mixed_integer_branin_discrete(self):
def test_mixed_integer_3bar(self):
np.random.seed(1)
- class ObjPenalty(ExplicitComponent):
+ class ObjPenalty(om.ExplicitComponent):
"""
Weight objective with penalty on stress constraint.
"""
@@ -157,15 +155,15 @@ def compute(self, inputs, outputs):
outputs['weighted'] = obj + pen
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('xc_a1', IndepVarComp('area1', 5.0, units='cm**2'), promotes=['*'])
- model.add_subsystem('xc_a2', IndepVarComp('area2', 5.0, units='cm**2'), promotes=['*'])
- model.add_subsystem('xc_a3', IndepVarComp('area3', 5.0, units='cm**2'), promotes=['*'])
- model.add_subsystem('xi_m1', IndepVarComp('mat1', 1), promotes=['*'])
- model.add_subsystem('xi_m2', IndepVarComp('mat2', 1), promotes=['*'])
- model.add_subsystem('xi_m3', IndepVarComp('mat3', 1), promotes=['*'])
+ model.add_subsystem('xc_a1', om.IndepVarComp('area1', 5.0, units='cm**2'), promotes=['*'])
+ model.add_subsystem('xc_a2', om.IndepVarComp('area2', 5.0, units='cm**2'), promotes=['*'])
+ model.add_subsystem('xc_a3', om.IndepVarComp('area3', 5.0, units='cm**2'), promotes=['*'])
+ model.add_subsystem('xi_m1', om.IndepVarComp('mat1', 1), promotes=['*'])
+ model.add_subsystem('xi_m2', om.IndepVarComp('mat2', 1), promotes=['*'])
+ model.add_subsystem('xi_m3', om.IndepVarComp('mat3', 1), promotes=['*'])
model.add_subsystem('comp', ThreeBarTruss(), promotes=['*'])
model.add_subsystem('obj_with_penalty', ObjPenalty(), promotes=['*'])
@@ -176,14 +174,14 @@ def compute(self, inputs, outputs):
model.add_design_var('mat3', lower=1, upper=4)
model.add_objective('weighted')
- prob.driver = SimpleGADriver()
+ prob.driver = om.SimpleGADriver()
prob.driver.options['bits'] = {'area1': 6,
'area2': 6}
prob.driver.options['max_gen'] = 75
prob.driver._randomstate = 1
- prob.setup(check=False)
+ prob.setup()
prob['area3'] = 0.0005
prob.run_driver()
@@ -201,7 +199,7 @@ def test_mixed_integer_3bar_default_bits(self):
np.random.seed(1)
- class ObjPenalty(ExplicitComponent):
+ class ObjPenalty(om.ExplicitComponent):
"""
Weight objective with penalty on stress constraint.
"""
@@ -223,15 +221,15 @@ def compute(self, inputs, outputs):
outputs['weighted'] = obj + pen
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('xc_a1', IndepVarComp('area1', 5.0, units='cm**2'), promotes=['*'])
- model.add_subsystem('xc_a2', IndepVarComp('area2', 5.0, units='cm**2'), promotes=['*'])
- model.add_subsystem('xc_a3', IndepVarComp('area3', 5.0, units='cm**2'), promotes=['*'])
- model.add_subsystem('xi_m1', IndepVarComp('mat1', 1), promotes=['*'])
- model.add_subsystem('xi_m2', IndepVarComp('mat2', 1), promotes=['*'])
- model.add_subsystem('xi_m3', IndepVarComp('mat3', 1), promotes=['*'])
+ model.add_subsystem('xc_a1', om.IndepVarComp('area1', 5.0, units='cm**2'), promotes=['*'])
+ model.add_subsystem('xc_a2', om.IndepVarComp('area2', 5.0, units='cm**2'), promotes=['*'])
+ model.add_subsystem('xc_a3', om.IndepVarComp('area3', 5.0, units='cm**2'), promotes=['*'])
+ model.add_subsystem('xi_m1', om.IndepVarComp('mat1', 1), promotes=['*'])
+ model.add_subsystem('xi_m2', om.IndepVarComp('mat2', 1), promotes=['*'])
+ model.add_subsystem('xi_m3', om.IndepVarComp('mat3', 1), promotes=['*'])
model.add_subsystem('comp', ThreeBarTruss(), promotes=['*'])
model.add_subsystem('obj_with_penalty', ObjPenalty(), promotes=['*'])
@@ -242,14 +240,14 @@ def compute(self, inputs, outputs):
model.add_design_var('mat3', lower=1, upper=4)
model.add_objective('weighted')
- prob.driver = SimpleGADriver()
+ prob.driver = om.SimpleGADriver()
prob.driver.options['bits'] = {'area1': 6,
'area2': 6}
prob.driver.options['max_gen'] = 75
prob.driver._randomstate = 1
- prob.setup(check=False)
+ prob.setup()
prob['area3'] = 0.0005
prob.run_driver()
@@ -264,7 +262,7 @@ def compute(self, inputs, outputs):
def test_analysis_error(self):
np.random.seed(1)
- class ValueErrorComp(ExplicitComponent):
+ class ValueErrorComp(om.ExplicitComponent):
def setup(self):
self.add_input('x', 1.0)
self.add_output('f', 1.0)
@@ -272,10 +270,10 @@ def setup(self):
def compute(self, inputs, outputs):
raise ValueError
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('p', IndepVarComp('x', 0.0))
+ model.add_subsystem('p', om.IndepVarComp('x', 0.0))
model.add_subsystem('comp', ValueErrorComp())
model.connect('p.x', 'comp.x')
@@ -283,9 +281,9 @@ def compute(self, inputs, outputs):
model.add_design_var('p.x', lower=-5.0, upper=10.0)
model.add_objective('comp.f')
- prob.driver = SimpleGADriver(max_gen=75, pop_size=25)
+ prob.driver = om.SimpleGADriver(max_gen=75, pop_size=25)
prob.driver._randomstate = 1
- prob.setup(check=False)
+ prob.setup()
# prob.run_driver()
self.assertRaises(ValueError, prob.run_driver)
@@ -314,21 +312,21 @@ def test_encode_and_decode(self):
np.testing.assert_array_almost_equal(gen[1], ga.encode(x[1], vlb, vub, bits))
def test_vector_desvars_multiobj(self):
- prob = Problem()
+ prob = om.Problem()
- indeps = prob.model.add_subsystem('indeps', IndepVarComp())
+ indeps = prob.model.add_subsystem('indeps', om.IndepVarComp())
indeps.add_output('x', 3)
indeps.add_output('y', [4.0, -4])
prob.model.add_subsystem('paraboloid1',
- ExecComp('f = (x+5)**2- 3'))
+ om.ExecComp('f = (x+5)**2- 3'))
prob.model.add_subsystem('paraboloid2',
- ExecComp('f = (y[0]-3)**2 + (y[1]-1)**2 - 3',
- y=[0, 0]))
+ om.ExecComp('f = (y[0]-3)**2 + (y[1]-1)**2 - 3',
+ y=[0, 0]))
prob.model.connect('indeps.x', 'paraboloid1.x')
prob.model.connect('indeps.y', 'paraboloid2.y')
- prob.driver = SimpleGADriver()
+ prob.driver = om.SimpleGADriver()
prob.model.add_design_var('indeps.x', lower=-5, upper=5)
prob.model.add_design_var('indeps.y', lower=[-10, 0], upper=[10, 3])
@@ -341,18 +339,18 @@ def test_vector_desvars_multiobj(self):
np.testing.assert_array_almost_equal(prob['indeps.y'], [3, 1])
def test_SimpleGADriver_missing_objective(self):
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('x', IndepVarComp('x', 2.0), promotes=['*'])
+ model.add_subsystem('x', om.IndepVarComp('x', 2.0), promotes=['*'])
model.add_subsystem('f_x', Paraboloid(), promotes=['*'])
- prob.driver = SimpleGADriver()
+ prob.driver = om.SimpleGADriver()
prob.model.add_design_var('x', lower=0)
prob.model.add_constraint('x', lower=0)
- prob.setup(check=False)
+ prob.setup()
with self.assertRaises(Exception) as raises_msg:
prob.run_driver()
@@ -368,19 +366,19 @@ class TestDriverOptionsSimpleGA(unittest.TestCase):
def test_driver_options(self):
"""Tests if Pm and Pc options can be set."""
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- indeps = model.add_subsystem('indeps', IndepVarComp(), promotes=['*'])
+ indeps = model.add_subsystem('indeps', om.IndepVarComp(), promotes=['*'])
indeps.add_output('x', 1.)
- model.add_subsystem('model', ExecComp('y=x**2'), promotes=['*'])
- driver = prob.driver = SimpleGADriver()
+ model.add_subsystem('model', om.ExecComp('y=x**2'), promotes=['*'])
+ driver = prob.driver = om.SimpleGADriver()
driver.options['Pm'] = 0.1
driver.options['Pc'] = 0.01
driver.options['max_gen'] = 5
driver.options['bits'] = {'x': 8}
prob.model.add_design_var('x', lower=-10., upper=10.)
prob.model.add_objective('y')
- prob.setup(check=False)
+ prob.setup()
prob.run_driver()
self.assertEqual(driver.options['Pm'], 0.1)
self.assertEqual(driver.options['Pc'], 0.01)
@@ -390,7 +388,7 @@ class TestMultiObjectiveSimpleGA(unittest.TestCase):
def test_multi_obj(self):
- class Box(ExplicitComponent):
+ class Box(om.ExplicitComponent):
def setup(self):
self.add_input('length', val=1.)
@@ -412,16 +410,16 @@ def compute(self, inputs, outputs):
outputs['area'] = 2*length*height + 2*length*width + 2*height*width
outputs['volume'] = length*height*width
- prob = Problem()
+ prob = om.Problem()
prob.model.add_subsystem('box', Box(), promotes=['*'])
- indeps = prob.model.add_subsystem('indeps', IndepVarComp(), promotes=['*'])
+ indeps = prob.model.add_subsystem('indeps', om.IndepVarComp(), promotes=['*'])
indeps.add_output('length', 1.5)
indeps.add_output('width', 1.5)
indeps.add_output('height', 1.5)
# setup the optimization
- prob.driver = SimpleGADriver()
+ prob.driver = om.SimpleGADriver()
prob.driver.options['max_gen'] = 100
prob.driver.options['bits'] = {'length': 8, 'width': 8, 'height': 8}
prob.driver.options['multi_obj_exponent'] = 1.
@@ -451,16 +449,16 @@ def compute(self, inputs, outputs):
# run #2
# weights changed
- prob2 = Problem()
+ prob2 = om.Problem()
prob2.model.add_subsystem('box', Box(), promotes=['*'])
- indeps2 = prob2.model.add_subsystem('indeps', IndepVarComp(), promotes=['*'])
+ indeps2 = prob2.model.add_subsystem('indeps', om.IndepVarComp(), promotes=['*'])
indeps2.add_output('length', 1.5)
indeps2.add_output('width', 1.5)
indeps2.add_output('height', 1.5)
# setup the optimization
- prob2.driver = SimpleGADriver()
+ prob2.driver = om.SimpleGADriver()
prob2.driver.options['max_gen'] = 100
prob2.driver.options['bits'] = {'length': 8, 'width': 8, 'height': 8}
prob2.driver.options['multi_obj_exponent'] = 1.
@@ -495,7 +493,7 @@ class TestConstrainedSimpleGA(unittest.TestCase):
def test_constrained_with_penalty(self):
- class Cylinder(ExplicitComponent):
+ class Cylinder(om.ExplicitComponent):
"""Main class"""
def setup(self):
@@ -514,15 +512,15 @@ def compute(self, inputs, outputs):
outputs['Area'] = area
outputs['Volume'] = volume
- prob = Problem()
+ prob = om.Problem()
prob.model.add_subsystem('cylinder', Cylinder(), promotes=['*'])
- indeps = prob.model.add_subsystem('indeps', IndepVarComp(), promotes=['*'])
+ indeps = prob.model.add_subsystem('indeps', om.IndepVarComp(), promotes=['*'])
indeps.add_output('radius', 2.) # height
indeps.add_output('height', 3.) # radius
# setup the optimization
- driver = prob.driver = SimpleGADriver()
+ driver = prob.driver = om.SimpleGADriver()
prob.driver.options['penalty_parameter'] = 3.
prob.driver.options['penalty_exponent'] = 1.
prob.driver.options['max_gen'] = 50
@@ -547,7 +545,7 @@ def compute(self, inputs, outputs):
def test_constrained_without_penalty(self):
- class Cylinder(ExplicitComponent):
+ class Cylinder(om.ExplicitComponent):
"""Main class"""
def setup(self):
@@ -566,15 +564,15 @@ def compute(self, inputs, outputs):
outputs['Area'] = area
outputs['Volume'] = volume
- prob = Problem()
+ prob = om.Problem()
prob.model.add_subsystem('cylinder', Cylinder(), promotes=['*'])
- indeps = prob.model.add_subsystem('indeps', IndepVarComp(), promotes=['*'])
+ indeps = prob.model.add_subsystem('indeps', om.IndepVarComp(), promotes=['*'])
indeps.add_output('radius', 2.) # height
indeps.add_output('height', 3.) # radius
# setup the optimization
- driver = prob.driver = SimpleGADriver()
+ driver = prob.driver = om.SimpleGADriver()
prob.driver.options['penalty_parameter'] = 0. # no penalty, same as unconstrained
prob.driver.options['penalty_exponent'] = 1.
prob.driver.options['max_gen'] = 50
@@ -599,7 +597,7 @@ def compute(self, inputs, outputs):
def test_no_constraint(self):
- class Cylinder(ExplicitComponent):
+ class Cylinder(om.ExplicitComponent):
"""Main class"""
def setup(self):
@@ -618,15 +616,15 @@ def compute(self, inputs, outputs):
outputs['Area'] = area
outputs['Volume'] = volume
- prob = Problem()
+ prob = om.Problem()
prob.model.add_subsystem('cylinder', Cylinder(), promotes=['*'])
- indeps = prob.model.add_subsystem('indeps', IndepVarComp(), promotes=['*'])
+ indeps = prob.model.add_subsystem('indeps', om.IndepVarComp(), promotes=['*'])
indeps.add_output('radius', 2.) # height
indeps.add_output('height', 3.) # radius
# setup the optimization
- driver = prob.driver = SimpleGADriver()
+ driver = prob.driver = om.SimpleGADriver()
prob.driver.options['penalty_parameter'] = 10. # will have no effect
prob.driver.options['penalty_exponent'] = 1.
prob.driver.options['max_gen'] = 50
@@ -648,7 +646,7 @@ def compute(self, inputs, outputs):
self.assertAlmostEqual(prob['height'], 0.5, 1) # it is going to the unconstrained optimum
-@unittest.skipUnless(PETScVector, "PETSc is required.")
+@unittest.skipUnless(om.PETScVector, "PETSc is required.")
class MPITestSimpleGA(unittest.TestCase):
N_PROCS = 2
@@ -656,11 +654,11 @@ class MPITestSimpleGA(unittest.TestCase):
def test_mixed_integer_branin(self):
np.random.seed(1)
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('p1', IndepVarComp('xC', 7.5))
- model.add_subsystem('p2', IndepVarComp('xI', 0.0))
+ model.add_subsystem('p1', om.IndepVarComp('xC', 7.5))
+ model.add_subsystem('p2', om.IndepVarComp('xI', 0.0))
model.add_subsystem('comp', Branin())
model.connect('p2.xI', 'comp.x0')
@@ -670,7 +668,7 @@ def test_mixed_integer_branin(self):
model.add_design_var('p1.xC', lower=0.0, upper=15.0)
model.add_objective('comp.f')
- prob.driver = SimpleGADriver()
+ prob.driver = om.SimpleGADriver()
prob.driver.options['bits'] = {'p1.xC': 8}
prob.driver.options['max_gen'] = 50
prob.driver.options['pop_size'] = 25
@@ -678,7 +676,7 @@ def test_mixed_integer_branin(self):
prob.driver._randomstate = 1
- prob.setup(check=False)
+ prob.setup()
prob.run_driver()
# Optimal solution
@@ -688,12 +686,12 @@ def test_mixed_integer_branin(self):
def test_two_branin_parallel_model(self):
np.random.seed(1)
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('p1', IndepVarComp('xC', 7.5))
- model.add_subsystem('p2', IndepVarComp('xI', 0.0))
- par = model.add_subsystem('par', ParallelGroup())
+ model.add_subsystem('p1', om.IndepVarComp('xC', 7.5))
+ model.add_subsystem('p2', om.IndepVarComp('xI', 0.0))
+ par = model.add_subsystem('par', om.ParallelGroup())
par.add_subsystem('comp1', Branin())
par.add_subsystem('comp2', Branin())
@@ -703,7 +701,7 @@ def test_two_branin_parallel_model(self):
model.connect('p2.xI', 'par.comp2.x0')
model.connect('p1.xC', 'par.comp2.x1')
- model.add_subsystem('comp', ExecComp('f = f1 + f2'))
+ model.add_subsystem('comp', om.ExecComp('f = f1 + f2'))
model.connect('par.comp1.f', 'comp.f1')
model.connect('par.comp2.f', 'comp.f2')
@@ -711,7 +709,7 @@ def test_two_branin_parallel_model(self):
model.add_design_var('p1.xC', lower=0.0, upper=15.0)
model.add_objective('comp.f')
- prob.driver = SimpleGADriver()
+ prob.driver = om.SimpleGADriver()
prob.driver.options['bits'] = {'p1.xC': 8}
prob.driver.options['max_gen'] = 40
prob.driver.options['pop_size'] = 25
@@ -720,7 +718,7 @@ def test_two_branin_parallel_model(self):
prob.driver._randomstate = 1
- prob.setup(check=False)
+ prob.setup()
prob.run_driver()
# Optimal solution
@@ -732,7 +730,7 @@ def test_mixed_integer_3bar_default_bits(self):
# was a power of 2.
np.random.seed(1)
- class ObjPenalty(ExplicitComponent):
+ class ObjPenalty(om.ExplicitComponent):
"""
Weight objective with penalty on stress constraint.
"""
@@ -754,15 +752,15 @@ def compute(self, inputs, outputs):
outputs['weighted'] = obj + pen
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('xc_a1', IndepVarComp('area1', 5.0, units='cm**2'), promotes=['*'])
- model.add_subsystem('xc_a2', IndepVarComp('area2', 5.0, units='cm**2'), promotes=['*'])
- model.add_subsystem('xc_a3', IndepVarComp('area3', 5.0, units='cm**2'), promotes=['*'])
- model.add_subsystem('xi_m1', IndepVarComp('mat1', 1), promotes=['*'])
- model.add_subsystem('xi_m2', IndepVarComp('mat2', 1), promotes=['*'])
- model.add_subsystem('xi_m3', IndepVarComp('mat3', 1), promotes=['*'])
+ model.add_subsystem('xc_a1', om.IndepVarComp('area1', 5.0, units='cm**2'), promotes=['*'])
+ model.add_subsystem('xc_a2', om.IndepVarComp('area2', 5.0, units='cm**2'), promotes=['*'])
+ model.add_subsystem('xc_a3', om.IndepVarComp('area3', 5.0, units='cm**2'), promotes=['*'])
+ model.add_subsystem('xi_m1', om.IndepVarComp('mat1', 1), promotes=['*'])
+ model.add_subsystem('xi_m2', om.IndepVarComp('mat2', 1), promotes=['*'])
+ model.add_subsystem('xi_m3', om.IndepVarComp('mat3', 1), promotes=['*'])
model.add_subsystem('comp', ThreeBarTruss(), promotes=['*'])
model.add_subsystem('obj_with_penalty', ObjPenalty(), promotes=['*'])
@@ -773,14 +771,14 @@ def compute(self, inputs, outputs):
model.add_design_var('mat3', lower=1, upper=4)
model.add_objective('weighted')
- prob.driver = SimpleGADriver()
+ prob.driver = om.SimpleGADriver()
prob.driver.options['bits'] = {'area1': 6,
'area2': 6}
prob.driver.options['max_gen'] = 75
prob.driver._randomstate = 1
- prob.setup(check=False)
+ prob.setup()
prob['area3'] = 0.0005
prob.run_driver()
@@ -793,7 +791,7 @@ def compute(self, inputs, outputs):
# Material 3 can be anything
-@unittest.skipUnless(PETScVector, "PETSc is required.")
+@unittest.skipUnless(om.PETScVector, "PETSc is required.")
class MPITestSimpleGA4Procs(unittest.TestCase):
N_PROCS = 4
@@ -801,12 +799,12 @@ class MPITestSimpleGA4Procs(unittest.TestCase):
def test_two_branin_parallel_model(self):
np.random.seed(1)
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('p1', IndepVarComp('xC', 5))
- model.add_subsystem('p2', IndepVarComp('xI', 0.0))
- par = model.add_subsystem('par', ParallelGroup())
+ model.add_subsystem('p1', om.IndepVarComp('xC', 5))
+ model.add_subsystem('p2', om.IndepVarComp('xI', 0.0))
+ par = model.add_subsystem('par', om.ParallelGroup())
par.add_subsystem('comp1', Branin())
par.add_subsystem('comp2', Branin())
@@ -816,7 +814,7 @@ def test_two_branin_parallel_model(self):
model.connect('p2.xI', 'par.comp2.x0')
model.connect('p1.xC', 'par.comp2.x1')
- model.add_subsystem('comp', ExecComp('f = f1 + f2'))
+ model.add_subsystem('comp', om.ExecComp('f = f1 + f2'))
model.connect('par.comp1.f', 'comp.f1')
model.connect('par.comp2.f', 'comp.f2')
@@ -824,7 +822,7 @@ def test_two_branin_parallel_model(self):
model.add_design_var('p1.xC', lower=0.0, upper=15.0)
model.add_objective('comp.f')
- prob.driver = SimpleGADriver()
+ prob.driver = om.SimpleGADriver()
prob.driver.options['bits'] = {'p1.xC': 8}
prob.driver.options['max_gen'] = 10
prob.driver.options['pop_size'] = 25
@@ -833,7 +831,7 @@ def test_two_branin_parallel_model(self):
prob.driver._randomstate = 1
- prob.setup(check=False)
+ prob.setup()
prob.run_driver()
# Optimal solution
@@ -841,11 +839,11 @@ def test_two_branin_parallel_model(self):
self.assertTrue(int(prob['p2.xI']) in [3, -3])
def test_indivisible_error(self):
- prob = Problem()
- model = prob.model = Group()
- model.add_subsystem('par', ParallelGroup())
+ prob = om.Problem()
+ model = prob.model
+ model.add_subsystem('par', om.ParallelGroup())
- prob.driver = SimpleGADriver()
+ prob.driver = om.SimpleGADriver()
prob.driver.options['run_parallel'] = True
prob.driver.options['procs_per_model'] = 3
@@ -862,25 +860,25 @@ def test_concurrent_eval_padded(self):
# This test only makes sure we don't lock up if we overallocate our integer desvar space
# to the next power of 2.
- class GAGroup(Group):
+ class GAGroup(om.Group):
def setup(self):
- self.add_subsystem('p1', IndepVarComp('x', 1.0))
- self.add_subsystem('p2', IndepVarComp('y', 1.0))
- self.add_subsystem('p3', IndepVarComp('z', 1.0))
+ self.add_subsystem('p1', om.IndepVarComp('x', 1.0))
+ self.add_subsystem('p2', om.IndepVarComp('y', 1.0))
+ self.add_subsystem('p3', om.IndepVarComp('z', 1.0))
- self.add_subsystem('comp', ExecComp(['f = x + y + z']))
+ self.add_subsystem('comp', om.ExecComp(['f = x + y + z']))
self.add_design_var('p1.x', lower=-100, upper=100)
self.add_design_var('p2.y', lower=-100, upper=100)
self.add_design_var('p3.z', lower=-100, upper=100)
self.add_objective('comp.f')
- prob = Problem()
+ prob = om.Problem()
prob.model = GAGroup()
- driver = prob.driver = SimpleGADriver()
+ driver = prob.driver = om.SimpleGADriver()
driver.options['max_gen'] = 5
driver.options['pop_size'] = 40
driver.options['run_parallel'] = True
@@ -901,14 +899,14 @@ def setUp(self):
os.environ['SimpleGADriver_seed'] = '11'
def test_basic(self):
- from openmdao.api import Problem, Group, IndepVarComp, SimpleGADriver
+ import openmdao.api as om
from openmdao.test_suite.components.branin import Branin
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('p1', IndepVarComp('xC', 7.5))
- model.add_subsystem('p2', IndepVarComp('xI', 0.0))
+ model.add_subsystem('p1', om.IndepVarComp('xC', 7.5))
+ model.add_subsystem('p2', om.IndepVarComp('xI', 0.0))
model.add_subsystem('comp', Branin())
model.connect('p2.xI', 'comp.x0')
@@ -918,7 +916,7 @@ def test_basic(self):
model.add_design_var('p1.xC', lower=0.0, upper=15.0)
model.add_objective('comp.f')
- prob.driver = SimpleGADriver()
+ prob.driver = om.SimpleGADriver()
prob.driver.options['bits'] = {'p1.xC': 8}
prob.setup()
@@ -930,14 +928,14 @@ def test_basic(self):
print('p1.xC', prob['p1.xC'])
def test_basic_with_assert(self):
- from openmdao.api import Problem, Group, IndepVarComp, SimpleGADriver
+ import openmdao.api as om
from openmdao.test_suite.components.branin import Branin
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('p1', IndepVarComp('xC', 7.5))
- model.add_subsystem('p2', IndepVarComp('xI', 0.0))
+ model.add_subsystem('p1', om.IndepVarComp('xC', 7.5))
+ model.add_subsystem('p2', om.IndepVarComp('xI', 0.0))
model.add_subsystem('comp', Branin())
model.connect('p2.xI', 'comp.x0')
@@ -947,7 +945,7 @@ def test_basic_with_assert(self):
model.add_design_var('p1.xC', lower=0.0, upper=15.0)
model.add_objective('comp.f')
- prob.driver = SimpleGADriver()
+ prob.driver = om.SimpleGADriver()
prob.driver.options['bits'] = {'p1.xC': 8}
prob.driver._randomstate = 1
@@ -959,14 +957,14 @@ def test_basic_with_assert(self):
assert_rel_error(self, prob['comp.f'], 0.49399549, 1e-4)
def test_option_max_gen(self):
- from openmdao.api import Problem, Group, IndepVarComp, SimpleGADriver
+ import openmdao.api as om
from openmdao.test_suite.components.branin import Branin
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('p1', IndepVarComp('xC', 7.5))
- model.add_subsystem('p2', IndepVarComp('xI', 0.0))
+ model.add_subsystem('p1', om.IndepVarComp('xC', 7.5))
+ model.add_subsystem('p2', om.IndepVarComp('xI', 0.0))
model.add_subsystem('comp', Branin())
model.connect('p2.xI', 'comp.x0')
@@ -976,7 +974,7 @@ def test_option_max_gen(self):
model.add_design_var('p1.xC', lower=0.0, upper=15.0)
model.add_objective('comp.f')
- prob.driver = SimpleGADriver()
+ prob.driver = om.SimpleGADriver()
prob.driver.options['bits'] = {'p1.xC': 8}
prob.driver.options['max_gen'] = 5
@@ -989,14 +987,14 @@ def test_option_max_gen(self):
print('p1.xC', prob['p1.xC'])
def test_option_pop_size(self):
- from openmdao.api import Problem, Group, IndepVarComp, SimpleGADriver
+ import openmdao.api as om
from openmdao.test_suite.components.branin import Branin
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('p1', IndepVarComp('xC', 7.5))
- model.add_subsystem('p2', IndepVarComp('xI', 0.0))
+ model.add_subsystem('p1', om.IndepVarComp('xC', 7.5))
+ model.add_subsystem('p2', om.IndepVarComp('xI', 0.0))
model.add_subsystem('comp', Branin())
model.connect('p2.xI', 'comp.x0')
@@ -1006,7 +1004,7 @@ def test_option_pop_size(self):
model.add_design_var('p1.xC', lower=0.0, upper=15.0)
model.add_objective('comp.f')
- prob.driver = SimpleGADriver()
+ prob.driver = om.SimpleGADriver()
prob.driver.options['bits'] = {'p1.xC': 8}
prob.driver.options['pop_size'] = 10
@@ -1019,9 +1017,9 @@ def test_option_pop_size(self):
print('p1.xC', prob['p1.xC'])
def test_constrained_with_penalty(self):
- from openmdao.api import ExplicitComponent, Problem, IndepVarComp, SimpleGADriver
+ import openmdao.api as om
- class Cylinder(ExplicitComponent):
+ class Cylinder(om.ExplicitComponent):
"""Main class"""
def setup(self):
@@ -1040,15 +1038,15 @@ def compute(self, inputs, outputs):
outputs['Area'] = area
outputs['Volume'] = volume
- prob = Problem()
+ prob = om.Problem()
prob.model.add_subsystem('cylinder', Cylinder(), promotes=['*'])
- indeps = prob.model.add_subsystem('indeps', IndepVarComp(), promotes=['*'])
+ indeps = prob.model.add_subsystem('indeps', om.IndepVarComp(), promotes=['*'])
indeps.add_output('radius', 2.) # height
indeps.add_output('height', 3.) # radius
# setup the optimization
- prob.driver = SimpleGADriver()
+ prob.driver = om.SimpleGADriver()
prob.driver.options['penalty_parameter'] = 3.
prob.driver.options['penalty_exponent'] = 1.
prob.driver.options['max_gen'] = 50
@@ -1068,20 +1066,20 @@ def compute(self, inputs, outputs):
self.assertGreater(prob['height'], 1.)
-@unittest.skipUnless(PETScVector, "PETSc is required.")
+@unittest.skipUnless(om.PETScVector, "PETSc is required.")
@unittest.skipUnless(MPI, "MPI is required.")
class MPIFeatureTests(unittest.TestCase):
N_PROCS = 2
def test_option_parallel(self):
- from openmdao.api import Problem, Group, IndepVarComp, SimpleGADriver
+ import openmdao.api as om
from openmdao.test_suite.components.branin import Branin
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('p1', IndepVarComp('xC', 7.5))
- model.add_subsystem('p2', IndepVarComp('xI', 0.0))
+ model.add_subsystem('p1', om.IndepVarComp('xC', 7.5))
+ model.add_subsystem('p2', om.IndepVarComp('xI', 0.0))
model.add_subsystem('comp', Branin())
model.connect('p2.xI', 'comp.x0')
@@ -1091,12 +1089,12 @@ def test_option_parallel(self):
model.add_design_var('p1.xC', lower=0.0, upper=15.0)
model.add_objective('comp.f')
- prob.driver = SimpleGADriver()
+ prob.driver = om.SimpleGADriver()
prob.driver.options['bits'] = {'p1.xC': 8}
prob.driver.options['max_gen'] = 10
prob.driver.options['run_parallel'] = True
- prob.setup(check=False)
+ prob.setup()
prob.run_driver()
# Optimal solution
@@ -1105,21 +1103,21 @@ def test_option_parallel(self):
print('p1.xC', prob['p1.xC'])
-@unittest.skipUnless(PETScVector, "PETSc is required.")
+@unittest.skipUnless(om.PETScVector, "PETSc is required.")
@unittest.skipUnless(MPI, "MPI is required.")
class MPIFeatureTests4(unittest.TestCase):
N_PROCS = 4
def test_option_procs_per_model(self):
- from openmdao.api import Problem, Group, IndepVarComp, SimpleGADriver, ParallelGroup
+ import openmdao.api as om
from openmdao.test_suite.components.branin import Branin
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('p1', IndepVarComp('xC', 7.5))
- model.add_subsystem('p2', IndepVarComp('xI', 0.0))
- par = model.add_subsystem('par', ParallelGroup())
+ model.add_subsystem('p1', om.IndepVarComp('xC', 7.5))
+ model.add_subsystem('p2', om.IndepVarComp('xI', 0.0))
+ par = model.add_subsystem('par', om.ParallelGroup())
par.add_subsystem('comp1', Branin())
par.add_subsystem('comp2', Branin())
@@ -1129,7 +1127,7 @@ def test_option_procs_per_model(self):
model.connect('p2.xI', 'par.comp2.x0')
model.connect('p1.xC', 'par.comp2.x1')
- model.add_subsystem('comp', ExecComp('f = f1 + f2'))
+ model.add_subsystem('comp', om.ExecComp('f = f1 + f2'))
model.connect('par.comp1.f', 'comp.f1')
model.connect('par.comp2.f', 'comp.f2')
@@ -1137,7 +1135,7 @@ def test_option_procs_per_model(self):
model.add_design_var('p1.xC', lower=0.0, upper=15.0)
model.add_objective('comp.f')
- prob.driver = SimpleGADriver()
+ prob.driver = om.SimpleGADriver()
prob.driver.options['bits'] = {'p1.xC': 8}
prob.driver.options['max_gen'] = 10
prob.driver.options['pop_size'] = 25
@@ -1146,7 +1144,7 @@ def test_option_procs_per_model(self):
prob.driver._randomstate = 1
- prob.setup(check=False)
+ prob.setup()
prob.run_driver()
# Optimal solution
diff --git a/openmdao/drivers/tests/test_pyoptsparse_driver.py b/openmdao/drivers/tests/test_pyoptsparse_driver.py
index 0bde239ec9..e62390fa39 100644
--- a/openmdao/drivers/tests/test_pyoptsparse_driver.py
+++ b/openmdao/drivers/tests/test_pyoptsparse_driver.py
@@ -8,12 +8,11 @@
import numpy as np
-from openmdao.api import Problem, Group, IndepVarComp, ExecComp, AnalysisError, ExplicitComponent, \
- ScipyKrylov, NonlinearBlockGS, LinearBlockGS, DirectSolver
-from openmdao.utils.assert_utils import assert_rel_error
+import openmdao.api as om
from openmdao.test_suite.components.paraboloid import Paraboloid
from openmdao.test_suite.components.expl_comp_array import TestExplCompArrayDense
from openmdao.test_suite.components.sellar import SellarDerivativesGrouped
+from openmdao.utils.assert_utils import assert_rel_error
from openmdao.utils.general_utils import set_pyoptsparse_opt, run_driver
from openmdao.utils.testing_utils import use_tempdirs
@@ -25,7 +24,7 @@
from openmdao.drivers.pyoptsparse_driver import pyOptSparseDriver
-class ParaboloidAE(ExplicitComponent):
+class ParaboloidAE(om.ExplicitComponent):
""" Evaluates the equation f(x,y) = (x-3)^2 + xy + (y+4)^2 - 3
This version raises an analysis error 50% of the time.
The AE in ParaboloidAE stands for AnalysisError."""
@@ -58,7 +57,7 @@ def compute(self, inputs, outputs):
if self.fail_hard:
raise RuntimeError('This should error.')
else:
- raise AnalysisError('Try again.')
+ raise om.AnalysisError('Try again.')
x = inputs['x']
y = inputs['y']
@@ -75,7 +74,7 @@ def compute_partials(self, inputs, partials):
if self.fail_hard:
raise RuntimeError('This should error.')
else:
- raise AnalysisError('Try again.')
+ raise om.AnalysisError('Try again.')
x = inputs['x']
y = inputs['y']
@@ -85,7 +84,7 @@ def compute_partials(self, inputs, partials):
self.grad_iter_count += 1
-class DataSave(ExplicitComponent):
+class DataSave(om.ExplicitComponent):
""" Saves run points so that we can verify that initial point is run."""
def setup(self):
@@ -112,13 +111,13 @@ class TestPyoptSparse(unittest.TestCase):
def test_simple_paraboloid_upper(self):
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', 50.0), promotes=['*'])
- model.add_subsystem('p2', IndepVarComp('y', 50.0), promotes=['*'])
+ model.add_subsystem('p1', om.IndepVarComp('x', 50.0), promotes=['*'])
+ model.add_subsystem('p2', om.IndepVarComp('y', 50.0), promotes=['*'])
model.add_subsystem('comp', Paraboloid(), promotes=['*'])
- model.add_subsystem('con', ExecComp('c = - x + y'), promotes=['*'])
+ model.add_subsystem('con', om.ExecComp('c = - x + y'), promotes=['*'])
prob.set_solver_print(level=0)
@@ -131,7 +130,7 @@ def test_simple_paraboloid_upper(self):
model.add_objective('f_xy')
model.add_constraint('c', upper=-15.0)
- prob.setup(check=False)
+ prob.setup()
failed = prob.run_driver()
@@ -144,18 +143,18 @@ def test_simple_paraboloid_upper(self):
def test_simple_paraboloid_upper_indices(self):
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
size = 3
- model.add_subsystem('p1', IndepVarComp('x', np.array([50.0]*size)))
- model.add_subsystem('p2', IndepVarComp('y', np.array([50.0]*size)))
- model.add_subsystem('comp', ExecComp('f_xy = (x-3.0)**2 + x*y + (y+4.0)**2 - 3.0',
- x=np.zeros(size), y=np.zeros(size),
- f_xy=np.zeros(size)))
- model.add_subsystem('con', ExecComp('c = - x + y',
- c=np.zeros(size), x=np.zeros(size),
- y=np.zeros(size)))
+ model.add_subsystem('p1', om.IndepVarComp('x', np.array([50.0]*size)))
+ model.add_subsystem('p2', om.IndepVarComp('y', np.array([50.0]*size)))
+ model.add_subsystem('comp', om.ExecComp('f_xy = (x-3.0)**2 + x*y + (y+4.0)**2 - 3.0',
+ x=np.zeros(size), y=np.zeros(size),
+ f_xy=np.zeros(size)))
+ model.add_subsystem('con', om.ExecComp('c = - x + y',
+ c=np.zeros(size), x=np.zeros(size),
+ y=np.zeros(size)))
model.connect('p1.x', 'comp.x')
model.connect('p2.y', 'comp.y')
@@ -175,7 +174,7 @@ def test_simple_paraboloid_upper_indices(self):
model.add_objective('comp.f_xy', index=1)
model.add_constraint('con.c', indices=[1], upper=-15.0)
- prob.setup(check=False)
+ prob.setup()
failed = prob.run_driver()
@@ -188,13 +187,13 @@ def test_simple_paraboloid_upper_indices(self):
def test_simple_paraboloid_lower(self):
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', 50.0), promotes=['*'])
- model.add_subsystem('p2', IndepVarComp('y', 50.0), promotes=['*'])
+ model.add_subsystem('p1', om.IndepVarComp('x', 50.0), promotes=['*'])
+ model.add_subsystem('p2', om.IndepVarComp('y', 50.0), promotes=['*'])
model.add_subsystem('comp', Paraboloid(), promotes=['*'])
- model.add_subsystem('con', ExecComp('c = x - y'), promotes=['*'])
+ model.add_subsystem('con', om.ExecComp('c = x - y'), promotes=['*'])
prob.set_solver_print(level=0)
@@ -210,7 +209,7 @@ def test_simple_paraboloid_lower(self):
model.add_objective('f_xy')
model.add_constraint('c', lower=15.0)
- prob.setup(check=False)
+ prob.setup()
failed = prob.run_driver()
@@ -223,13 +222,13 @@ def test_simple_paraboloid_lower(self):
def test_simple_paraboloid_lower_linear(self):
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', 50.0), promotes=['*'])
- model.add_subsystem('p2', IndepVarComp('y', 50.0), promotes=['*'])
+ model.add_subsystem('p1', om.IndepVarComp('x', 50.0), promotes=['*'])
+ model.add_subsystem('p2', om.IndepVarComp('y', 50.0), promotes=['*'])
model.add_subsystem('comp', Paraboloid(), promotes=['*'])
- model.add_subsystem('con', ExecComp('c = x - y'), promotes=['*'])
+ model.add_subsystem('con', om.ExecComp('c = x - y'), promotes=['*'])
prob.set_solver_print(level=0)
@@ -244,7 +243,7 @@ def test_simple_paraboloid_lower_linear(self):
model.add_objective('f_xy')
model.add_constraint('c', lower=15.0, linear=True)
- prob.setup(check=False)
+ prob.setup()
failed = prob.run_driver()
@@ -259,13 +258,13 @@ def test_simple_paraboloid_lower_linear(self):
def test_simple_paraboloid_equality(self):
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', 50.0), promotes=['*'])
- model.add_subsystem('p2', IndepVarComp('y', 50.0), promotes=['*'])
+ model.add_subsystem('p1', om.IndepVarComp('x', 50.0), promotes=['*'])
+ model.add_subsystem('p2', om.IndepVarComp('y', 50.0), promotes=['*'])
model.add_subsystem('comp', Paraboloid(), promotes=['*'])
- model.add_subsystem('con', ExecComp('c = - x + y'), promotes=['*'])
+ model.add_subsystem('con', om.ExecComp('c = - x + y'), promotes=['*'])
prob.set_solver_print(level=0)
@@ -280,7 +279,7 @@ def test_simple_paraboloid_equality(self):
model.add_objective('f_xy')
model.add_constraint('c', equals=-15.0)
- prob.setup(check=False)
+ prob.setup()
failed = prob.run_driver()
@@ -293,13 +292,13 @@ def test_simple_paraboloid_equality(self):
def test_simple_paraboloid_equality_linear(self):
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', 50.0), promotes=['*'])
- model.add_subsystem('p2', IndepVarComp('y', 50.0), promotes=['*'])
+ model.add_subsystem('p1', om.IndepVarComp('x', 50.0), promotes=['*'])
+ model.add_subsystem('p2', om.IndepVarComp('y', 50.0), promotes=['*'])
model.add_subsystem('comp', Paraboloid(), promotes=['*'])
- model.add_subsystem('con', ExecComp('c = - x + y'), promotes=['*'])
+ model.add_subsystem('con', om.ExecComp('c = - x + y'), promotes=['*'])
prob.set_solver_print(level=0)
@@ -314,7 +313,7 @@ def test_simple_paraboloid_equality_linear(self):
model.add_objective('f_xy')
model.add_constraint('c', equals=-15.0, linear=True)
- prob.setup(check=False)
+ prob.setup()
failed = prob.run_driver()
@@ -327,13 +326,13 @@ def test_simple_paraboloid_equality_linear(self):
def test_simple_paraboloid_double_sided_low(self):
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', 50.0), promotes=['*'])
- model.add_subsystem('p2', IndepVarComp('y', 50.0), promotes=['*'])
+ model.add_subsystem('p1', om.IndepVarComp('x', 50.0), promotes=['*'])
+ model.add_subsystem('p2', om.IndepVarComp('y', 50.0), promotes=['*'])
model.add_subsystem('comp', Paraboloid(), promotes=['*'])
- model.add_subsystem('con', ExecComp('c = - x + y'), promotes=['*'])
+ model.add_subsystem('con', om.ExecComp('c = - x + y'), promotes=['*'])
prob.set_solver_print(level=0)
@@ -346,7 +345,7 @@ def test_simple_paraboloid_double_sided_low(self):
model.add_objective('f_xy')
model.add_constraint('c', lower=-11.0, upper=-10.0)
- prob.setup(check=False)
+ prob.setup()
failed = prob.run_driver()
@@ -358,13 +357,13 @@ def test_simple_paraboloid_double_sided_low(self):
def test_simple_paraboloid_double_sided_high(self):
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', 50.0), promotes=['*'])
- model.add_subsystem('p2', IndepVarComp('y', 50.0), promotes=['*'])
+ model.add_subsystem('p1', om.IndepVarComp('x', 50.0), promotes=['*'])
+ model.add_subsystem('p2', om.IndepVarComp('y', 50.0), promotes=['*'])
model.add_subsystem('comp', Paraboloid(), promotes=['*'])
- model.add_subsystem('con', ExecComp('c = x - y'), promotes=['*'])
+ model.add_subsystem('con', om.ExecComp('c = x - y'), promotes=['*'])
prob.set_solver_print(level=0)
@@ -389,14 +388,14 @@ def test_simple_paraboloid_double_sided_high(self):
def test_simple_array_comp2D(self):
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('p1', IndepVarComp('widths', np.zeros((2, 2))), promotes=['*'])
+ model.add_subsystem('p1', om.IndepVarComp('widths', np.zeros((2, 2))), promotes=['*'])
model.add_subsystem('comp', TestExplCompArrayDense(), promotes=['*'])
- model.add_subsystem('con', ExecComp('c = areas - 20.0', c=np.zeros((2, 2)), areas=np.zeros((2, 2))),
+ model.add_subsystem('con', om.ExecComp('c = areas - 20.0', c=np.zeros((2, 2)), areas=np.zeros((2, 2))),
promotes=['*'])
- model.add_subsystem('obj', ExecComp('o = areas[0, 0]', areas=np.zeros((2, 2))),
+ model.add_subsystem('obj', om.ExecComp('o = areas[0, 0]', areas=np.zeros((2, 2))),
promotes=['*'])
prob.set_solver_print(level=0)
@@ -409,7 +408,7 @@ def test_simple_array_comp2D(self):
model.add_objective('o')
model.add_constraint('c', equals=0.0)
- prob.setup(check=False)
+ prob.setup()
failed = prob.run_driver()
@@ -421,14 +420,14 @@ def test_simple_array_comp2D(self):
def test_simple_array_comp2D_array_lo_hi(self):
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('p1', IndepVarComp('widths', np.zeros((2, 2))), promotes=['*'])
+ model.add_subsystem('p1', om.IndepVarComp('widths', np.zeros((2, 2))), promotes=['*'])
model.add_subsystem('comp', TestExplCompArrayDense(), promotes=['*'])
- model.add_subsystem('con', ExecComp('c = areas - 20.0', c=np.zeros((2, 2)), areas=np.zeros((2, 2))),
+ model.add_subsystem('con', om.ExecComp('c = areas - 20.0', c=np.zeros((2, 2)), areas=np.zeros((2, 2))),
promotes=['*'])
- model.add_subsystem('obj', ExecComp('o = areas[0, 0]', areas=np.zeros((2, 2))),
+ model.add_subsystem('obj', om.ExecComp('o = areas[0, 0]', areas=np.zeros((2, 2))),
promotes=['*'])
prob.set_solver_print(level=0)
@@ -441,7 +440,7 @@ def test_simple_array_comp2D_array_lo_hi(self):
model.add_objective('o')
model.add_constraint('c', equals=0.0)
- prob.setup(check=False)
+ prob.setup()
failed = prob.run_driver()
@@ -455,18 +454,18 @@ def test_fan_out(self):
# This tests sparse-response specification.
# This is a slightly modified FanOut
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', 1.0))
- model.add_subsystem('p2', IndepVarComp('x', 1.0))
+ model.add_subsystem('p1', om.IndepVarComp('x', 1.0))
+ model.add_subsystem('p2', om.IndepVarComp('x', 1.0))
- model.add_subsystem('comp1', ExecComp('y = 3.0*x'))
- model.add_subsystem('comp2', ExecComp('y = 5.0*x'))
+ model.add_subsystem('comp1', om.ExecComp('y = 3.0*x'))
+ model.add_subsystem('comp2', om.ExecComp('y = 5.0*x'))
- model.add_subsystem('obj', ExecComp('o = i1 + i2'))
- model.add_subsystem('con1', ExecComp('c = 15.0 - x'))
- model.add_subsystem('con2', ExecComp('c = 15.0 - x'))
+ model.add_subsystem('obj', om.ExecComp('o = i1 + i2'))
+ model.add_subsystem('con1', om.ExecComp('c = 15.0 - x'))
+ model.add_subsystem('con2', om.ExecComp('c = 15.0 - x'))
# hook up explicitly
model.connect('p1.x', 'comp1.x')
@@ -488,7 +487,7 @@ def test_fan_out(self):
model.add_constraint('con1.c', equals=0.0)
model.add_constraint('con2.c', equals=0.0)
- prob.setup(check=False)
+ prob.setup()
failed = prob.run_driver()
@@ -510,13 +509,13 @@ def test_inf_as_desvar_bounds(self):
# may do it anyway, so make sure SLSQP doesn't blow up with it (bug
# reported by rfalck)
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', 50.0), promotes=['*'])
- model.add_subsystem('p2', IndepVarComp('y', 50.0), promotes=['*'])
+ model.add_subsystem('p1', om.IndepVarComp('x', 50.0), promotes=['*'])
+ model.add_subsystem('p2', om.IndepVarComp('y', 50.0), promotes=['*'])
model.add_subsystem('comp', Paraboloid(), promotes=['*'])
- model.add_subsystem('con', ExecComp('c = - x + y'), promotes=['*'])
+ model.add_subsystem('con', om.ExecComp('c = - x + y'), promotes=['*'])
prob.set_solver_print(level=0)
@@ -530,7 +529,7 @@ def test_inf_as_desvar_bounds(self):
model.add_objective('f_xy')
model.add_constraint('c', upper=-15.0)
- prob.setup(check=False)
+ prob.setup()
failed = prob.run_driver()
@@ -543,15 +542,15 @@ def test_inf_as_desvar_bounds(self):
def test_pyopt_fd_solution(self):
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', 50.0), promotes=['*'])
- model.add_subsystem('p2', IndepVarComp('y', 50.0), promotes=['*'])
+ model.add_subsystem('p1', om.IndepVarComp('x', 50.0), promotes=['*'])
+ model.add_subsystem('p2', om.IndepVarComp('y', 50.0), promotes=['*'])
model.add_subsystem('comp', Paraboloid(), promotes=['*'])
- model.add_subsystem('con', ExecComp('c = - x + y'), promotes=['*'])
+ model.add_subsystem('con', om.ExecComp('c = - x + y'), promotes=['*'])
prob.set_solver_print(level=0)
@@ -565,7 +564,7 @@ def test_pyopt_fd_solution(self):
model.add_objective('f_xy')
model.add_constraint('c', upper=-15.0)
- prob.setup(check=False)
+ prob.setup()
failed = prob.run_driver()
@@ -583,15 +582,15 @@ def apply_linear(params, unknowns, resids):
raise Exception("OpenMDAO's finite difference has been called."
" pyopt_fd option has failed.")
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', 50.0), promotes=['*'])
- model.add_subsystem('p2', IndepVarComp('y', 50.0), promotes=['*'])
+ model.add_subsystem('p1', om.IndepVarComp('x', 50.0), promotes=['*'])
+ model.add_subsystem('p2', om.IndepVarComp('y', 50.0), promotes=['*'])
model.add_subsystem('comp', ParaboloidApplyLinear(), promotes=['*'])
- model.add_subsystem('con', ExecComp('c = - x + y'), promotes=['*'])
+ model.add_subsystem('con', om.ExecComp('c = - x + y'), promotes=['*'])
prob.set_solver_print(level=0)
@@ -605,7 +604,7 @@ def apply_linear(params, unknowns, resids):
model.add_objective('f_xy')
model.add_constraint('c', upper=-15.0)
- prob.setup(check=False)
+ prob.setup()
failed = prob.run_driver()
@@ -618,15 +617,15 @@ def apply_linear(params, unknowns, resids):
def test_snopt_fd_option_error(self):
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', 50.0), promotes=['*'])
- model.add_subsystem('p2', IndepVarComp('y', 50.0), promotes=['*'])
+ model.add_subsystem('p1', om.IndepVarComp('x', 50.0), promotes=['*'])
+ model.add_subsystem('p2', om.IndepVarComp('y', 50.0), promotes=['*'])
model.add_subsystem('comp', Paraboloid(), promotes=['*'])
- model.add_subsystem('con', ExecComp('c = - x + y'), promotes=['*'])
+ model.add_subsystem('con', om.ExecComp('c = - x + y'), promotes=['*'])
prob.set_solver_print(level=0)
@@ -640,7 +639,7 @@ def test_snopt_fd_option_error(self):
model.add_objective('f_xy')
model.add_constraint('c', upper=-15.0)
- prob.setup(check=False)
+ prob.setup()
with self.assertRaises(Exception) as raises_cm:
prob.run_driver()
@@ -652,16 +651,16 @@ def test_snopt_fd_option_error(self):
self.assertEqual(exception.args[0], msg)
def test_unsupported_multiple_obj(self):
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', 50.0), promotes=['*'])
- model.add_subsystem('p2', IndepVarComp('y', 50.0), promotes=['*'])
+ model.add_subsystem('p1', om.IndepVarComp('x', 50.0), promotes=['*'])
+ model.add_subsystem('p2', om.IndepVarComp('y', 50.0), promotes=['*'])
model.add_subsystem('comp', Paraboloid(), promotes=['*'])
model.add_subsystem('comp2', Paraboloid())
- model.add_subsystem('con', ExecComp('c = - x + y'), promotes=['*'])
+ model.add_subsystem('con', om.ExecComp('c = - x + y'), promotes=['*'])
prob.set_solver_print(level=0)
@@ -680,7 +679,7 @@ def test_unsupported_multiple_obj(self):
' but the selected optimizer (SLSQP) does not support' \
' multiple objectives.'
- prob.setup(check=False)
+ prob.setup()
with self.assertRaises(RuntimeError) as cm:
prob.final_setup()
@@ -689,13 +688,13 @@ def test_unsupported_multiple_obj(self):
def test_simple_paraboloid_scaled_desvars_fwd(self):
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', 50.0), promotes=['*'])
- model.add_subsystem('p2', IndepVarComp('y', 50.0), promotes=['*'])
+ model.add_subsystem('p1', om.IndepVarComp('x', 50.0), promotes=['*'])
+ model.add_subsystem('p2', om.IndepVarComp('y', 50.0), promotes=['*'])
model.add_subsystem('comp', Paraboloid(), promotes=['*'])
- model.add_subsystem('con', ExecComp('c = x - y'), promotes=['*'])
+ model.add_subsystem('con', om.ExecComp('c = x - y'), promotes=['*'])
prob.set_solver_print(level=0)
@@ -721,13 +720,13 @@ def test_simple_paraboloid_scaled_desvars_fwd(self):
assert_rel_error(self, prob['x'] - prob['y'], 11.0, 1e-6)
def test_simple_paraboloid_scaled_desvars_fd(self):
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', 50.0), promotes=['*'])
- model.add_subsystem('p2', IndepVarComp('y', 50.0), promotes=['*'])
+ model.add_subsystem('p1', om.IndepVarComp('x', 50.0), promotes=['*'])
+ model.add_subsystem('p2', om.IndepVarComp('y', 50.0), promotes=['*'])
model.add_subsystem('comp', Paraboloid(), promotes=['*'])
- model.add_subsystem('con', ExecComp('c = x - y'), promotes=['*'])
+ model.add_subsystem('con', om.ExecComp('c = x - y'), promotes=['*'])
prob.set_solver_print(level=0)
@@ -744,7 +743,7 @@ def test_simple_paraboloid_scaled_desvars_fd(self):
model.approx_totals(method='fd')
- prob.setup(check=False)
+ prob.setup()
failed = prob.run_driver()
@@ -755,13 +754,13 @@ def test_simple_paraboloid_scaled_desvars_fd(self):
assert_rel_error(self, prob['x'] - prob['y'], 11.0, 1e-6)
def test_simple_paraboloid_scaled_desvars_cs(self):
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', 50.0), promotes=['*'])
- model.add_subsystem('p2', IndepVarComp('y', 50.0), promotes=['*'])
+ model.add_subsystem('p1', om.IndepVarComp('x', 50.0), promotes=['*'])
+ model.add_subsystem('p2', om.IndepVarComp('y', 50.0), promotes=['*'])
model.add_subsystem('comp', Paraboloid(), promotes=['*'])
- model.add_subsystem('con', ExecComp('c = x - y'), promotes=['*'])
+ model.add_subsystem('con', om.ExecComp('c = x - y'), promotes=['*'])
prob.set_solver_print(level=0)
@@ -778,7 +777,7 @@ def test_simple_paraboloid_scaled_desvars_cs(self):
model.approx_totals(method='cs')
- prob.setup(check=False)
+ prob.setup()
failed = prob.run_driver()
@@ -790,13 +789,13 @@ def test_simple_paraboloid_scaled_desvars_cs(self):
def test_simple_paraboloid_scaled_desvars_rev(self):
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', 50.0), promotes=['*'])
- model.add_subsystem('p2', IndepVarComp('y', 50.0), promotes=['*'])
+ model.add_subsystem('p1', om.IndepVarComp('x', 50.0), promotes=['*'])
+ model.add_subsystem('p2', om.IndepVarComp('y', 50.0), promotes=['*'])
model.add_subsystem('comp', Paraboloid(), promotes=['*'])
- model.add_subsystem('con', ExecComp('c = x - y'), promotes=['*'])
+ model.add_subsystem('con', om.ExecComp('c = x - y'), promotes=['*'])
prob.set_solver_print(level=0)
@@ -823,13 +822,13 @@ def test_simple_paraboloid_scaled_desvars_rev(self):
def test_simple_paraboloid_scaled_constraint_fwd(self):
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', 50.0), promotes=['*'])
- model.add_subsystem('p2', IndepVarComp('y', 50.0), promotes=['*'])
+ model.add_subsystem('p1', om.IndepVarComp('x', 50.0), promotes=['*'])
+ model.add_subsystem('p2', om.IndepVarComp('y', 50.0), promotes=['*'])
model.add_subsystem('comp', Paraboloid(), promotes=['*'])
- model.add_subsystem('con', ExecComp('c = x - y'), promotes=['*'])
+ model.add_subsystem('con', om.ExecComp('c = x - y'), promotes=['*'])
prob.set_solver_print(level=0)
@@ -855,13 +854,13 @@ def test_simple_paraboloid_scaled_constraint_fwd(self):
assert_rel_error(self, prob['x'] - prob['y'], 11.0, 1e-6)
def test_simple_paraboloid_scaled_constraint_fd(self):
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', 50.0), promotes=['*'])
- model.add_subsystem('p2', IndepVarComp('y', 50.0), promotes=['*'])
+ model.add_subsystem('p1', om.IndepVarComp('x', 50.0), promotes=['*'])
+ model.add_subsystem('p2', om.IndepVarComp('y', 50.0), promotes=['*'])
model.add_subsystem('comp', Paraboloid(), promotes=['*'])
- model.add_subsystem('con', ExecComp('c = x - y'), promotes=['*'])
+ model.add_subsystem('con', om.ExecComp('c = x - y'), promotes=['*'])
prob.set_solver_print(level=0)
@@ -878,7 +877,7 @@ def test_simple_paraboloid_scaled_constraint_fd(self):
model.approx_totals(method='fd')
- prob.setup(check=False)
+ prob.setup()
failed = prob.run_driver()
@@ -889,13 +888,13 @@ def test_simple_paraboloid_scaled_constraint_fd(self):
assert_rel_error(self, prob['x'] - prob['y'], 11.0, 1e-6)
def test_simple_paraboloid_scaled_constraint_cs(self):
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', 50.0), promotes=['*'])
- model.add_subsystem('p2', IndepVarComp('y', 50.0), promotes=['*'])
+ model.add_subsystem('p1', om.IndepVarComp('x', 50.0), promotes=['*'])
+ model.add_subsystem('p2', om.IndepVarComp('y', 50.0), promotes=['*'])
model.add_subsystem('comp', Paraboloid(), promotes=['*'])
- model.add_subsystem('con', ExecComp('c = x - y'), promotes=['*'])
+ model.add_subsystem('con', om.ExecComp('c = x - y'), promotes=['*'])
prob.set_solver_print(level=0)
@@ -912,7 +911,7 @@ def test_simple_paraboloid_scaled_constraint_cs(self):
model.approx_totals(method='cs')
- prob.setup(check=False)
+ prob.setup()
failed = prob.run_driver()
@@ -924,13 +923,13 @@ def test_simple_paraboloid_scaled_constraint_cs(self):
def test_simple_paraboloid_scaled_constraint_rev(self):
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', 50.0), promotes=['*'])
- model.add_subsystem('p2', IndepVarComp('y', 50.0), promotes=['*'])
+ model.add_subsystem('p1', om.IndepVarComp('x', 50.0), promotes=['*'])
+ model.add_subsystem('p2', om.IndepVarComp('y', 50.0), promotes=['*'])
model.add_subsystem('comp', Paraboloid(), promotes=['*'])
- model.add_subsystem('con', ExecComp('c = x - y'), promotes=['*'])
+ model.add_subsystem('con', om.ExecComp('c = x - y'), promotes=['*'])
prob.set_solver_print(level=0)
@@ -957,15 +956,15 @@ def test_simple_paraboloid_scaled_constraint_rev(self):
def test_simple_paraboloid_scaled_objective_fwd(self):
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
prob.set_solver_print(level=0)
- model.add_subsystem('p1', IndepVarComp('x', 50.0), promotes=['*'])
- model.add_subsystem('p2', IndepVarComp('y', 50.0), promotes=['*'])
+ model.add_subsystem('p1', om.IndepVarComp('x', 50.0), promotes=['*'])
+ model.add_subsystem('p2', om.IndepVarComp('y', 50.0), promotes=['*'])
model.add_subsystem('comp', Paraboloid(), promotes=['*'])
- model.add_subsystem('con', ExecComp('c = x - y'), promotes=['*'])
+ model.add_subsystem('con', om.ExecComp('c = x - y'), promotes=['*'])
prob.driver = pyOptSparseDriver()
prob.driver.options['optimizer'] = OPTIMIZER
@@ -990,15 +989,15 @@ def test_simple_paraboloid_scaled_objective_fwd(self):
def test_simple_paraboloid_scaled_objective_rev(self):
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
prob.set_solver_print(level=0)
- model.add_subsystem('p1', IndepVarComp('x', 50.0), promotes=['*'])
- model.add_subsystem('p2', IndepVarComp('y', 50.0), promotes=['*'])
+ model.add_subsystem('p1', om.IndepVarComp('x', 50.0), promotes=['*'])
+ model.add_subsystem('p2', om.IndepVarComp('y', 50.0), promotes=['*'])
model.add_subsystem('comp', Paraboloid(), promotes=['*'])
- model.add_subsystem('con', ExecComp('c = x - y'), promotes=['*'])
+ model.add_subsystem('con', om.ExecComp('c = x - y'), promotes=['*'])
prob.driver = pyOptSparseDriver()
prob.driver.options['optimizer'] = OPTIMIZER
@@ -1023,7 +1022,7 @@ def test_simple_paraboloid_scaled_objective_rev(self):
def test_sellar_mdf(self):
- prob = Problem()
+ prob = om.Problem()
model = prob.model = SellarDerivativesGrouped()
prob.driver = pyOptSparseDriver()
@@ -1055,7 +1054,7 @@ def test_sellar_mdf_linear_con_directsolver(self):
# This test makes sure that we call solve_nonlinear first if we have any linear constraints
# to cache.
- class SellarDis1withDerivatives(ExplicitComponent):
+ class SellarDis1withDerivatives(om.ExplicitComponent):
def setup(self):
self.add_input('z', val=np.zeros(2))
@@ -1079,7 +1078,7 @@ def compute_partials(self, inputs, partials):
partials['y1', 'x'] = 1.0
- class SellarDis2withDerivatives(ExplicitComponent):
+ class SellarDis2withDerivatives(om.ExplicitComponent):
def setup(self):
self.add_input('z', val=np.zeros(2))
@@ -1107,28 +1106,28 @@ def compute_partials(self, inputs, J):
J['y2', 'z'] = np.array([[1.0, 1.0]])
- class MySellarGroup(Group):
+ class MySellarGroup(om.Group):
def setup(self):
- self.add_subsystem('px', IndepVarComp('x', 1.0), promotes=['x'])
- self.add_subsystem('pz', IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
+ self.add_subsystem('px', om.IndepVarComp('x', 1.0), promotes=['x'])
+ self.add_subsystem('pz', om.IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
- self.mda = mda = self.add_subsystem('mda', Group(), promotes=['x', 'z', 'y1', 'y2'])
+ self.mda = mda = self.add_subsystem('mda', om.Group(), promotes=['x', 'z', 'y1', 'y2'])
mda.add_subsystem('d1', SellarDis1withDerivatives(), promotes=['x', 'z', 'y1', 'y2'])
mda.add_subsystem('d2', SellarDis2withDerivatives(), promotes=['z', 'y1', 'y2'])
- self.add_subsystem('obj_cmp', ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
- z=np.array([0.0, 0.0]), x=0.0, y1=0.0, y2=0.0),
+ self.add_subsystem('obj_cmp', om.ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
+ z=np.array([0.0, 0.0]), x=0.0, y1=0.0, y2=0.0),
promotes=['obj', 'x', 'z', 'y1', 'y2'])
- self.add_subsystem('con_cmp1', ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
- self.add_subsystem('con_cmp2', ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
+ self.add_subsystem('con_cmp1', om.ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
+ self.add_subsystem('con_cmp2', om.ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
- self.linear_solver = DirectSolver()
- self.nonlinear_solver = NonlinearBlockGS()
+ self.linear_solver = om.DirectSolver()
+ self.nonlinear_solver = om.NonlinearBlockGS()
- prob = Problem()
+ prob = om.Problem()
model = prob.model = MySellarGroup()
prob.driver = pyOptSparseDriver()
@@ -1165,15 +1164,15 @@ def test_analysis_error_objfunc(self):
# Component raises an analysis error during some runs, and pyopt
# attempts to recover.
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', 50.0), promotes=['*'])
- model.add_subsystem('p2', IndepVarComp('y', 50.0), promotes=['*'])
+ model.add_subsystem('p1', om.IndepVarComp('x', 50.0), promotes=['*'])
+ model.add_subsystem('p2', om.IndepVarComp('y', 50.0), promotes=['*'])
model.add_subsystem('comp', ParaboloidAE(), promotes=['*'])
- model.add_subsystem('con', ExecComp('c = - x + y'), promotes=['*'])
+ model.add_subsystem('con', om.ExecComp('c = - x + y'), promotes=['*'])
prob.driver = pyOptSparseDriver()
prob.driver.options['optimizer'] = OPTIMIZER
@@ -1188,7 +1187,7 @@ def test_analysis_error_objfunc(self):
model.add_objective('f_xy')
model.add_constraint('c', upper=-15.0)
- prob.setup(check=False)
+ prob.setup()
failed = prob.run_driver()
@@ -1211,15 +1210,15 @@ def test_raised_error_objfunc(self):
# Component fails hard this time during execution, so we expect
# pyoptsparse to raise.
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', 50.0), promotes=['*'])
- model.add_subsystem('p2', IndepVarComp('y', 50.0), promotes=['*'])
+ model.add_subsystem('p1', om.IndepVarComp('x', 50.0), promotes=['*'])
+ model.add_subsystem('p2', om.IndepVarComp('y', 50.0), promotes=['*'])
comp = model.add_subsystem('comp', ParaboloidAE(), promotes=['*'])
- model.add_subsystem('con', ExecComp('c = - x + y'), promotes=['*'])
+ model.add_subsystem('con', om.ExecComp('c = - x + y'), promotes=['*'])
prob.driver = pyOptSparseDriver()
@@ -1237,7 +1236,7 @@ def test_raised_error_objfunc(self):
comp.fail_hard = True
- prob.setup(check=False)
+ prob.setup()
with self.assertRaises(Exception):
prob.run_driver()
@@ -1249,15 +1248,15 @@ def test_analysis_error_sensfunc(self):
# Component raises an analysis error during some linearize calls, and
# pyopt attempts to recover.
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', 50.0), promotes=['*'])
- model.add_subsystem('p2', IndepVarComp('y', 50.0), promotes=['*'])
+ model.add_subsystem('p1', om.IndepVarComp('x', 50.0), promotes=['*'])
+ model.add_subsystem('p2', om.IndepVarComp('y', 50.0), promotes=['*'])
comp = model.add_subsystem('comp', ParaboloidAE(), promotes=['*'])
- model.add_subsystem('con', ExecComp('c = - x + y'), promotes=['*'])
+ model.add_subsystem('con', om.ExecComp('c = - x + y'), promotes=['*'])
prob.driver = pyOptSparseDriver()
prob.driver.options['optimizer'] = OPTIMIZER
@@ -1275,7 +1274,7 @@ def test_analysis_error_sensfunc(self):
comp.grad_fail_at = 2
comp.eval_fail_at = 100
- prob.setup(check=False)
+ prob.setup()
failed = prob.run_driver()
@@ -1302,14 +1301,14 @@ def test_raised_error_sensfunc(self):
# Component fails hard this time during gradient eval, so we expect
# pyoptsparse to raise.
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', 50.0), promotes=['*'])
- model.add_subsystem('p2', IndepVarComp('y', 50.0), promotes=['*'])
+ model.add_subsystem('p1', om.IndepVarComp('x', 50.0), promotes=['*'])
+ model.add_subsystem('p2', om.IndepVarComp('y', 50.0), promotes=['*'])
comp = model.add_subsystem('comp', ParaboloidAE(), promotes=['*'])
- model.add_subsystem('con', ExecComp('c = - x + y'), promotes=['*'])
+ model.add_subsystem('con', om.ExecComp('c = - x + y'), promotes=['*'])
prob.driver = pyOptSparseDriver()
@@ -1329,7 +1328,7 @@ def test_raised_error_sensfunc(self):
comp.grad_fail_at = 2
comp.eval_fail_at = 100
- prob.setup(check=False)
+ prob.setup()
with self.assertRaises(Exception):
prob.run_driver()
@@ -1338,13 +1337,13 @@ def test_raised_error_sensfunc(self):
def test_debug_print_option_totals(self):
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', 50.0), promotes=['*'])
- model.add_subsystem('p2', IndepVarComp('y', 50.0), promotes=['*'])
+ model.add_subsystem('p1', om.IndepVarComp('x', 50.0), promotes=['*'])
+ model.add_subsystem('p2', om.IndepVarComp('y', 50.0), promotes=['*'])
model.add_subsystem('comp', Paraboloid(), promotes=['*'])
- model.add_subsystem('con', ExecComp('c = - x + y'), promotes=['*'])
+ model.add_subsystem('con', om.ExecComp('c = - x + y'), promotes=['*'])
prob.set_solver_print(level=0)
@@ -1371,13 +1370,13 @@ def test_debug_print_option_totals(self):
self.assertTrue('Solving variable: comp.f_xy' in output)
self.assertTrue('Solving variable: con.c' in output)
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', 50.0), promotes=['*'])
- model.add_subsystem('p2', IndepVarComp('y', 50.0), promotes=['*'])
+ model.add_subsystem('p1', om.IndepVarComp('x', 50.0), promotes=['*'])
+ model.add_subsystem('p2', om.IndepVarComp('y', 50.0), promotes=['*'])
model.add_subsystem('comp', Paraboloid(), promotes=['*'])
- model.add_subsystem('con', ExecComp('c = - x + y'), promotes=['*'])
+ model.add_subsystem('con', om.ExecComp('c = - x + y'), promotes=['*'])
prob.set_solver_print(level=0)
@@ -1406,13 +1405,13 @@ def test_debug_print_option_totals(self):
def test_debug_print_option(self):
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', 50.0), promotes=['*'])
- model.add_subsystem('p2', IndepVarComp('y', 50.0), promotes=['*'])
+ model.add_subsystem('p1', om.IndepVarComp('x', 50.0), promotes=['*'])
+ model.add_subsystem('p2', om.IndepVarComp('y', 50.0), promotes=['*'])
model.add_subsystem('comp', Paraboloid(), promotes=['*'])
- model.add_subsystem('con', ExecComp('c = - x + y'), promotes=['*'])
+ model.add_subsystem('con', om.ExecComp('c = - x + y'), promotes=['*'])
prob.set_solver_print(level=0)
@@ -1429,7 +1428,7 @@ def test_debug_print_option(self):
model.add_objective('f_xy')
model.add_constraint('c', upper=-15.0)
- prob.setup(check=False)
+ prob.setup()
failed, output = run_driver(prob)
@@ -1458,13 +1457,13 @@ def test_debug_print_option(self):
def test_show_exception_bad_opt(self):
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', 50.0), promotes=['*'])
- model.add_subsystem('p2', IndepVarComp('y', 50.0), promotes=['*'])
+ model.add_subsystem('p1', om.IndepVarComp('x', 50.0), promotes=['*'])
+ model.add_subsystem('p2', om.IndepVarComp('y', 50.0), promotes=['*'])
model.add_subsystem('comp', Paraboloid(), promotes=['*'])
- model.add_subsystem('con', ExecComp('c = - x + y'), promotes=['*'])
+ model.add_subsystem('con', om.ExecComp('c = - x + y'), promotes=['*'])
prob.set_solver_print(level=0)
@@ -1477,7 +1476,7 @@ def test_show_exception_bad_opt(self):
# We generally don't hae a working IPOPT install.
prob.driver.options['optimizer'] = 'IPOPT'
- prob.setup(check=False)
+ prob.setup()
# Test that we get exception.
with self.assertRaises(ImportError) as raises_cm:
@@ -1494,9 +1493,9 @@ def test_initial_run_NSGA2(self):
raise unittest.SkipTest("pyoptsparse is not providing NSGA2")
# Make sure all our opts have run the initial point just once.
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', val=1.0))
+ model.add_subsystem('p1', om.IndepVarComp('x', val=1.0))
comp = model.add_subsystem('comp1', DataSave())
model.connect('p1.x', 'comp1.x')
@@ -1521,9 +1520,9 @@ def test_initial_run_SLSQP(self):
raise unittest.SkipTest("pyoptsparse is not providing SLSQP")
# Make sure all our opts have run the initial point just once.
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', val=1.0))
+ model.add_subsystem('p1', om.IndepVarComp('x', val=1.0))
comp = model.add_subsystem('comp1', DataSave())
model.connect('p1.x', 'comp1.x')
@@ -1547,9 +1546,9 @@ def test_initial_run_SNOPT(self):
raise unittest.SkipTest("pyoptsparse is not providing SNOPT")
# Make sure all our opts have run the initial point just once.
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', val=1.0))
+ model.add_subsystem('p1', om.IndepVarComp('x', val=1.0))
comp = model.add_subsystem('comp1', DataSave())
model.connect('p1.x', 'comp1.x')
@@ -1576,9 +1575,9 @@ def test_initial_run_ALPSO(self):
raise unittest.SkipTest("pyoptsparse is not providing ALPSO")
# Make sure all our opts have run the initial point just once.
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', val=1.0))
+ model.add_subsystem('p1', om.IndepVarComp('x', val=1.0))
comp = model.add_subsystem('comp1', DataSave())
model.connect('p1.x', 'comp1.x')
@@ -1602,9 +1601,9 @@ def test_initial_run_PSQP(self):
raise unittest.SkipTest("pyoptsparse is not providing PSQP")
# Make sure all our opts have run the initial point just once.
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', val=1.0))
+ model.add_subsystem('p1', om.IndepVarComp('x', val=1.0))
comp = model.add_subsystem('comp1', DataSave())
model.connect('p1.x', 'comp1.x')
@@ -1629,9 +1628,9 @@ def test_initial_run_CONMIN(self):
raise unittest.SkipTest("pyoptsparse is not providing CONMIN")
# Make sure all our opts have run the initial point just once.
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', val=1.0))
+ model.add_subsystem('p1', om.IndepVarComp('x', val=1.0))
comp = model.add_subsystem('comp1', DataSave())
model.connect('p1.x', 'comp1.x')
@@ -1651,10 +1650,10 @@ def test_initial_run_CONMIN(self):
self.assertNotEqual(comp.visited_points[1], 1.0)
def test_pyoptsparse_missing_objective(self):
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('x', IndepVarComp('x', 2.0), promotes=['*'])
+ model.add_subsystem('x', om.IndepVarComp('x', 2.0), promotes=['*'])
model.add_subsystem('f_x', Paraboloid(), promotes=['*'])
prob.driver = pyOptSparseDriver()
@@ -1663,7 +1662,7 @@ def test_pyoptsparse_missing_objective(self):
prob.model.add_design_var('x', lower=0)
prob.model.add_constraint('x', lower=0)
- prob.setup(check=False)
+ prob.setup()
with self.assertRaises(Exception) as raises_msg:
prob.run_driver()
@@ -1689,13 +1688,13 @@ def setUp(self):
def test_basic(self):
import numpy as np
- from openmdao.api import Problem, pyOptSparseDriver
+ import openmdao.api as om
from openmdao.test_suite.components.sellar import SellarDerivativesGrouped
- prob = Problem()
+ prob = om.Problem()
model = prob.model = SellarDerivativesGrouped()
- prob.driver = pyOptSparseDriver()
+ prob.driver = om.pyOptSparseDriver()
prob.driver.options['optimizer'] = "SLSQP"
model.add_design_var('z', lower=np.array([-10.0, 0.0]), upper=np.array([10.0, 10.0]))
@@ -1714,13 +1713,13 @@ def test_basic(self):
def test_settings_print(self):
import numpy as np
- from openmdao.api import Problem, pyOptSparseDriver
+ import openmdao.api as om
from openmdao.test_suite.components.sellar import SellarDerivativesGrouped
- prob = Problem()
+ prob = om.Problem()
model = prob.model = SellarDerivativesGrouped()
- prob.driver = pyOptSparseDriver(optimizer='SLSQP')
+ prob.driver = om.pyOptSparseDriver(optimizer='SLSQP')
prob.driver.options['print_results'] = False
@@ -1740,13 +1739,13 @@ def test_settings_print(self):
def test_slsqp_atol(self):
import numpy as np
- from openmdao.api import Problem, pyOptSparseDriver
+ import openmdao.api as om
from openmdao.test_suite.components.sellar import SellarDerivativesGrouped
- prob = Problem()
+ prob = om.Problem()
model = prob.model = SellarDerivativesGrouped()
- prob.driver = pyOptSparseDriver()
+ prob.driver = om.pyOptSparseDriver()
prob.driver.options['optimizer'] = "SLSQP"
prob.driver.opt_settings['ACC'] = 1e-9
@@ -1767,13 +1766,13 @@ def test_slsqp_atol(self):
def test_slsqp_maxit(self):
import numpy as np
- from openmdao.api import Problem, pyOptSparseDriver
+ import openmdao.api as om
from openmdao.test_suite.components.sellar import SellarDerivativesGrouped
- prob = Problem()
+ prob = om.Problem()
model = prob.model = SellarDerivativesGrouped()
- prob.driver = pyOptSparseDriver()
+ prob.driver = om.pyOptSparseDriver()
prob.driver.options['optimizer'] = "SLSQP"
prob.driver.opt_settings['MAXIT'] = 3
@@ -1803,13 +1802,13 @@ def setUp(self):
def test_snopt_atol(self):
import numpy as np
- from openmdao.api import Problem, pyOptSparseDriver
+ import openmdao.api as om
from openmdao.test_suite.components.sellar import SellarDerivativesGrouped
- prob = Problem()
+ prob = om.Problem()
model = prob.model = SellarDerivativesGrouped()
- prob.driver = pyOptSparseDriver()
+ prob.driver = om.pyOptSparseDriver()
prob.driver.options['optimizer'] = "SNOPT"
prob.driver.opt_settings['Major feasibility tolerance'] = 1e-9
@@ -1830,13 +1829,13 @@ def test_snopt_atol(self):
def test_snopt_maxit(self):
import numpy as np
- from openmdao.api import Problem, pyOptSparseDriver
+ import openmdao.api as om
from openmdao.test_suite.components.sellar import SellarDerivativesGrouped
- prob = Problem()
+ prob = om.Problem()
model = prob.model = SellarDerivativesGrouped()
- prob.driver = pyOptSparseDriver()
+ prob.driver = om.pyOptSparseDriver()
prob.driver.options['optimizer'] = "SNOPT"
# after upgrading to SNOPT 7.5-1.1, this test failed unless iter limit raised from 4 to 5
@@ -1858,15 +1857,15 @@ def test_snopt_maxit(self):
def test_snopt_fd_solution(self):
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', 50.0), promotes=['*'])
- model.add_subsystem('p2', IndepVarComp('y', 50.0), promotes=['*'])
+ model.add_subsystem('p1', om.IndepVarComp('x', 50.0), promotes=['*'])
+ model.add_subsystem('p2', om.IndepVarComp('y', 50.0), promotes=['*'])
model.add_subsystem('comp', Paraboloid(), promotes=['*'])
- model.add_subsystem('con', ExecComp('c = - x + y'), promotes=['*'])
+ model.add_subsystem('con', om.ExecComp('c = - x + y'), promotes=['*'])
prob.set_solver_print(level=0)
@@ -1880,7 +1879,7 @@ def test_snopt_fd_solution(self):
model.add_objective('f_xy')
model.add_constraint('c', upper=-15.0)
- prob.setup(check=False)
+ prob.setup()
failed = prob.run_driver()
@@ -1898,15 +1897,15 @@ def apply_linear(params, unknowns, resids):
raise Exception("OpenMDAO's finite difference has been called."
" snopt_fd option has failed.")
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', 50.0), promotes=['*'])
- model.add_subsystem('p2', IndepVarComp('y', 50.0), promotes=['*'])
+ model.add_subsystem('p1', om.IndepVarComp('x', 50.0), promotes=['*'])
+ model.add_subsystem('p2', om.IndepVarComp('y', 50.0), promotes=['*'])
model.add_subsystem('comp', ParaboloidApplyLinear(), promotes=['*'])
- model.add_subsystem('con', ExecComp('c = - x + y'), promotes=['*'])
+ model.add_subsystem('con', om.ExecComp('c = - x + y'), promotes=['*'])
prob.set_solver_print(level=0)
@@ -1920,7 +1919,7 @@ def apply_linear(params, unknowns, resids):
model.add_objective('f_xy')
model.add_constraint('c', upper=-15.0)
- prob.setup(check=False)
+ prob.setup()
failed = prob.run_driver()
@@ -1935,7 +1934,7 @@ def test_sellar_analysis_error(self):
# One discipline of Sellar will something raise analysis error. This is to test that
# the iprinting doesn't get out-of-whack.
- class SellarDis1AE(ExplicitComponent):
+ class SellarDis1AE(om.ExplicitComponent):
def setup(self):
self.add_input('z', val=np.zeros(2))
self.add_input('x', val=0.)
@@ -1962,13 +1961,13 @@ def compute_partials(self, inputs, partials):
self.count_iter += 1
if self.count_iter in self.fail_deriv:
self.failed += 1
- raise AnalysisError('Try again.')
+ raise om.AnalysisError('Try again.')
partials['y1', 'y2'] = -0.2
partials['y1', 'z'] = np.array([[2.0 * inputs['z'][0], 1.0]])
partials['y1', 'x'] = 1.0
- class SellarDis2AE(ExplicitComponent):
+ class SellarDis2AE(om.ExplicitComponent):
def setup(self):
self.add_input('z', val=np.zeros(2))
self.add_input('y1', val=1.0)
@@ -1997,13 +1996,13 @@ def compute_partials(self, inputs, J):
J['y2', 'y1'] = .5*y1**-.5
J['y2', 'z'] = np.array([[1.0, 1.0]])
- class SellarMDAAE(Group):
+ class SellarMDAAE(om.Group):
def setup(self):
- indeps = self.add_subsystem('indeps', IndepVarComp(), promotes=['*'])
+ indeps = self.add_subsystem('indeps', om.IndepVarComp(), promotes=['*'])
indeps.add_output('x', 1.0)
indeps.add_output('z', np.array([5.0, 2.0]))
- cycle = self.add_subsystem('cycle', Group(), promotes=['*'])
+ cycle = self.add_subsystem('cycle', om.Group(), promotes=['*'])
cycle.add_subsystem('d1', SellarDis1AE(),
promotes_inputs=['x', 'z', 'y2'],
@@ -2012,18 +2011,18 @@ def setup(self):
promotes_inputs=['z', 'y1'],
promotes_outputs=['y2'])
- self.linear_solver = LinearBlockGS()
- cycle.linear_solver = ScipyKrylov()
- cycle.nonlinear_solver = NonlinearBlockGS()
+ self.linear_solver = om.LinearBlockGS()
+ cycle.linear_solver = om.ScipyKrylov()
+ cycle.nonlinear_solver = om.NonlinearBlockGS()
- self.add_subsystem('obj_cmp', ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
- z=np.array([0.0, 0.0]), x=0.0),
+ self.add_subsystem('obj_cmp', om.ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
+ z=np.array([0.0, 0.0]), x=0.0),
promotes=['x', 'z', 'y1', 'y2', 'obj'])
- self.add_subsystem('con_cmp1', ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
- self.add_subsystem('con_cmp2', ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
+ self.add_subsystem('con_cmp1', om.ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
+ self.add_subsystem('con_cmp2', om.ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
- prob = Problem()
+ prob = om.Problem()
model = prob.model = SellarMDAAE()
prob.driver = pyOptSparseDriver()
diff --git a/openmdao/drivers/tests/test_scipy_optimizer.py b/openmdao/drivers/tests/test_scipy_optimizer.py
index 2ea3908200..1f41ff6707 100644
--- a/openmdao/drivers/tests/test_scipy_optimizer.py
+++ b/openmdao/drivers/tests/test_scipy_optimizer.py
@@ -8,15 +8,14 @@
import numpy as np
from scipy import __version__ as scipy_version
-from openmdao.api import Problem, Group, IndepVarComp, ExecComp, ScipyOptimizeDriver, \
- ScipyOptimizer, ExplicitComponent, DirectSolver, NonlinearBlockGS
-from openmdao.utils.assert_utils import assert_rel_error, assert_warning
-from openmdao.utils.general_utils import run_driver
+import openmdao.api as om
from openmdao.test_suite.components.expl_comp_array import TestExplCompArrayDense
from openmdao.test_suite.components.paraboloid import Paraboloid
from openmdao.test_suite.components.sellar import SellarDerivativesGrouped, SellarDerivatives
from openmdao.test_suite.components.simple_comps import NonSquareArrayComp
from openmdao.test_suite.groups.sin_fitter import SineFitter
+from openmdao.utils.assert_utils import assert_rel_error, assert_warning
+from openmdao.utils.general_utils import run_driver
class TestScipyOptimizeDriver(unittest.TestCase):
@@ -27,15 +26,15 @@ def test_scipyoptimizer_deprecation(self):
"with OpenMDAO <= 2.2 ; use 'ScipyOptimizeDriver' instead."
with assert_warning(DeprecationWarning, msg):
- ScipyOptimizer()
+ om.ScipyOptimizer()
def test_compute_totals_basic_return_array(self):
# Make sure 'array' return_format works.
- prob = Problem()
- model = prob.model = Group()
- model.add_subsystem('p1', IndepVarComp('x', 0.0), promotes=['x'])
- model.add_subsystem('p2', IndepVarComp('y', 0.0), promotes=['y'])
+ prob = om.Problem()
+ model = prob.model
+ model.add_subsystem('p1', om.IndepVarComp('x', 0.0), promotes=['x'])
+ model.add_subsystem('p2', om.IndepVarComp('y', 0.0), promotes=['y'])
model.add_subsystem('comp', Paraboloid(), promotes=['x', 'y', 'f_xy'])
model.add_design_var('x', lower=-50.0, upper=50.0)
@@ -69,10 +68,10 @@ def test_compute_totals_basic_return_array(self):
def test_compute_totals_return_array_non_square(self):
- prob = Problem()
- prob.model = model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('px', IndepVarComp(name="x", val=np.ones((2, ))))
+ model.add_subsystem('px', om.IndepVarComp(name="x", val=np.ones((2, ))))
comp = model.add_subsystem('comp', NonSquareArrayComp())
model.connect('px.x', 'comp.x1')
@@ -104,15 +103,15 @@ def test_compute_totals_return_array_non_square(self):
def test_deriv_wrt_self(self):
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('px', IndepVarComp(name="x", val=np.ones((2, ))))
+ model.add_subsystem('px', om.IndepVarComp(name="x", val=np.ones((2, ))))
model.add_design_var('px.x')
model.add_objective('px.x')
- prob.setup(check=False)
+ prob.setup()
failed = prob.run_driver()
@@ -127,22 +126,22 @@ def test_deriv_wrt_self(self):
def test_scipy_optimizer_simple_paraboloid_unconstrained(self):
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', 50.0), promotes=['*'])
- model.add_subsystem('p2', IndepVarComp('y', 50.0), promotes=['*'])
+ model.add_subsystem('p1', om.IndepVarComp('x', 50.0), promotes=['*'])
+ model.add_subsystem('p2', om.IndepVarComp('y', 50.0), promotes=['*'])
model.add_subsystem('comp', Paraboloid(), promotes=['*'])
prob.set_solver_print(level=0)
- prob.driver = ScipyOptimizer(optimizer='SLSQP', tol=1e-9, disp=False)
+ prob.driver = om.ScipyOptimizer(optimizer='SLSQP', tol=1e-9, disp=False)
model.add_design_var('x', lower=-50.0, upper=50.0)
model.add_design_var('y', lower=-50.0, upper=50.0)
model.add_objective('f_xy')
- prob.setup(check=False)
+ prob.setup()
failed = prob.run_driver()
@@ -154,16 +153,16 @@ def test_scipy_optimizer_simple_paraboloid_unconstrained(self):
def test_simple_paraboloid_unconstrained(self):
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', 50.0), promotes=['*'])
- model.add_subsystem('p2', IndepVarComp('y', 50.0), promotes=['*'])
+ model.add_subsystem('p1', om.IndepVarComp('x', 50.0), promotes=['*'])
+ model.add_subsystem('p2', om.IndepVarComp('y', 50.0), promotes=['*'])
model.add_subsystem('comp', Paraboloid(), promotes=['*'])
prob.set_solver_print(level=0)
- prob.driver = ScipyOptimizeDriver()
+ prob.driver = om.ScipyOptimizeDriver()
prob.driver.options['optimizer'] = 'SLSQP'
prob.driver.options['tol'] = 1e-9
prob.driver.options['disp'] = False
@@ -172,7 +171,7 @@ def test_simple_paraboloid_unconstrained(self):
model.add_design_var('y', lower=-50.0, upper=50.0)
model.add_objective('f_xy')
- prob.setup(check=False)
+ prob.setup()
failed = prob.run_driver()
@@ -183,16 +182,16 @@ def test_simple_paraboloid_unconstrained(self):
assert_rel_error(self, prob['y'], -7.3333333, 1e-6)
def test_simple_paraboloid_unconstrained_COBYLA(self):
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', 50.0), promotes=['*'])
- model.add_subsystem('p2', IndepVarComp('y', 50.0), promotes=['*'])
+ model.add_subsystem('p1', om.IndepVarComp('x', 50.0), promotes=['*'])
+ model.add_subsystem('p2', om.IndepVarComp('y', 50.0), promotes=['*'])
model.add_subsystem('comp', Paraboloid(), promotes=['*'])
prob.set_solver_print(level=0)
- prob.driver = ScipyOptimizeDriver()
+ prob.driver = om.ScipyOptimizeDriver()
prob.driver.options['optimizer'] = 'COBYLA'
prob.driver.options['tol'] = 1e-9
prob.driver.options['disp'] = False
@@ -201,7 +200,7 @@ def test_simple_paraboloid_unconstrained_COBYLA(self):
model.add_design_var('y', lower=-50.0, upper=50.0)
model.add_objective('f_xy')
- prob.setup(check=False)
+ prob.setup()
failed = prob.run_driver()
@@ -213,17 +212,17 @@ def test_simple_paraboloid_unconstrained_COBYLA(self):
def test_simple_paraboloid_upper(self):
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', 50.0), promotes=['*'])
- model.add_subsystem('p2', IndepVarComp('y', 50.0), promotes=['*'])
+ model.add_subsystem('p1', om.IndepVarComp('x', 50.0), promotes=['*'])
+ model.add_subsystem('p2', om.IndepVarComp('y', 50.0), promotes=['*'])
model.add_subsystem('comp', Paraboloid(), promotes=['*'])
- model.add_subsystem('con', ExecComp('c = - x + y'), promotes=['*'])
+ model.add_subsystem('con', om.ExecComp('c = - x + y'), promotes=['*'])
prob.set_solver_print(level=0)
- prob.driver = ScipyOptimizeDriver()
+ prob.driver = om.ScipyOptimizeDriver()
prob.driver.options['optimizer'] = 'SLSQP'
prob.driver.options['tol'] = 1e-9
prob.driver.options['disp'] = False
@@ -233,7 +232,7 @@ def test_simple_paraboloid_upper(self):
model.add_objective('f_xy')
model.add_constraint('c', upper=-15.0)
- prob.setup(check=False)
+ prob.setup()
failed = prob.run_driver()
@@ -246,17 +245,17 @@ def test_simple_paraboloid_upper(self):
def test_simple_paraboloid_lower(self):
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', 50.0), promotes=['*'])
- model.add_subsystem('p2', IndepVarComp('y', 50.0), promotes=['*'])
+ model.add_subsystem('p1', om.IndepVarComp('x', 50.0), promotes=['*'])
+ model.add_subsystem('p2', om.IndepVarComp('y', 50.0), promotes=['*'])
model.add_subsystem('comp', Paraboloid(), promotes=['*'])
- model.add_subsystem('con', ExecComp('c = x - y'), promotes=['*'])
+ model.add_subsystem('con', om.ExecComp('c = x - y'), promotes=['*'])
prob.set_solver_print(level=0)
- prob.driver = ScipyOptimizeDriver()
+ prob.driver = om.ScipyOptimizeDriver()
prob.driver.options['optimizer'] = 'SLSQP'
prob.driver.options['tol'] = 1e-9
prob.driver.options['disp'] = False
@@ -267,7 +266,7 @@ def test_simple_paraboloid_lower(self):
model.add_objective('f_xy')
model.add_constraint('c', lower=15.0)
- prob.setup(check=False)
+ prob.setup()
failed = prob.run_driver()
@@ -280,17 +279,17 @@ def test_simple_paraboloid_lower(self):
def test_simple_paraboloid_equality(self):
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', 50.0), promotes=['*'])
- model.add_subsystem('p2', IndepVarComp('y', 50.0), promotes=['*'])
+ model.add_subsystem('p1', om.IndepVarComp('x', 50.0), promotes=['*'])
+ model.add_subsystem('p2', om.IndepVarComp('y', 50.0), promotes=['*'])
model.add_subsystem('comp', Paraboloid(), promotes=['*'])
- model.add_subsystem('con', ExecComp('c = - x + y'), promotes=['*'])
+ model.add_subsystem('con', om.ExecComp('c = - x + y'), promotes=['*'])
prob.set_solver_print(level=0)
- prob.driver = ScipyOptimizeDriver()
+ prob.driver = om.ScipyOptimizeDriver()
prob.driver.options['optimizer'] = 'SLSQP'
prob.driver.options['tol'] = 1e-9
prob.driver.options['disp'] = False
@@ -300,7 +299,7 @@ def test_simple_paraboloid_equality(self):
model.add_objective('f_xy')
model.add_constraint('c', equals=-15.0)
- prob.setup(check=False)
+ prob.setup()
failed = prob.run_driver()
@@ -314,17 +313,17 @@ def test_simple_paraboloid_equality(self):
def test_unsupported_equality(self):
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', 50.0), promotes=['*'])
- model.add_subsystem('p2', IndepVarComp('y', 50.0), promotes=['*'])
+ model.add_subsystem('p1', om.IndepVarComp('x', 50.0), promotes=['*'])
+ model.add_subsystem('p2', om.IndepVarComp('y', 50.0), promotes=['*'])
model.add_subsystem('comp', Paraboloid(), promotes=['*'])
- model.add_subsystem('con', ExecComp('c = - x + y'), promotes=['*'])
+ model.add_subsystem('con', om.ExecComp('c = - x + y'), promotes=['*'])
prob.set_solver_print(level=0)
- prob.driver = ScipyOptimizeDriver()
+ prob.driver = om.ScipyOptimizeDriver()
prob.driver.options['optimizer'] = 'COBYLA'
prob.driver.options['tol'] = 1e-9
prob.driver.options['disp'] = False
@@ -334,7 +333,7 @@ def test_unsupported_equality(self):
model.add_objective('f_xy')
model.add_constraint('c', equals=-15.0)
- prob.setup(check=False)
+ prob.setup()
with self.assertRaises(Exception) as raises_cm:
prob.run_driver()
@@ -347,19 +346,19 @@ def test_unsupported_equality(self):
def test_scipy_missing_objective(self):
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('x', IndepVarComp('x', 2.0), promotes=['*'])
+ model.add_subsystem('x', om.IndepVarComp('x', 2.0), promotes=['*'])
model.add_subsystem('f_x', Paraboloid(), promotes=['*'])
- prob.driver = ScipyOptimizeDriver()
+ prob.driver = om.ScipyOptimizeDriver()
prob.driver.options['optimizer'] = 'SLSQP'
prob.model.add_design_var('x', lower=0)
# prob.model.add_constraint('x', lower=0)
- prob.setup(check=False)
+ prob.setup()
with self.assertRaises(Exception) as raises_msg:
prob.run_driver()
@@ -372,17 +371,17 @@ def test_scipy_missing_objective(self):
def test_simple_paraboloid_double_sided_low(self):
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', 50.0), promotes=['*'])
- model.add_subsystem('p2', IndepVarComp('y', 50.0), promotes=['*'])
+ model.add_subsystem('p1', om.IndepVarComp('x', 50.0), promotes=['*'])
+ model.add_subsystem('p2', om.IndepVarComp('y', 50.0), promotes=['*'])
model.add_subsystem('comp', Paraboloid(), promotes=['*'])
- model.add_subsystem('con', ExecComp('c = - x + y'), promotes=['*'])
+ model.add_subsystem('con', om.ExecComp('c = - x + y'), promotes=['*'])
prob.set_solver_print(level=0)
- prob.driver = ScipyOptimizeDriver()
+ prob.driver = om.ScipyOptimizeDriver()
prob.driver.options['optimizer'] = 'SLSQP'
prob.driver.options['tol'] = 1e-9
prob.driver.options['disp'] = False
@@ -392,7 +391,7 @@ def test_simple_paraboloid_double_sided_low(self):
model.add_objective('f_xy')
model.add_constraint('c', lower=-11.0, upper=-10.0)
- prob.setup(check=False)
+ prob.setup()
failed = prob.run_driver()
@@ -403,17 +402,17 @@ def test_simple_paraboloid_double_sided_low(self):
def test_simple_paraboloid_double_sided_high(self):
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', 50.0), promotes=['*'])
- model.add_subsystem('p2', IndepVarComp('y', 50.0), promotes=['*'])
+ model.add_subsystem('p1', om.IndepVarComp('x', 50.0), promotes=['*'])
+ model.add_subsystem('p2', om.IndepVarComp('y', 50.0), promotes=['*'])
model.add_subsystem('comp', Paraboloid(), promotes=['*'])
- model.add_subsystem('con', ExecComp('c = x - y'), promotes=['*'])
+ model.add_subsystem('con', om.ExecComp('c = x - y'), promotes=['*'])
prob.set_solver_print(level=0)
- prob.driver = ScipyOptimizeDriver()
+ prob.driver = om.ScipyOptimizeDriver()
prob.driver.options['optimizer'] = 'SLSQP'
prob.driver.options['tol'] = 1e-9
prob.driver.options['disp'] = False
@@ -423,7 +422,7 @@ def test_simple_paraboloid_double_sided_high(self):
model.add_objective('f_xy')
model.add_constraint('c', lower=10.0, upper=11.0)
- prob.setup(check=False)
+ prob.setup()
failed = prob.run_driver()
@@ -434,19 +433,20 @@ def test_simple_paraboloid_double_sided_high(self):
def test_simple_array_comp2D(self):
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('p1', IndepVarComp('widths', np.zeros((2, 2))), promotes=['*'])
+ model.add_subsystem('p1', om.IndepVarComp('widths', np.zeros((2, 2))), promotes=['*'])
model.add_subsystem('comp', TestExplCompArrayDense(), promotes=['*'])
- model.add_subsystem('con', ExecComp('c = areas - 20.0', c=np.zeros((2, 2)), areas=np.zeros((2, 2))),
+ model.add_subsystem('con', om.ExecComp('c = areas - 20.0', c=np.zeros((2, 2)),
+ areas=np.zeros((2, 2))),
promotes=['*'])
- model.add_subsystem('obj', ExecComp('o = areas[0, 0]', areas=np.zeros((2, 2))),
+ model.add_subsystem('obj', om.ExecComp('o = areas[0, 0]', areas=np.zeros((2, 2))),
promotes=['*'])
prob.set_solver_print(level=0)
- prob.driver = ScipyOptimizeDriver()
+ prob.driver = om.ScipyOptimizeDriver()
prob.driver.options['optimizer'] = 'SLSQP'
prob.driver.options['tol'] = 1e-9
prob.driver.options['disp'] = False
@@ -455,7 +455,7 @@ def test_simple_array_comp2D(self):
model.add_objective('o')
model.add_constraint('c', equals=0.0)
- prob.setup(check=False)
+ prob.setup()
failed = prob.run_driver()
@@ -467,17 +467,17 @@ def test_simple_array_comp2D(self):
def test_simple_array_comp2D_eq_con(self):
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('p1', IndepVarComp('widths', np.zeros((2, 2))), promotes=['*'])
+ model.add_subsystem('p1', om.IndepVarComp('widths', np.zeros((2, 2))), promotes=['*'])
model.add_subsystem('comp', TestExplCompArrayDense(), promotes=['*'])
- model.add_subsystem('obj', ExecComp('o = areas[0, 0] + areas[1, 1]', areas=np.zeros((2, 2))),
+ model.add_subsystem('obj', om.ExecComp('o = areas[0, 0] + areas[1, 1]', areas=np.zeros((2, 2))),
promotes=['*'])
prob.set_solver_print(level=0)
- prob.driver = ScipyOptimizeDriver()
+ prob.driver = om.ScipyOptimizeDriver()
prob.driver.options['optimizer'] = 'SLSQP'
prob.driver.options['tol'] = 1e-9
prob.driver.options['disp'] = False
@@ -486,7 +486,7 @@ def test_simple_array_comp2D_eq_con(self):
model.add_objective('o')
model.add_constraint('areas', equals=np.array([24.0, 21.0, 3.5, 17.5]))
- prob.setup(check=False)
+ prob.setup()
failed = prob.run_driver()
@@ -498,17 +498,17 @@ def test_simple_array_comp2D_eq_con(self):
def test_simple_array_comp2D_dbl_sided_con(self):
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('p1', IndepVarComp('widths', np.zeros((2, 2))), promotes=['*'])
+ model.add_subsystem('p1', om.IndepVarComp('widths', np.zeros((2, 2))), promotes=['*'])
model.add_subsystem('comp', TestExplCompArrayDense(), promotes=['*'])
- model.add_subsystem('obj', ExecComp('o = areas[0, 0]', areas=np.zeros((2, 2))),
+ model.add_subsystem('obj', om.ExecComp('o = areas[0, 0]', areas=np.zeros((2, 2))),
promotes=['*'])
prob.set_solver_print(level=0)
- prob.driver = ScipyOptimizeDriver()
+ prob.driver = om.ScipyOptimizeDriver()
prob.driver.options['optimizer'] = 'SLSQP'
prob.driver.options['tol'] = 1e-9
prob.driver.options['disp'] = False
@@ -517,7 +517,7 @@ def test_simple_array_comp2D_dbl_sided_con(self):
model.add_objective('o')
model.add_constraint('areas', lower=np.array([24.0, 21.0, 3.5, 17.5]), upper=np.array([24.0, 21.0, 3.5, 17.5]))
- prob.setup(check=False)
+ prob.setup()
failed = prob.run_driver()
@@ -529,17 +529,17 @@ def test_simple_array_comp2D_dbl_sided_con(self):
def test_simple_array_comp2D_dbl_sided_con_array(self):
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('p1', IndepVarComp('widths', np.zeros((2, 2))), promotes=['*'])
+ model.add_subsystem('p1', om.IndepVarComp('widths', np.zeros((2, 2))), promotes=['*'])
model.add_subsystem('comp', TestExplCompArrayDense(), promotes=['*'])
- model.add_subsystem('obj', ExecComp('o = areas[0, 0]', areas=np.zeros((2, 2))),
+ model.add_subsystem('obj', om.ExecComp('o = areas[0, 0]', areas=np.zeros((2, 2))),
promotes=['*'])
prob.set_solver_print(level=0)
- prob.driver = ScipyOptimizeDriver()
+ prob.driver = om.ScipyOptimizeDriver()
prob.driver.options['optimizer'] = 'SLSQP'
prob.driver.options['tol'] = 1e-9
prob.driver.options['disp'] = False
@@ -548,7 +548,7 @@ def test_simple_array_comp2D_dbl_sided_con_array(self):
model.add_objective('o')
model.add_constraint('areas', lower=20.0, upper=20.0)
- prob.setup(check=False)
+ prob.setup()
failed = prob.run_driver()
@@ -560,19 +560,19 @@ def test_simple_array_comp2D_dbl_sided_con_array(self):
def test_simple_array_comp2D_array_lo_hi(self):
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('p1', IndepVarComp('widths', np.zeros((2, 2))), promotes=['*'])
+ model.add_subsystem('p1', om.IndepVarComp('widths', np.zeros((2, 2))), promotes=['*'])
model.add_subsystem('comp', TestExplCompArrayDense(), promotes=['*'])
- model.add_subsystem('con', ExecComp('c = areas - 20.0', c=np.zeros((2, 2)), areas=np.zeros((2, 2))),
+ model.add_subsystem('con', om.ExecComp('c = areas - 20.0', c=np.zeros((2, 2)), areas=np.zeros((2, 2))),
promotes=['*'])
- model.add_subsystem('obj', ExecComp('o = areas[0, 0]', areas=np.zeros((2, 2))),
+ model.add_subsystem('obj', om.ExecComp('o = areas[0, 0]', areas=np.zeros((2, 2))),
promotes=['*'])
prob.set_solver_print(level=0)
- prob.driver = ScipyOptimizeDriver()
+ prob.driver = om.ScipyOptimizeDriver()
prob.driver.options['optimizer'] = 'SLSQP'
prob.driver.options['tol'] = 1e-9
prob.driver.options['disp'] = False
@@ -581,7 +581,7 @@ def test_simple_array_comp2D_array_lo_hi(self):
model.add_objective('o')
model.add_constraint('c', equals=0.0)
- prob.setup(check=False)
+ prob.setup()
failed = prob.run_driver()
@@ -593,17 +593,17 @@ def test_simple_array_comp2D_array_lo_hi(self):
def test_simple_paraboloid_scaled_desvars_fwd(self):
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', 50.0), promotes=['*'])
- model.add_subsystem('p2', IndepVarComp('y', 50.0), promotes=['*'])
+ model.add_subsystem('p1', om.IndepVarComp('x', 50.0), promotes=['*'])
+ model.add_subsystem('p2', om.IndepVarComp('y', 50.0), promotes=['*'])
model.add_subsystem('comp', Paraboloid(), promotes=['*'])
- model.add_subsystem('con', ExecComp('c = x - y'), promotes=['*'])
+ model.add_subsystem('con', om.ExecComp('c = x - y'), promotes=['*'])
prob.set_solver_print(level=0)
- prob.driver = ScipyOptimizeDriver()
+ prob.driver = om.ScipyOptimizeDriver()
prob.driver.options['optimizer'] = 'SLSQP'
prob.driver.options['tol'] = 1e-9
prob.driver.options['disp'] = False
@@ -624,17 +624,17 @@ def test_simple_paraboloid_scaled_desvars_fwd(self):
def test_simple_paraboloid_scaled_desvars_rev(self):
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', 50.0), promotes=['*'])
- model.add_subsystem('p2', IndepVarComp('y', 50.0), promotes=['*'])
+ model.add_subsystem('p1', om.IndepVarComp('x', 50.0), promotes=['*'])
+ model.add_subsystem('p2', om.IndepVarComp('y', 50.0), promotes=['*'])
model.add_subsystem('comp', Paraboloid(), promotes=['*'])
- model.add_subsystem('con', ExecComp('c = x - y'), promotes=['*'])
+ model.add_subsystem('con', om.ExecComp('c = x - y'), promotes=['*'])
prob.set_solver_print(level=0)
- prob.driver = ScipyOptimizeDriver()
+ prob.driver = om.ScipyOptimizeDriver()
prob.driver.options['optimizer'] = 'SLSQP'
prob.driver.options['tol'] = 1e-9
prob.driver.options['disp'] = False
@@ -655,17 +655,17 @@ def test_simple_paraboloid_scaled_desvars_rev(self):
def test_simple_paraboloid_scaled_constraint_fwd(self):
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', 50.0), promotes=['*'])
- model.add_subsystem('p2', IndepVarComp('y', 50.0), promotes=['*'])
+ model.add_subsystem('p1', om.IndepVarComp('x', 50.0), promotes=['*'])
+ model.add_subsystem('p2', om.IndepVarComp('y', 50.0), promotes=['*'])
model.add_subsystem('comp', Paraboloid(), promotes=['*'])
- model.add_subsystem('con', ExecComp('c = x - y'), promotes=['*'])
+ model.add_subsystem('con', om.ExecComp('c = x - y'), promotes=['*'])
prob.set_solver_print(level=0)
- prob.driver = ScipyOptimizeDriver()
+ prob.driver = om.ScipyOptimizeDriver()
prob.driver.options['optimizer'] = 'SLSQP'
prob.driver.options['tol'] = 1e-9
prob.driver.options['disp'] = False
@@ -686,17 +686,17 @@ def test_simple_paraboloid_scaled_constraint_fwd(self):
def test_simple_paraboloid_scaled_objective_fwd(self):
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
prob.set_solver_print(level=0)
- model.add_subsystem('p1', IndepVarComp('x', 50.0), promotes=['*'])
- model.add_subsystem('p2', IndepVarComp('y', 50.0), promotes=['*'])
+ model.add_subsystem('p1', om.IndepVarComp('x', 50.0), promotes=['*'])
+ model.add_subsystem('p2', om.IndepVarComp('y', 50.0), promotes=['*'])
model.add_subsystem('comp', Paraboloid(), promotes=['*'])
- model.add_subsystem('con', ExecComp('c = x - y'), promotes=['*'])
+ model.add_subsystem('con', om.ExecComp('c = x - y'), promotes=['*'])
- prob.driver = ScipyOptimizeDriver()
+ prob.driver = om.ScipyOptimizeDriver()
prob.driver.options['optimizer'] = 'SLSQP'
prob.driver.options['tol'] = 1e-9
prob.driver.options['disp'] = False
@@ -717,17 +717,17 @@ def test_simple_paraboloid_scaled_objective_fwd(self):
def test_simple_paraboloid_scaled_objective_rev(self):
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
prob.set_solver_print(level=0)
- model.add_subsystem('p1', IndepVarComp('x', 50.0), promotes=['*'])
- model.add_subsystem('p2', IndepVarComp('y', 50.0), promotes=['*'])
+ model.add_subsystem('p1', om.IndepVarComp('x', 50.0), promotes=['*'])
+ model.add_subsystem('p2', om.IndepVarComp('y', 50.0), promotes=['*'])
model.add_subsystem('comp', Paraboloid(), promotes=['*'])
- model.add_subsystem('con', ExecComp('c = x - y'), promotes=['*'])
+ model.add_subsystem('con', om.ExecComp('c = x - y'), promotes=['*'])
- prob.driver = ScipyOptimizeDriver()
+ prob.driver = om.ScipyOptimizeDriver()
prob.driver.options['optimizer'] = 'SLSQP'
prob.driver.options['tol'] = 1e-9
prob.driver.options['disp'] = False
@@ -748,10 +748,10 @@ def test_simple_paraboloid_scaled_objective_rev(self):
def test_sellar_mdf(self):
- prob = Problem()
+ prob = om.Problem()
model = prob.model = SellarDerivativesGrouped()
- prob.driver = ScipyOptimizeDriver()
+ prob.driver = om.ScipyOptimizeDriver()
prob.driver.options['optimizer'] = 'SLSQP'
prob.driver.options['tol'] = 1e-9
prob.driver.options['disp'] = False
@@ -776,17 +776,17 @@ def test_sellar_mdf(self):
def test_bug_in_eq_constraints(self):
# We were getting extra constraints created because lower and upper are maxfloat instead of
# None when unused.
- p = Problem(model=SineFitter())
- p.driver = ScipyOptimizeDriver()
+ p = om.Problem(model=SineFitter())
+ p.driver = om.ScipyOptimizeDriver()
- p.setup(check=False)
+ p.setup()
p.run_driver()
max_defect = np.max(np.abs(p['defect.defect']))
assert_rel_error(self, max_defect, 0.0, 1e-10)
def test_reraise_exception_from_callbacks(self):
- class ReducedActuatorDisc(ExplicitComponent):
+ class ReducedActuatorDisc(om.ExplicitComponent):
def setup(self):
@@ -809,8 +809,8 @@ def compute_partials(self, inputs, J):
J['Vd', 'a'] = -2.0 * Vu
- prob = Problem()
- indeps = prob.model.add_subsystem('indeps', IndepVarComp(), promotes=['*'])
+ prob = om.Problem()
+ indeps = prob.model.add_subsystem('indeps', om.IndepVarComp(), promotes=['*'])
indeps.add_output('a', .5)
indeps.add_output('Vu', 10.0, units='m/s')
@@ -818,7 +818,7 @@ def compute_partials(self, inputs, J):
promotes_inputs=['a', 'Vu'])
# setup the optimization
- prob.driver = ScipyOptimizeDriver()
+ prob.driver = om.ScipyOptimizeDriver()
prob.driver.options['optimizer'] = 'SLSQP'
prob.model.add_design_var('a', lower=0., upper=1.)
@@ -835,17 +835,17 @@ def compute_partials(self, inputs, J):
def test_simple_paraboloid_upper_COBYLA(self):
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', 50.0), promotes=['*'])
- model.add_subsystem('p2', IndepVarComp('y', 50.0), promotes=['*'])
+ model.add_subsystem('p1', om.IndepVarComp('x', 50.0), promotes=['*'])
+ model.add_subsystem('p2', om.IndepVarComp('y', 50.0), promotes=['*'])
model.add_subsystem('comp', Paraboloid(), promotes=['*'])
- model.add_subsystem('con', ExecComp('c = - x + y'), promotes=['*'])
+ model.add_subsystem('con', om.ExecComp('c = - x + y'), promotes=['*'])
prob.set_solver_print(level=0)
- prob.driver = ScipyOptimizeDriver()
+ prob.driver = om.ScipyOptimizeDriver()
prob.driver.options['optimizer'] = 'COBYLA'
prob.driver.options['tol'] = 1e-9
prob.driver.options['disp'] = False
@@ -855,7 +855,7 @@ def test_simple_paraboloid_upper_COBYLA(self):
model.add_objective('f_xy')
model.add_constraint('c', upper=-15.0)
- prob.setup(check=False)
+ prob.setup()
failed = prob.run_driver()
@@ -868,10 +868,10 @@ def test_simple_paraboloid_upper_COBYLA(self):
def test_sellar_mdf_COBYLA(self):
- prob = Problem()
+ prob = om.Problem()
model = prob.model = SellarDerivativesGrouped()
- prob.driver = ScipyOptimizeDriver()
+ prob.driver = om.ScipyOptimizeDriver()
prob.driver.options['optimizer'] = 'COBYLA'
prob.driver.options['tol'] = 1e-9
prob.driver.options['disp'] = False
@@ -902,7 +902,7 @@ def rosenbrock(x):
x_1 = x[1:]
return sum((1 - x_0) ** 2) + 100 * sum((x_1 - x_0 ** 2) ** 2)
- class Rosenbrock(ExplicitComponent):
+ class Rosenbrock(om.ExplicitComponent):
def setup(self):
self.add_input('x', np.array([1.5, 1.5, 1.5]))
@@ -915,14 +915,14 @@ def compute(self, inputs, outputs, discrete_inputs=None, discrete_outputs=None):
x0 = np.array([1.2, 0.8, 1.3])
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- indeps = prob.model.add_subsystem('indeps', IndepVarComp(), promotes=['*'])
+ indeps = prob.model.add_subsystem('indeps', om.IndepVarComp(), promotes=['*'])
indeps.add_output('x', list(x0))
prob.model.add_subsystem('rosen', Rosenbrock(), promotes=['*'])
- prob.model.add_subsystem('con', ExecComp('c=sum(x)', x=np.ones(3)), promotes=['*'])
- prob.driver = driver = ScipyOptimizeDriver()
+ prob.model.add_subsystem('con', om.ExecComp('c=sum(x)', x=np.ones(3)), promotes=['*'])
+ prob.driver = driver = om.ScipyOptimizeDriver()
driver.options['optimizer'] = 'trust-constr'
driver.options['tol'] = 1e-8
driver.options['maxiter'] = 2000
@@ -949,7 +949,7 @@ def rosenbrock(x):
x_1 = x[1:]
return sum((1 - x_0) ** 2) + 100 * sum((x_1 - x_0 ** 2) ** 2)
- class Rosenbrock(ExplicitComponent):
+ class Rosenbrock(om.ExplicitComponent):
def setup(self):
self.add_input('x', np.array([1.5, 1.5, 1.5]))
@@ -962,14 +962,14 @@ def compute(self, inputs, outputs, discrete_inputs=None, discrete_outputs=None):
x0 = np.array([1.2, 0.8, 1.3])
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- indeps = prob.model.add_subsystem('indeps', IndepVarComp(), promotes=['*'])
+ indeps = prob.model.add_subsystem('indeps', om.IndepVarComp(), promotes=['*'])
indeps.add_output('x', list(x0))
prob.model.add_subsystem('rosen', Rosenbrock(), promotes=['*'])
- prob.model.add_subsystem('con', ExecComp('c=sum(x)', x=np.ones(3)), promotes=['*'])
- prob.driver = driver = ScipyOptimizeDriver()
+ prob.model.add_subsystem('con', om.ExecComp('c=sum(x)', x=np.ones(3)), promotes=['*'])
+ prob.driver = driver = om.ScipyOptimizeDriver()
driver.options['optimizer'] = 'trust-constr'
driver.options['tol'] = 1e-8
driver.options['maxiter'] = 2000
@@ -997,7 +997,7 @@ def rosenbrock(x):
x_1 = x[1:]
return sum((1 - x_0) ** 2) + 100 * sum((x_1 - x_0 ** 2) ** 2)
- class Rosenbrock(ExplicitComponent):
+ class Rosenbrock(om.ExplicitComponent):
def setup(self):
self.add_input('x', np.array([1.5, 1.5, 1.5]))
@@ -1010,16 +1010,16 @@ def compute(self, inputs, outputs, discrete_inputs=None, discrete_outputs=None):
x0 = np.array([0.5, 0.8, 1.4])
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- indeps = prob.model.add_subsystem('indeps', IndepVarComp())
+ indeps = prob.model.add_subsystem('indeps', om.IndepVarComp())
indeps.add_output('x', list(x0))
model.add_subsystem('rosen', Rosenbrock())
- model.add_subsystem('con', ExecComp('c=sum(x)', x=np.ones(3)))
+ model.add_subsystem('con', om.ExecComp('c=sum(x)', x=np.ones(3)))
model.connect('indeps.x', 'rosen.x')
model.connect('indeps.x', 'con.x')
- prob.driver = driver = ScipyOptimizeDriver()
+ prob.driver = driver = om.ScipyOptimizeDriver()
driver.options['optimizer'] = 'trust-constr'
driver.options['tol'] = 1e-5
driver.options['maxiter'] = 2000
@@ -1038,7 +1038,7 @@ def compute(self, inputs, outputs, discrete_inputs=None, discrete_outputs=None):
"scipy >= 1.2 is required.")
def test_trust_constr_inequality_con(self):
- class Sphere(ExplicitComponent):
+ class Sphere(om.ExplicitComponent):
def setup(self):
self.add_input('x', np.array([1.5, 1.5]))
@@ -1051,13 +1051,13 @@ def compute(self, inputs, outputs, discrete_inputs=None, discrete_outputs=None):
x0 = np.array([1.2, 1.5])
- prob = Problem()
- indeps = prob.model.add_subsystem('indeps', IndepVarComp(), promotes=['*'])
+ prob = om.Problem()
+ indeps = prob.model.add_subsystem('indeps', om.IndepVarComp(), promotes=['*'])
indeps.add_output('x', list(x0))
prob.model.add_subsystem('sphere', Sphere(), promotes=['*'])
- prob.model.add_subsystem('con', ExecComp('c=sum(x)', x=np.ones(2)), promotes=['*'])
- prob.driver = ScipyOptimizeDriver()
+ prob.model.add_subsystem('con', om.ExecComp('c=sum(x)', x=np.ones(2)), promotes=['*'])
+ prob.driver = om.ScipyOptimizeDriver()
prob.driver.options['optimizer'] = 'trust-constr'
prob.driver.options['tol'] = 1e-5
prob.driver.options['maxiter'] = 2000
@@ -1075,7 +1075,7 @@ def compute(self, inputs, outputs, discrete_inputs=None, discrete_outputs=None):
@unittest.skipUnless(LooseVersion(scipy_version) >= LooseVersion("1.2"),
"scipy >= 1.2 is required.")
def test_trust_constr_bounds(self):
- class Rosenbrock(ExplicitComponent):
+ class Rosenbrock(om.ExplicitComponent):
def setup(self):
self.add_input('x', np.array([-1.5, -1.5]))
@@ -1088,12 +1088,12 @@ def compute(self, inputs, outputs, discrete_inputs=None, discrete_outputs=None):
x0 = np.array([-1.5, -1.5])
- prob = Problem()
- indeps = prob.model.add_subsystem('indeps', IndepVarComp(), promotes=['*'])
+ prob = om.Problem()
+ indeps = prob.model.add_subsystem('indeps', om.IndepVarComp(), promotes=['*'])
indeps.add_output('x', list(x0))
prob.model.add_subsystem('sphere', Rosenbrock(), promotes=['*'])
- prob.driver = ScipyOptimizeDriver()
+ prob.driver = om.ScipyOptimizeDriver()
prob.driver.options['optimizer'] = 'trust-constr'
prob.driver.options['tol'] = 1e-7
prob.driver.options['maxiter'] = 2000
@@ -1110,17 +1110,17 @@ def compute(self, inputs, outputs, discrete_inputs=None, discrete_outputs=None):
def test_simple_paraboloid_lower_linear(self):
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', 50.0), promotes=['*'])
- model.add_subsystem('p2', IndepVarComp('y', 50.0), promotes=['*'])
+ model.add_subsystem('p1', om.IndepVarComp('x', 50.0), promotes=['*'])
+ model.add_subsystem('p2', om.IndepVarComp('y', 50.0), promotes=['*'])
model.add_subsystem('comp', Paraboloid(), promotes=['*'])
- model.add_subsystem('con', ExecComp('c = x - y'), promotes=['*'])
+ model.add_subsystem('con', om.ExecComp('c = x - y'), promotes=['*'])
prob.set_solver_print(level=0)
- prob.driver = ScipyOptimizeDriver()
+ prob.driver = om.ScipyOptimizeDriver()
prob.driver.options['optimizer'] = 'SLSQP'
prob.driver.options['tol'] = 1e-9
prob.driver.options['disp'] = False
@@ -1130,7 +1130,7 @@ def test_simple_paraboloid_lower_linear(self):
model.add_objective('f_xy')
model.add_constraint('c', lower=15.0, linear=True)
- prob.setup(check=False)
+ prob.setup()
failed = prob.run_driver()
@@ -1145,17 +1145,17 @@ def test_simple_paraboloid_lower_linear(self):
def test_simple_paraboloid_equality_linear(self):
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', 50.0), promotes=['*'])
- model.add_subsystem('p2', IndepVarComp('y', 50.0), promotes=['*'])
+ model.add_subsystem('p1', om.IndepVarComp('x', 50.0), promotes=['*'])
+ model.add_subsystem('p2', om.IndepVarComp('y', 50.0), promotes=['*'])
model.add_subsystem('comp', Paraboloid(), promotes=['*'])
- model.add_subsystem('con', ExecComp('c = - x + y'), promotes=['*'])
+ model.add_subsystem('con', om.ExecComp('c = - x + y'), promotes=['*'])
prob.set_solver_print(level=0)
- prob.driver = ScipyOptimizeDriver()
+ prob.driver = om.ScipyOptimizeDriver()
prob.driver.options['optimizer'] = 'SLSQP'
prob.driver.options['tol'] = 1e-9
prob.driver.options['disp'] = False
@@ -1165,7 +1165,7 @@ def test_simple_paraboloid_equality_linear(self):
model.add_objective('f_xy')
model.add_constraint('c', equals=-15.0, linear=True)
- prob.setup(check=False)
+ prob.setup()
failed = prob.run_driver()
@@ -1178,17 +1178,17 @@ def test_simple_paraboloid_equality_linear(self):
def test_debug_print_option_totals(self):
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', 50.0), promotes=['*'])
- model.add_subsystem('p2', IndepVarComp('y', 50.0), promotes=['*'])
+ model.add_subsystem('p1', om.IndepVarComp('x', 50.0), promotes=['*'])
+ model.add_subsystem('p2', om.IndepVarComp('y', 50.0), promotes=['*'])
model.add_subsystem('comp', Paraboloid(), promotes=['*'])
- model.add_subsystem('con', ExecComp('c = - x + y'), promotes=['*'])
+ model.add_subsystem('con', om.ExecComp('c = - x + y'), promotes=['*'])
prob.set_solver_print(level=0)
- prob.driver = ScipyOptimizeDriver()
+ prob.driver = om.ScipyOptimizeDriver()
prob.driver.options['optimizer'] = 'SLSQP'
prob.driver.options['tol'] = 1e-9
prob.driver.options['disp'] = False
@@ -1209,17 +1209,17 @@ def test_debug_print_option_totals(self):
self.assertTrue('Solving variable: comp.f_xy' in output)
self.assertTrue('Solving variable: con.c' in output)
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', 50.0), promotes=['*'])
- model.add_subsystem('p2', IndepVarComp('y', 50.0), promotes=['*'])
+ model.add_subsystem('p1', om.IndepVarComp('x', 50.0), promotes=['*'])
+ model.add_subsystem('p2', om.IndepVarComp('y', 50.0), promotes=['*'])
model.add_subsystem('comp', Paraboloid(), promotes=['*'])
- model.add_subsystem('con', ExecComp('c = - x + y'), promotes=['*'])
+ model.add_subsystem('con', om.ExecComp('c = - x + y'), promotes=['*'])
prob.set_solver_print(level=0)
- prob.driver = ScipyOptimizeDriver()
+ prob.driver = om.ScipyOptimizeDriver()
prob.driver.options['optimizer'] = 'SLSQP'
prob.driver.options['tol'] = 1e-9
prob.driver.options['disp'] = False
@@ -1242,17 +1242,17 @@ def test_debug_print_option_totals(self):
def test_debug_print_option(self):
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', 50.0), promotes=['*'])
- model.add_subsystem('p2', IndepVarComp('y', 50.0), promotes=['*'])
+ model.add_subsystem('p1', om.IndepVarComp('x', 50.0), promotes=['*'])
+ model.add_subsystem('p2', om.IndepVarComp('y', 50.0), promotes=['*'])
model.add_subsystem('comp', Paraboloid(), promotes=['*'])
- model.add_subsystem('con', ExecComp('c = - x + y'), promotes=['*'])
+ model.add_subsystem('con', om.ExecComp('c = - x + y'), promotes=['*'])
prob.set_solver_print(level=0)
- prob.driver = ScipyOptimizeDriver()
+ prob.driver = om.ScipyOptimizeDriver()
prob.driver.options['optimizer'] = 'SLSQP'
prob.driver.options['tol'] = 1e-9
prob.driver.options['disp'] = False
@@ -1264,7 +1264,7 @@ def test_debug_print_option(self):
model.add_objective('f_xy')
model.add_constraint('c', upper=-15.0)
- prob.setup(check=False)
+ prob.setup()
failed, output = run_driver(prob)
@@ -1292,10 +1292,10 @@ def test_debug_print_option(self):
def test_sellar_mdf_linear_con_directsolver(self):
# This test makes sure that we call solve_nonlinear first if we have any linear constraints
# to cache.
- prob = Problem()
+ prob = om.Problem()
model = prob.model = SellarDerivatives()
- prob.driver = ScipyOptimizeDriver()
+ prob.driver = om.ScipyOptimizeDriver()
prob.driver.options['optimizer'] = 'SLSQP'
prob.driver.options['tol'] = 1e-3
prob.driver.options['disp'] = False
@@ -1324,17 +1324,17 @@ def test_sellar_mdf_linear_con_directsolver(self):
def test_call_final_setup(self):
# Make sure we call final setup if our model hasn't been setup.
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', 50.0), promotes=['*'])
- model.add_subsystem('p2', IndepVarComp('y', 50.0), promotes=['*'])
+ model.add_subsystem('p1', om.IndepVarComp('x', 50.0), promotes=['*'])
+ model.add_subsystem('p2', om.IndepVarComp('y', 50.0), promotes=['*'])
model.add_subsystem('comp', Paraboloid(), promotes=['*'])
- model.add_subsystem('con', ExecComp('c = - x + y'), promotes=['*'])
+ model.add_subsystem('con', om.ExecComp('c = - x + y'), promotes=['*'])
prob.set_solver_print(level=0)
- prob.driver = ScipyOptimizeDriver()
+ prob.driver = om.ScipyOptimizeDriver()
prob.driver.options['optimizer'] = 'SLSQP'
prob.driver.options['tol'] = 1e-9
prob.driver.options['disp'] = False
@@ -1344,7 +1344,7 @@ def test_call_final_setup(self):
model.add_objective('f_xy')
model.add_constraint('c', equals=-15.0)
- prob.setup(check=False)
+ prob.setup()
with self.assertRaises(RuntimeError) as cm:
totals = prob.check_totals(method='fd', out_stream=False)
@@ -1357,17 +1357,17 @@ def test_call_final_setup(self):
class TestScipyOptimizeDriverFeatures(unittest.TestCase):
def test_feature_basic(self):
- from openmdao.api import Problem, Group, IndepVarComp, ScipyOptimizeDriver
+ import openmdao.api as om
from openmdao.test_suite.components.paraboloid import Paraboloid
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', 50.0), promotes=['*'])
- model.add_subsystem('p2', IndepVarComp('y', 50.0), promotes=['*'])
+ model.add_subsystem('p1', om.IndepVarComp('x', 50.0), promotes=['*'])
+ model.add_subsystem('p2', om.IndepVarComp('y', 50.0), promotes=['*'])
model.add_subsystem('comp', Paraboloid(), promotes=['*'])
- prob.driver = ScipyOptimizeDriver()
+ prob.driver = om.ScipyOptimizeDriver()
prob.driver.options['optimizer'] = 'SLSQP'
prob.driver.options['tol'] = 1e-9
prob.driver.options['disp'] = True
@@ -1384,23 +1384,23 @@ def test_feature_basic(self):
assert_rel_error(self, prob['y'], -7.3333333, 1e-6)
def test_feature_optimizer(self):
- from openmdao.api import Problem, Group, IndepVarComp, ScipyOptimizeDriver
+ import openmdao.api as om
from openmdao.test_suite.components.paraboloid import Paraboloid
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', 50.0), promotes=['*'])
- model.add_subsystem('p2', IndepVarComp('y', 50.0), promotes=['*'])
+ model.add_subsystem('p1', om.IndepVarComp('x', 50.0), promotes=['*'])
+ model.add_subsystem('p2', om.IndepVarComp('y', 50.0), promotes=['*'])
model.add_subsystem('comp', Paraboloid(), promotes=['*'])
- prob.driver = ScipyOptimizeDriver(optimizer='COBYLA')
+ prob.driver = om.ScipyOptimizeDriver(optimizer='COBYLA')
model.add_design_var('x', lower=-50.0, upper=50.0)
model.add_design_var('y', lower=-50.0, upper=50.0)
model.add_objective('f_xy')
- prob.setup(check=False)
+ prob.setup()
prob.run_driver()
@@ -1408,24 +1408,24 @@ def test_feature_optimizer(self):
assert_rel_error(self, prob['y'], -7.3333333, 1e-6)
def test_feature_maxiter(self):
- from openmdao.api import Problem, Group, IndepVarComp, ScipyOptimizeDriver
+ import openmdao.api as om
from openmdao.test_suite.components.paraboloid import Paraboloid
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', 50.0), promotes=['*'])
- model.add_subsystem('p2', IndepVarComp('y', 50.0), promotes=['*'])
+ model.add_subsystem('p1', om.IndepVarComp('x', 50.0), promotes=['*'])
+ model.add_subsystem('p2', om.IndepVarComp('y', 50.0), promotes=['*'])
model.add_subsystem('comp', Paraboloid(), promotes=['*'])
- prob.driver = ScipyOptimizeDriver()
+ prob.driver = om.ScipyOptimizeDriver()
prob.driver.options['maxiter'] = 20
model.add_design_var('x', lower=-50.0, upper=50.0)
model.add_design_var('y', lower=-50.0, upper=50.0)
model.add_objective('f_xy')
- prob.setup(check=False)
+ prob.setup()
prob.run_driver()
@@ -1433,24 +1433,24 @@ def test_feature_maxiter(self):
assert_rel_error(self, prob['y'], -7.3333333, 1e-6)
def test_feature_tol(self):
- from openmdao.api import Problem, Group, IndepVarComp, ScipyOptimizeDriver
+ import openmdao.api as om
from openmdao.test_suite.components.paraboloid import Paraboloid
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', 50.0), promotes=['*'])
- model.add_subsystem('p2', IndepVarComp('y', 50.0), promotes=['*'])
+ model.add_subsystem('p1', om.IndepVarComp('x', 50.0), promotes=['*'])
+ model.add_subsystem('p2', om.IndepVarComp('y', 50.0), promotes=['*'])
model.add_subsystem('comp', Paraboloid(), promotes=['*'])
- prob.driver = ScipyOptimizeDriver()
+ prob.driver = om.ScipyOptimizeDriver()
prob.driver.options['tol'] = 1.0e-9
model.add_design_var('x', lower=-50.0, upper=50.0)
model.add_design_var('y', lower=-50.0, upper=50.0)
model.add_objective('f_xy')
- prob.setup(check=False)
+ prob.setup()
prob.run_driver()
@@ -1459,20 +1459,20 @@ def test_feature_tol(self):
def test_debug_print_option(self):
- from openmdao.api import Problem, Group, IndepVarComp, ScipyOptimizeDriver, ExecComp
+ import openmdao.api as om
from openmdao.test_suite.components.paraboloid import Paraboloid
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', 50.0), promotes=['*'])
- model.add_subsystem('p2', IndepVarComp('y', 50.0), promotes=['*'])
+ model.add_subsystem('p1', om.IndepVarComp('x', 50.0), promotes=['*'])
+ model.add_subsystem('p2', om.IndepVarComp('y', 50.0), promotes=['*'])
model.add_subsystem('comp', Paraboloid(), promotes=['*'])
- model.add_subsystem('con', ExecComp('c = - x + y'), promotes=['*'])
+ model.add_subsystem('con', om.ExecComp('c = - x + y'), promotes=['*'])
prob.set_solver_print(level=0)
- prob.driver = ScipyOptimizeDriver()
+ prob.driver = om.ScipyOptimizeDriver()
prob.driver.options['optimizer'] = 'SLSQP'
prob.driver.options['tol'] = 1e-9
prob.driver.options['disp'] = False
@@ -1484,26 +1484,26 @@ def test_debug_print_option(self):
model.add_objective('f_xy')
model.add_constraint('c', upper=-15.0)
- prob.setup(check=False)
+ prob.setup()
prob.run_driver()
def test_debug_print_option_totals(self):
- from openmdao.api import Problem, Group, IndepVarComp, ScipyOptimizeDriver, ExecComp
+ import openmdao.api as om
from openmdao.test_suite.components.paraboloid import Paraboloid
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', 50.0), promotes=['*'])
- model.add_subsystem('p2', IndepVarComp('y', 50.0), promotes=['*'])
+ model.add_subsystem('p1', om.IndepVarComp('x', 50.0), promotes=['*'])
+ model.add_subsystem('p2', om.IndepVarComp('y', 50.0), promotes=['*'])
model.add_subsystem('comp', Paraboloid(), promotes=['*'])
- model.add_subsystem('con', ExecComp('c = - x + y'), promotes=['*'])
+ model.add_subsystem('con', om.ExecComp('c = - x + y'), promotes=['*'])
prob.set_solver_print(level=0)
- prob.driver = ScipyOptimizeDriver()
+ prob.driver = om.ScipyOptimizeDriver()
prob.driver.options['optimizer'] = 'SLSQP'
prob.driver.options['tol'] = 1e-9
prob.driver.options['disp'] = False
@@ -1515,26 +1515,26 @@ def test_debug_print_option_totals(self):
model.add_objective('f_xy')
model.add_constraint('c', upper=-15.0)
- prob.setup(check=False)
+ prob.setup()
prob.run_driver()
def test_multiple_objectives_error(self):
- from openmdao.api import Problem, IndepVarComp, ScipyOptimizeDriver, ExecComp
+ import openmdao.api as om
from openmdao.test_suite.components.paraboloid import Paraboloid
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', 50.0), promotes=['*'])
- model.add_subsystem('p2', IndepVarComp('y', 50.0), promotes=['*'])
+ model.add_subsystem('p1', om.IndepVarComp('x', 50.0), promotes=['*'])
+ model.add_subsystem('p2', om.IndepVarComp('y', 50.0), promotes=['*'])
model.add_subsystem('comp', Paraboloid(), promotes=['*'])
- model.add_subsystem('con', ExecComp('c = - x + y'), promotes=['*'])
+ model.add_subsystem('con', om.ExecComp('c = - x + y'), promotes=['*'])
prob.set_solver_print(level=0)
- prob.driver = ScipyOptimizeDriver()
+ prob.driver = om.ScipyOptimizeDriver()
prob.driver.options['optimizer'] = 'SLSQP'
prob.driver.options['tol'] = 1e-9
prob.driver.options['disp'] = False
@@ -1546,7 +1546,7 @@ def test_multiple_objectives_error(self):
model.add_design_var('y', lower=-50.0, upper=50.0)
model.add_objective('f_xy')
model.add_objective('c') # Second objective
- prob.setup(check=False)
+ prob.setup()
with self.assertRaises(RuntimeError):
prob.run_model()
@@ -1556,9 +1556,9 @@ def test_multiple_objectives_error(self):
def test_basinhopping(self):
- from openmdao.api import Problem, IndepVarComp, ScipyOptimizeDriver
+ import openmdao.api as om
- class Func2d(ExplicitComponent):
+ class Func2d(om.ExplicitComponent):
def setup(self):
self.add_input('x', np.ones(2))
@@ -1576,13 +1576,13 @@ def compute_partials(self, inputs, partials):
df[1] = 2. * x[1] + 0.2
partials['f', 'x'] = df
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('indeps', IndepVarComp('x', np.ones(2)), promotes=['*'])
+ model.add_subsystem('indeps', om.IndepVarComp('x', np.ones(2)), promotes=['*'])
model.add_subsystem('func2d', Func2d(), promotes=['*'])
- prob.driver = driver = ScipyOptimizeDriver()
+ prob.driver = driver = om.ScipyOptimizeDriver()
driver.options['optimizer'] = 'basinhopping'
driver.options['disp'] = False
driver.opt_settings['niter'] = 1000
@@ -1598,9 +1598,9 @@ def compute_partials(self, inputs, partials):
def test_basinhopping_bounded(self):
# It should find the local minimum, which is inside the bounds
- from openmdao.api import Problem, IndepVarComp, ScipyOptimizeDriver
+ import openmdao.api as om
- class Func2d(ExplicitComponent):
+ class Func2d(om.ExplicitComponent):
def setup(self):
self.add_input('x', np.ones(2))
@@ -1618,13 +1618,13 @@ def compute_partials(self, inputs, partials):
df[1] = 2. * x[1] + 0.2
partials['f', 'x'] = df
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('indeps', IndepVarComp('x', np.ones(2)), promotes=['*'])
+ model.add_subsystem('indeps', om.IndepVarComp('x', np.ones(2)), promotes=['*'])
model.add_subsystem('func2d', Func2d(), promotes=['*'])
- prob.driver = driver = ScipyOptimizeDriver()
+ prob.driver = driver = om.ScipyOptimizeDriver()
driver.options['optimizer'] = 'basinhopping'
driver.options['disp'] = False
driver.opt_settings['niter'] = 200
@@ -1641,7 +1641,7 @@ def compute_partials(self, inputs, partials):
"scipy >= 1.2 is required.")
def test_dual_annealing(self):
- from openmdao.api import Problem, IndepVarComp, ScipyOptimizeDriver
+ import openmdao.api as om
size = 6 # size of the design variable
@@ -1650,7 +1650,7 @@ def rosenbrock(x):
x_1 = x[1:]
return sum((1 - x_0) ** 2) + 100 * sum((x_1 - x_0 ** 2) ** 2)
- class Rosenbrock(ExplicitComponent):
+ class Rosenbrock(om.ExplicitComponent):
def setup(self):
self.add_input('x', 1.5*np.ones(size))
@@ -1660,13 +1660,13 @@ def compute(self, inputs, outputs, discrete_inputs=None, discrete_outputs=None):
x = inputs['x']
outputs['f'] = rosenbrock(x)
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('indeps', IndepVarComp('x', np.ones(size)), promotes=['*'])
+ model.add_subsystem('indeps', om.IndepVarComp('x', np.ones(size)), promotes=['*'])
model.add_subsystem('rosen', Rosenbrock(), promotes=['*'])
- prob.driver = driver = ScipyOptimizeDriver()
+ prob.driver = driver = om.ScipyOptimizeDriver()
driver.options['optimizer'] = 'dual_annealing'
driver.options['disp'] = False
driver.options['tol'] = 1e-9
@@ -1684,7 +1684,7 @@ def compute(self, inputs, outputs, discrete_inputs=None, discrete_outputs=None):
@unittest.skipUnless(LooseVersion(scipy_version) >= LooseVersion("1.2"),
"scipy >= 1.2 is required.")
def test_dual_annealing_rastrigin(self):
- from openmdao.api import Problem, IndepVarComp, ScipyOptimizeDriver
+ import openmdao.api as om
# Example from the Scipy documentation
size = 3 # size of the design variable
@@ -1693,7 +1693,7 @@ def rastrigin(x):
a = 10 # constant
return np.sum(np.square(x) - a * np.cos(2 * np.pi * x)) + a * np.size(x)
- class Rastrigin(ExplicitComponent):
+ class Rastrigin(om.ExplicitComponent):
def setup(self):
self.add_input('x', 0.5 * np.ones(size))
@@ -1703,13 +1703,13 @@ def compute(self, inputs, outputs, discrete_inputs=None, discrete_outputs=None):
x = inputs['x']
outputs['f'] = rastrigin(x)
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('indeps', IndepVarComp('x', np.ones(size)), promotes=['*'])
+ model.add_subsystem('indeps', om.IndepVarComp('x', np.ones(size)), promotes=['*'])
model.add_subsystem('rastrigin', Rastrigin(), promotes=['*'])
- prob.driver = driver = ScipyOptimizeDriver()
+ prob.driver = driver = om.ScipyOptimizeDriver()
driver.options['optimizer'] = 'dual_annealing'
driver.options['disp'] = False
driver.options['tol'] = 1e-9
@@ -1728,7 +1728,7 @@ def test_differential_evolution(self):
# Source of example:
# https://scipy.github.io/devdocs/generated/scipy.optimize.dual_annealing.html
- from openmdao.api import Problem, IndepVarComp, ScipyOptimizeDriver
+ import openmdao.api as om
size = 3 # size of the design variable
@@ -1736,7 +1736,7 @@ def rastrigin(x):
a = 10 # constant
return np.sum(np.square(x) - a * np.cos(2 * np.pi * x)) + a * np.size(x)
- class Rastrigin(ExplicitComponent):
+ class Rastrigin(om.ExplicitComponent):
def setup(self):
self.add_input('x', 0.5 * np.ones(size))
@@ -1746,13 +1746,13 @@ def compute(self, inputs, outputs, discrete_inputs=None, discrete_outputs=None):
x = inputs['x']
outputs['f'] = rastrigin(x)
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('indeps', IndepVarComp('x', np.ones(size)), promotes=['*'])
+ model.add_subsystem('indeps', om.IndepVarComp('x', np.ones(size)), promotes=['*'])
model.add_subsystem('rastrigin', Rastrigin(), promotes=['*'])
- prob.driver = driver = ScipyOptimizeDriver()
+ prob.driver = driver = om.ScipyOptimizeDriver()
driver.options['optimizer'] = 'differential_evolution'
driver.options['disp'] = False
driver.options['tol'] = 1e-9
@@ -1769,7 +1769,7 @@ def test_differential_evolution_bounded(self):
# https://scipy.github.io/devdocs/generated/scipy.optimize.dual_annealing.html
# In this example the minimum is not the unbounded global minimum.
- from openmdao.api import Problem, IndepVarComp, ScipyOptimizeDriver
+ import openmdao.api as om
size = 3 # size of the design variable
@@ -1777,7 +1777,7 @@ def rastrigin(x):
a = 10 # constant
return np.sum(np.square(x) - a * np.cos(2 * np.pi * x)) + a * np.size(x)
- class Rastrigin(ExplicitComponent):
+ class Rastrigin(om.ExplicitComponent):
def setup(self):
self.add_input('x', 0.5 * np.ones(size))
@@ -1787,13 +1787,13 @@ def compute(self, inputs, outputs, discrete_inputs=None, discrete_outputs=None):
x = inputs['x']
outputs['f'] = rastrigin(x)
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('indeps', IndepVarComp('x', np.ones(size)), promotes=['*'])
+ model.add_subsystem('indeps', om.IndepVarComp('x', np.ones(size)), promotes=['*'])
model.add_subsystem('rastrigin', Rastrigin(), promotes=['*'])
- prob.driver = driver = ScipyOptimizeDriver()
+ prob.driver = driver = om.ScipyOptimizeDriver()
driver.options['optimizer'] = 'differential_evolution'
driver.options['disp'] = False
driver.options['tol'] = 1e-9
@@ -1812,7 +1812,7 @@ def test_shgo(self):
# Source of example:
# https://scipy.github.io/devdocs/generated/scipy.optimize.dual_annealing.html
- from openmdao.api import Problem, IndepVarComp, ScipyOptimizeDriver
+ import openmdao.api as om
size = 3 # size of the design variable
@@ -1820,7 +1820,7 @@ def rastrigin(x):
a = 10 # constant
return np.sum(np.square(x) - a*np.cos(2*np.pi*x)) + a*np.size(x)
- class Rastrigin(ExplicitComponent):
+ class Rastrigin(om.ExplicitComponent):
def setup(self):
self.add_input('x', np.ones(size))
@@ -1830,13 +1830,13 @@ def compute(self, inputs, outputs, discrete_inputs=None, discrete_outputs=None):
x = inputs['x']
outputs['f'] = rastrigin(x)
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('indeps', IndepVarComp('x', np.ones(size)), promotes=['*'])
+ model.add_subsystem('indeps', om.IndepVarComp('x', np.ones(size)), promotes=['*'])
model.add_subsystem('rastrigin', Rastrigin(), promotes=['*'])
- prob.driver = driver = ScipyOptimizeDriver()
+ prob.driver = driver = om.ScipyOptimizeDriver()
driver.options['optimizer'] = 'shgo'
driver.options['disp'] = False
driver.options['maxiter'] = 100
diff --git a/openmdao/jacobians/tests/test_jacobian.py b/openmdao/jacobians/tests/test_jacobian.py
index 97bcd74093..772dce7f38 100644
--- a/openmdao/jacobians/tests/test_jacobian.py
+++ b/openmdao/jacobians/tests/test_jacobian.py
@@ -223,7 +223,7 @@ def test_src_indices(self, assembled_jac, comp_jac_class, nested, lincalls):
self._check_rev(self.prob, rev_check)
def _setup_model(self, assembled_jac, comp_jac_class, nested, lincalls):
- self.prob = prob = Problem(model=Group())
+ self.prob = prob = Problem()
if nested:
top = prob.model.add_subsystem('G1', Group())
else:
@@ -248,7 +248,7 @@ def _setup_model(self, assembled_jac, comp_jac_class, nested, lincalls):
prob.set_solver_print(level=0)
- prob.setup(check=False)
+ prob.setup()
prob.run_model()
@@ -312,10 +312,10 @@ def test_jacobian_set_item(self, dtypes, shapes):
shape, constructor, expected_shape = shapes
dtype, value = dtypes
- prob = Problem(model=Group())
+ prob = Problem()
comp = ExplicitSetItemComp(dtype, value, shape, constructor)
prob.model.add_subsystem('C1', comp)
- prob.setup(check=False)
+ prob.setup()
prob.set_solver_print(level=0)
prob.run_model()
@@ -400,7 +400,7 @@ def compute_partials(self, inputs, J):
prob = Problem()
- model = prob.model = Group()
+ model = prob.model
model.add_subsystem('px', IndepVarComp('x', np.array([1.0, 1.0])), promotes=['x'])
model.add_subsystem('pz', IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
@@ -450,7 +450,7 @@ def test_assembled_jac_bad_key(self):
prob.model.connect('C1.c', 'C2.b')
prob.model.connect('C2.d', 'C3.a')
prob.set_solver_print(level=0)
- prob.setup(check=False)
+ prob.setup()
prob.run_model()
assert_rel_error(self, prob['C3.ee'], 8.0, 0000.1)
@@ -476,7 +476,7 @@ def test_assembled_jacobian_submat_indexing_dense(self):
prob.model.connect('indeps.y', 'G1.C1.x')
prob.model.connect('indeps.z', 'G1.C2.x')
- prob.setup(check=False)
+ prob.setup()
prob.run_model()
assert_rel_error(self, prob['G1.C1.y'], 50.0)
@@ -507,7 +507,7 @@ def test_assembled_jacobian_submat_indexing_csc(self):
prob.model.connect('indeps.y', 'G1.C1.x')
prob.model.connect('indeps.z', 'G1.C2.x')
- prob.setup(check=False)
+ prob.setup()
prob.run_model()
assert_rel_error(self, prob['G1.C1.y'], 50.0)
@@ -723,7 +723,7 @@ def compute_partials(self, inputs, partials):
prob = Problem()
- model = prob.model = Group()
+ model = prob.model
model.add_subsystem('p1', IndepVarComp('x', val=1.0))
model.add_subsystem('comp', Undeclared())
@@ -754,7 +754,7 @@ def test_one_src_2_tgts_with_src_indices_densejac(self):
prob.model.connect('indeps.x', 'G1.C1.x', src_indices=[0,1])
prob.model.connect('indeps.x', 'G1.C1.y', src_indices=[2,3])
- prob.setup(check=False)
+ prob.setup()
prob.run_model()
J = prob.compute_totals(of=['G1.C1.z'], wrt=['indeps.x'])
diff --git a/openmdao/jacobians/tests/test_jacobian_features.py b/openmdao/jacobians/tests/test_jacobian_features.py
index 2edbdcac11..58cc7fffba 100644
--- a/openmdao/jacobians/tests/test_jacobian_features.py
+++ b/openmdao/jacobians/tests/test_jacobian_features.py
@@ -1,24 +1,26 @@
+"""
+Unit and feature doc tests for partial derivative specifiation.
+"""
from __future__ import print_function, division
-
+import itertools
import unittest
+from six import iteritems
+
import numpy as np
import scipy as sp
-import itertools
-from six import iteritems
try:
from parameterized import parameterized
except ImportError:
from openmdao.utils.assert_utils import SkipParameterized as parameterized
-from openmdao.api import IndepVarComp, Group, Problem, ExplicitComponent, \
- ScipyKrylov, DirectSolver
+import openmdao.api as om
from openmdao.utils.assert_utils import assert_rel_error
-class SimpleComp(ExplicitComponent):
+class SimpleComp(om.ExplicitComponent):
def setup(self):
self.add_input('x', shape=1)
self.add_input('y1', shape=2)
@@ -80,7 +82,7 @@ def setup(self):
self.declare_partials('g', 'y[13]', val=[[1, 0], [1, 0], [0, 1], [0, 1]])
-class SimpleCompConst(ExplicitComponent):
+class SimpleCompConst(om.ExplicitComponent):
def setup(self):
self.add_input('x', shape=1)
self.add_input('y1', shape=2)
@@ -167,8 +169,8 @@ def compute_partials(self, inputs, partials):
class TestJacobianFeatures(unittest.TestCase):
def setUp(self):
- self.model = model = Group()
- comp = IndepVarComp()
+ self.model = model = om.Group()
+ comp = om.IndepVarComp()
variables = (
('x', 1.),
('y1', np.ones(2)),
@@ -180,16 +182,16 @@ def setUp(self):
comp.add_output(name, val)
model.add_subsystem('input_comp', comp, promotes=['x', 'y1', 'y2', 'y3', 'z'])
- self.problem = Problem(model=model)
+ self.problem = om.Problem(model=model)
self.problem.set_solver_print(level=0)
- model.linear_solver = ScipyKrylov(assemble_jac=True)
+ model.linear_solver = om.ScipyKrylov(assemble_jac=True)
def test_dependence(self):
problem = self.problem
model = problem.model
model.add_subsystem('simple', SimpleCompConst(),
promotes=['x', 'y1', 'y2', 'y3', 'z', 'f', 'g'])
- problem.setup(check=False)
+ problem.setup()
problem.run_model()
# Note: since this test is looking for something not user-facing, it is inherently fragile
@@ -240,7 +242,7 @@ def test_bad_sizes(self, partials_kwargs, error_msg):
# Some of the tests are expected to fail in setup, and some in final_setup, so put them
# both under the assert.
with self.assertRaises(ValueError) as ex:
- problem.setup(check=False)
+ problem.setup()
problem.run_model()
self.assertRegexpMatches(str(ex.exception), error_msg)
@@ -255,25 +257,25 @@ def test_bad_names(self, partials_kwargs, error_msg):
problem = self.problem
model = problem.model
model.add_subsystem('simple', comp, promotes=['x', 'y1', 'y2', 'y3', 'z', 'f', 'g'])
- problem.setup(check=False)
+ problem.setup()
with self.assertRaises(ValueError) as ex:
problem.run_model()
self.assertEquals(str(ex.exception), error_msg)
def test_const_jacobian(self):
- model = Group()
- comp = IndepVarComp()
+ model = om.Group()
+ comp = om.IndepVarComp()
for name, val in (('x', 1.), ('y1', np.ones(2)), ('y2', np.ones(2)),
('y3', np.ones(2)), ('z', np.ones((2, 2)))):
comp.add_output(name, val)
model.add_subsystem('input_comp', comp, promotes=['x', 'y1', 'y2', 'y3', 'z'])
- problem = Problem(model=model)
+ problem = om.Problem(model=model)
problem.set_solver_print(level=0)
- model.linear_solver = ScipyKrylov(assemble_jac=True)
+ model.linear_solver = om.ScipyKrylov(assemble_jac=True)
model.add_subsystem('simple', SimpleCompConst(),
promotes=['x', 'y1', 'y2', 'y3', 'z', 'f', 'g'])
- problem.setup(check=False)
+ problem.setup()
problem.run_model()
totals = problem.compute_totals(['f', 'g'],
['x', 'y1', 'y2', 'y3', 'z'])
@@ -353,7 +355,7 @@ def test_mixed_fd(self):
assert_rel_error(self, totals, jacobian, 1e-6)
def test_units_fd(self):
- class UnitCompBase(ExplicitComponent):
+ class UnitCompBase(om.ExplicitComponent):
def setup(self):
self.add_input('T', val=284., units="degR", desc="Temperature")
self.add_input('P', val=1., units='lbf/inch**2', desc="Pressure")
@@ -367,9 +369,9 @@ def compute(self, inputs, outputs):
outputs['flow:T'] = inputs['T']
outputs['flow:P'] = inputs['P']
- p = Problem()
- model = p.model = Group()
- indep = model.add_subsystem('indep', IndepVarComp(), promotes=['*'])
+ p = om.Problem()
+ model = p.model
+ indep = model.add_subsystem('indep', om.IndepVarComp(), promotes=['*'])
indep.add_output('T', val=100., units='degK')
indep.add_output('P', val=1., units='bar')
@@ -399,15 +401,15 @@ def compute(self, inputs, outputs):
assert_rel_error(self, jac[deriv]['value'], val, 1e-6)
def test_reference(self):
- class TmpComp(ExplicitComponent):
+ class TmpComp(om.ExplicitComponent):
def initialize(self):
self.A = np.ones((3, 3))
def setup(self):
- self.add_output('y', shape=(3,))
- self.add_output('z', shape=(3,))
- self.add_input('x', shape=(3,), units='degF')
+ self.add_output('y', shape=(3, ))
+ self.add_output('z', shape=(3, ))
+ self.add_input('x', shape=(3, ), units='degF')
self.declare_partials(of='*', wrt='*')
@@ -415,9 +417,9 @@ def compute_partials(self, inputs, partials):
partials['y', 'x'] = self.A
partials['z', 'x'] = self.A
- p = Problem()
- model = p.model = Group()
- indep = model.add_subsystem('indep', IndepVarComp(), promotes=['*'])
+ p = om.Problem()
+ model = p.model
+ indep = model.add_subsystem('indep', om.IndepVarComp(), promotes=['*'])
indep.add_output('x', val=100., shape=(3,), units='degK')
@@ -437,23 +439,23 @@ class TestJacobianForDocs(unittest.TestCase):
def test_const_jacobian(self):
import numpy as np
- from openmdao.api import Problem, Group, IndepVarComp, DirectSolver
+ import openmdao.api as om
from openmdao.jacobians.tests.test_jacobian_features import SimpleCompConst
- model = Group(assembled_jac_type='dense')
- comp = IndepVarComp()
+ model = om.Group(assembled_jac_type='dense')
+ comp = om.IndepVarComp()
for name, val in (('x', 1.), ('y1', np.ones(2)), ('y2', np.ones(2)),
('y3', np.ones(2)), ('z', np.ones((2, 2)))):
comp.add_output(name, val)
model.add_subsystem('input_comp', comp, promotes=['x', 'y1', 'y2', 'y3', 'z'])
- problem = Problem(model=model)
+ problem = om.Problem(model=model)
problem.set_solver_print(0)
- model.linear_solver = DirectSolver(assemble_jac=True)
+ model.linear_solver = om.DirectSolver(assemble_jac=True)
model.add_subsystem('simple', SimpleCompConst(),
promotes=['x', 'y1', 'y2', 'y3', 'z', 'f', 'g'])
- problem.setup(check=False)
+ problem.setup()
problem.run_model()
totals = problem.compute_totals(['f', 'g'],
['x', 'y1', 'y2', 'y3', 'z'])
@@ -472,14 +474,16 @@ def test_const_jacobian(self):
def test_sparse_jacobian_in_place(self):
import numpy as np
- from openmdao.api import Problem, Group, IndepVarComp, ExplicitComponent
+ import openmdao.api as om
- class SparsePartialComp(ExplicitComponent):
+ class SparsePartialComp(om.ExplicitComponent):
def setup(self):
self.add_input('x', shape=(4,))
self.add_output('f', shape=(2,))
- self.declare_partials(of='f', wrt='x', rows=[0,1,1,1], cols=[0,1,2,3])
+ self.declare_partials(of='f', wrt='x',
+ rows=[0, 1, 1, 1],
+ cols=[0, 1, 2, 3])
def compute_partials(self, inputs, partials):
pd = partials['f', 'x']
@@ -497,8 +501,8 @@ def compute_partials(self, inputs, partials):
pd[3] = 4
- model = Group()
- comp = IndepVarComp()
+ model = om.Group()
+ comp = om.IndepVarComp()
comp.add_output('x', np.ones(4))
model.add_subsystem('input', comp)
@@ -506,8 +510,8 @@ def compute_partials(self, inputs, partials):
model.connect('input.x', 'example.x')
- problem = Problem(model=model)
- problem.setup(check=False)
+ problem = om.Problem(model=model)
+ problem.setup()
problem.run_model()
totals = problem.compute_totals(['example.f'], ['input.x'])
@@ -516,21 +520,23 @@ def compute_partials(self, inputs, partials):
def test_sparse_jacobian(self):
import numpy as np
- from openmdao.api import Problem, Group, IndepVarComp, ExplicitComponent
+ import openmdao.api as om
- class SparsePartialComp(ExplicitComponent):
+ class SparsePartialComp(om.ExplicitComponent):
def setup(self):
self.add_input('x', shape=(4,))
self.add_output('f', shape=(2,))
- self.declare_partials(of='f', wrt='x', rows=[0, 1, 1, 1], cols=[0, 1, 2, 3])
+ self.declare_partials(of='f', wrt='x',
+ rows=[0, 1, 1, 1],
+ cols=[0, 1, 2, 3])
def compute_partials(self, inputs, partials):
# Corresponds to the [(0,0), (1,1), (1,2), (1,3)] entries.
partials['f', 'x'] = [1., 2., 3., 4.]
- model = Group()
- comp = IndepVarComp()
+ model = om.Group()
+ comp = om.IndepVarComp()
comp.add_output('x', np.ones(4))
model.add_subsystem('input', comp)
@@ -538,8 +544,8 @@ def compute_partials(self, inputs, partials):
model.connect('input.x', 'example.x')
- problem = Problem(model=model)
- problem.setup(check=False)
+ problem = om.Problem(model=model)
+ problem.setup()
problem.run_model()
totals = problem.compute_totals(['example.f'], ['input.x'])
@@ -549,23 +555,25 @@ def test_sparse_jacobian_const(self):
import numpy as np
import scipy as sp
- from openmdao.api import Problem, Group, IndepVarComp, ExplicitComponent
+ import openmdao.api as om
- class SparsePartialComp(ExplicitComponent):
+ class SparsePartialComp(om.ExplicitComponent):
def setup(self):
self.add_input('x', shape=(4,))
self.add_input('y', shape=(2,))
self.add_output('f', shape=(2,))
- self.declare_partials(of='f', wrt='x', rows=[0,1,1,1], cols=[0,1,2,3],
- val=[1. , 2., 3., 4.])
+ self.declare_partials(of='f', wrt='x',
+ rows=[0, 1, 1, 1],
+ cols=[0, 1, 2, 3],
+ val=[1., 2., 3., 4.])
self.declare_partials(of='f', wrt='y', val=sp.sparse.eye(2, format='csc'))
def compute_partials(self, inputs, partials):
pass
- model = Group()
- comp = IndepVarComp()
+ model = om.Group()
+ comp = om.IndepVarComp()
comp.add_output('x', np.ones(4))
comp.add_output('y', np.ones(2))
@@ -575,8 +583,8 @@ def compute_partials(self, inputs, partials):
model.connect('input.x', 'example.x')
model.connect('input.y', 'example.y')
- problem = Problem(model=model)
- problem.setup(check=False)
+ problem = om.Problem(model=model)
+ problem.setup()
problem.run_model()
totals = problem.compute_totals(['example.f'], ['input.x', 'input.y'])
@@ -586,9 +594,9 @@ def compute_partials(self, inputs, partials):
def test_fd_glob(self):
import numpy as np
- from openmdao.api import Problem, Group, IndepVarComp, ExplicitComponent
+ import openmdao.api as om
- class FDPartialComp(ExplicitComponent):
+ class FDPartialComp(om.ExplicitComponent):
def setup(self):
self.add_input('x', shape=(4,))
self.add_input('y', shape=(2,))
@@ -607,8 +615,8 @@ def compute(self, inputs, outputs):
f[0] = x[0] + y[0]
f[1] = np.dot([0, 2, 3, 4], x) + y[1]
- model = Group()
- comp = IndepVarComp()
+ model = om.Group()
+ comp = om.IndepVarComp()
comp.add_output('x', np.ones(4))
comp.add_output('y', np.ones(2))
@@ -618,8 +626,8 @@ def compute(self, inputs, outputs):
model.connect('input.x', 'example.x')
model.connect('input.y', 'example.y')
- problem = Problem(model=model)
- problem.setup(check=False)
+ problem = om.Problem(model=model)
+ problem.setup()
problem.run_model()
totals = problem.compute_totals(['example.f'], ['input.x', 'input.y'])
@@ -630,9 +638,9 @@ def compute(self, inputs, outputs):
def test_fd_options(self):
import numpy as np
- from openmdao.api import Problem, Group, IndepVarComp, ExplicitComponent
+ import openmdao.api as om
- class FDPartialComp(ExplicitComponent):
+ class FDPartialComp(om.ExplicitComponent):
def setup(self):
self.add_input('x', shape=(4,))
@@ -652,8 +660,8 @@ def compute(self, inputs, outputs):
f[0] = x[0] + y[0]
f[1] = np.dot([0, 2, 3, 4], x) + y[1]
- model = Group()
- comp = IndepVarComp()
+ model = om.Group()
+ comp = om.IndepVarComp()
comp.add_output('x', np.ones(4))
comp.add_output('y', np.ones(2))
@@ -663,8 +671,8 @@ def compute(self, inputs, outputs):
model.connect('input.x', 'example.x')
model.connect('input.y', 'example.y')
- problem = Problem(model=model)
- problem.setup(check=False)
+ problem = om.Problem(model=model)
+ problem.setup()
problem.run_model()
totals = problem.compute_totals(['example.f'], ['input.x', 'input.y'])
diff --git a/openmdao/recorders/tests/test_distrib_sqlite_recorder.py b/openmdao/recorders/tests/test_distrib_sqlite_recorder.py
index ddf9bef30f..e328f482b3 100644
--- a/openmdao/recorders/tests/test_distrib_sqlite_recorder.py
+++ b/openmdao/recorders/tests/test_distrib_sqlite_recorder.py
@@ -117,7 +117,6 @@ def tearDown(self):
def test_distrib_record_system(self):
prob = Problem()
- prob.model = Group()
try:
prob.model.add_recorder(self.recorder)
@@ -129,7 +128,6 @@ def test_distrib_record_system(self):
def test_distrib_record_solver(self):
prob = Problem()
- prob.model = Group()
try:
prob.model.nonlinear_solver.add_recorder(self.recorder)
except RuntimeError as err:
@@ -141,7 +139,6 @@ def test_distrib_record_solver(self):
def test_distrib_record_driver(self):
size = 100 # how many items in the array
prob = Problem()
- prob.model = Group()
prob.model.add_subsystem('des_vars', IndepVarComp('x', np.ones(size)), promotes=['x'])
prob.model.add_subsystem('plus', DistributedAdder(size), promotes=['x', 'y'])
@@ -156,7 +153,7 @@ def test_distrib_record_driver(self):
prob.model.add_design_var('x')
prob.model.add_objective('sum')
- prob.setup(check=False)
+ prob.setup()
prob['x'] = np.ones(size)
diff --git a/openmdao/recorders/tests/test_sqlite_reader.py b/openmdao/recorders/tests/test_sqlite_reader.py
index 8ca53668f9..d676f99c85 100644
--- a/openmdao/recorders/tests/test_sqlite_reader.py
+++ b/openmdao/recorders/tests/test_sqlite_reader.py
@@ -12,23 +12,18 @@
import numpy as np
from six import iteritems, assertRaisesRegex
-from openmdao.api import Problem, Group, IndepVarComp, ExecComp, \
- NonlinearRunOnce, NonlinearBlockGS, LinearBlockGS, ScipyOptimizeDriver
-from openmdao.recorders.sqlite_recorder import SqliteRecorder, format_version
-from openmdao.recorders.case_reader import CaseReader
+import openmdao.api as om
+from openmdao.recorders.sqlite_recorder import format_version
from openmdao.recorders.sqlite_reader import SqliteCaseReader
from openmdao.core.tests.test_units import SpeedComp
from openmdao.test_suite.components.expl_comp_array import TestExplCompArray
+from openmdao.test_suite.components.implicit_newton_linesearch import ImplCompTwoStates
from openmdao.test_suite.components.paraboloid import Paraboloid
from openmdao.test_suite.components.sellar import SellarDerivativesGrouped, \
SellarDis1withDerivatives, SellarDis2withDerivatives, SellarProblem
from openmdao.utils.assert_utils import assert_rel_error, assert_warning
from openmdao.utils.general_utils import set_pyoptsparse_opt, determine_adder_scaler
-from openmdao.solvers.linear.scipy_iter_solver import ScipyKrylov
-from openmdao.solvers.nonlinear.newton import NewtonSolver
-from openmdao.solvers.linesearch.backtracking import ArmijoGoldsteinLS
-from openmdao.test_suite.components.implicit_newton_linesearch import ImplCompTwoStates
# check that pyoptsparse is installed
OPT, OPTIMIZER = set_pyoptsparse_opt('SLSQP')
@@ -63,7 +58,7 @@ def setUp(self):
os.chdir(self.temp_dir)
self.filename = os.path.join(self.temp_dir, "sqlite_test")
- self.recorder = SqliteRecorder(self.filename, record_viewer_data=False)
+ self.recorder = om.SqliteRecorder(self.filename, record_viewer_data=False)
def tearDown(self):
os.chdir(self.orig_dir)
@@ -82,7 +77,7 @@ def test_bad_filetype(self):
tmp.close()
with self.assertRaises(IOError) as cm:
- CaseReader(filepath)
+ om.CaseReader(filepath)
msg = 'File does not contain a valid sqlite database'
self.assertTrue(str(cm.exception).startswith(msg))
@@ -90,7 +85,7 @@ def test_bad_filetype(self):
def test_bad_filename(self):
# Pass a nonexistent file.
with self.assertRaises(IOError) as cm:
- CaseReader('junk.sql')
+ om.CaseReader('junk.sql')
self.assertTrue(str(cm.exception).startswith('File does not exist'))
@@ -101,7 +96,7 @@ def test_format_version(self):
prob.run_driver()
prob.cleanup()
- cr = CaseReader(self.filename)
+ cr = om.CaseReader(self.filename)
self.assertEqual(cr._format_version, format_version,
msg='format version not read correctly')
@@ -113,7 +108,7 @@ def test_reader_instantiates(self):
prob.run_driver()
prob.cleanup()
- cr = CaseReader(self.filename)
+ cr = om.CaseReader(self.filename)
self.assertTrue(isinstance(cr, SqliteCaseReader),
msg='CaseReader not returning the correct subclass.')
@@ -134,7 +129,7 @@ def test_invalid_source(self):
prob.run_driver()
prob.cleanup()
- cr = CaseReader(self.filename)
+ cr = om.CaseReader(self.filename)
# check that driver is our only source
self.assertEqual(cr.list_sources(), ['driver'])
@@ -164,7 +159,7 @@ def test_reading_driver_cases(self):
""" Tests that the reader returns params correctly. """
prob = SellarProblem(SellarDerivativesGrouped)
- driver = prob.driver = ScipyOptimizeDriver(tol=1e-9, disp=False)
+ driver = prob.driver = om.ScipyOptimizeDriver(tol=1e-9, disp=False)
driver.recording_options['record_desvars'] = True
driver.recording_options['record_responses'] = True
@@ -177,7 +172,7 @@ def test_reading_driver_cases(self):
prob.run_driver()
prob.cleanup()
- cr = CaseReader(self.filename)
+ cr = om.CaseReader(self.filename)
# check that we only have driver cases
self.assertEqual(cr.list_sources(), ['driver'])
@@ -243,7 +238,7 @@ def test_reading_system_cases(self):
prob.run_driver()
prob.cleanup()
- cr = CaseReader(self.filename)
+ cr = om.CaseReader(self.filename)
# check that we only have the three system sources
self.assertEqual(sorted(cr.list_sources()), ['root', 'root.d1', 'root.obj_cmp'])
@@ -297,7 +292,7 @@ def test_reading_solver_cases(self):
prob.run_driver()
prob.cleanup()
- cr = CaseReader(self.filename)
+ cr = om.CaseReader(self.filename)
# check that we only have the one solver source
self.assertEqual(sorted(cr.list_sources()), ['root.nonlinear_solver'])
@@ -324,27 +319,27 @@ def test_reading_solver_cases(self):
'rank0:Driver|0|root._solve_nonlinear|0|NonlinearBlockGS|%d' % i)
def test_reading_metadata(self):
- prob = Problem()
+ prob = om.Problem()
model = prob.model
# the Sellar problem but with units
- model.add_subsystem('px', IndepVarComp('x', 1.0, units='m', lower=-1000, upper=1000),
+ model.add_subsystem('px', om.IndepVarComp('x', 1.0, units='m', lower=-1000, upper=1000),
promotes=['x'])
- model.add_subsystem('pz', IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
+ model.add_subsystem('pz', om.IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
model.add_subsystem('d1', SellarDis1withDerivatives(), promotes=['x', 'z', 'y1', 'y2'])
model.add_subsystem('d2', SellarDis2withDerivatives(), promotes=['z', 'y1', 'y2'])
model.add_subsystem('obj_cmp',
- ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
- z=np.array([0.0, 0.0]),
- x={'value': 0.0, 'units': 'm'},
- y1={'units': 'm'}, y2={'units': 'cm'}),
+ om.ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
+ z=np.array([0.0, 0.0]),
+ x={'value': 0.0, 'units': 'm'},
+ y1={'units': 'm'}, y2={'units': 'cm'}),
promotes=['obj', 'x', 'z', 'y1', 'y2'])
- model.add_subsystem('con_cmp1', ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
- model.add_subsystem('con_cmp2', ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
+ model.add_subsystem('con_cmp1', om.ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
+ model.add_subsystem('con_cmp2', om.ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
- model.nonlinear_solver = NonlinearBlockGS(iprint=0)
- model.linear_solver = LinearBlockGS(iprint=0)
+ model.nonlinear_solver = om.NonlinearBlockGS(iprint=0)
+ model.linear_solver = om.LinearBlockGS(iprint=0)
model.add_design_var('z', lower=np.array([-10.0, 0.0]), upper=np.array([10.0, 10.0]))
model.add_design_var('x', lower=0.0, upper=10.0)
@@ -358,7 +353,7 @@ def test_reading_metadata(self):
prob.run_driver()
prob.cleanup()
- cr = CaseReader(self.filename)
+ cr = om.CaseReader(self.filename)
self.assertEqual(cr._output2meta['x']['units'], 'm')
self.assertEqual(cr._input2meta['obj_cmp.y1']['units'], 'm')
@@ -380,19 +375,19 @@ def test_reading_metadata(self):
self.assertEqual(cr._output2meta['y2']['lower'], 0.1)
def test_reading_solver_metadata(self):
- prob = SellarProblem(linear_solver=LinearBlockGS())
+ prob = SellarProblem(linear_solver=om.LinearBlockGS())
prob.setup()
prob.model.nonlinear_solver.add_recorder(self.recorder)
d1 = prob.model.d1 # SellarDis1withDerivatives (an ExplicitComponent)
- d1.nonlinear_solver = NonlinearBlockGS(maxiter=5)
+ d1.nonlinear_solver = om.NonlinearBlockGS(maxiter=5)
d1.nonlinear_solver.add_recorder(self.recorder)
prob.run_driver()
prob.cleanup()
- metadata = CaseReader(self.filename).solver_metadata
+ metadata = om.CaseReader(self.filename).solver_metadata
self.assertEqual(
sorted(metadata.keys()),
@@ -404,7 +399,7 @@ def test_reading_solver_metadata(self):
def test_reading_driver_recording_with_system_vars(self):
prob = SellarProblem(SellarDerivativesGrouped)
- driver = prob.driver = ScipyOptimizeDriver(tol=1e-9, disp=False)
+ driver = prob.driver = om.ScipyOptimizeDriver(tol=1e-9, disp=False)
driver.recording_options['record_desvars'] = True
driver.recording_options['record_responses'] = True
@@ -417,7 +412,7 @@ def test_reading_driver_recording_with_system_vars(self):
prob.run_driver()
prob.cleanup()
- cr = CaseReader(self.filename)
+ cr = om.CaseReader(self.filename)
# Test values from the last case
driver_cases = cr.list_cases('driver')
@@ -430,7 +425,7 @@ def test_reading_driver_recording_with_system_vars(self):
@unittest.skipIf(OPT is None, "pyoptsparse is not installed")
@unittest.skipIf(OPTIMIZER is None, "pyoptsparse is not providing SNOPT or SLSQP")
def test_get_child_cases(self):
- prob = SellarProblem(SellarDerivativesGrouped, nonlinear_solver=NonlinearRunOnce)
+ prob = SellarProblem(SellarDerivativesGrouped, nonlinear_solver=om.NonlinearRunOnce)
driver = prob.driver = pyOptSparseDriver(optimizer='SLSQP', print_results=False)
prob.driver.opt_settings['ACC'] = 1e-9
@@ -449,7 +444,7 @@ def test_get_child_cases(self):
prob.run_driver()
prob.cleanup()
- cr = CaseReader(self.filename)
+ cr = om.CaseReader(self.filename)
# check driver cases
expected_coords = [
@@ -550,8 +545,8 @@ def test_get_child_cases(self):
self.assertEqual(count, 3)
def test_get_child_cases_system(self):
- prob = SellarProblem(SellarDerivativesGrouped, nonlinear_solver=NonlinearRunOnce)
- prob.driver = ScipyOptimizeDriver(tol=1e-9, disp=False)
+ prob = SellarProblem(SellarDerivativesGrouped, nonlinear_solver=om.NonlinearRunOnce)
+ prob.driver = om.ScipyOptimizeDriver(tol=1e-9, disp=False)
prob.setup()
model = prob.model
@@ -562,7 +557,7 @@ def test_get_child_cases_system(self):
prob.run_driver()
prob.cleanup()
- cr = CaseReader(self.filename)
+ cr = om.CaseReader(self.filename)
parent_coord = 'rank0:ScipyOptimize_SLSQP|2|root._solve_nonlinear|2'
coord = parent_coord + '|NLRunOnce|0'
@@ -594,8 +589,8 @@ def test_get_child_cases_system(self):
self.assertEqual(i, len(expected_coords))
def test_list_cases_recurse(self):
- prob = SellarProblem(SellarDerivativesGrouped, nonlinear_solver=NonlinearRunOnce)
- prob.driver = ScipyOptimizeDriver(optimizer='SLSQP', tol=1e-9, disp=True)
+ prob = SellarProblem(SellarDerivativesGrouped, nonlinear_solver=om.NonlinearRunOnce)
+ prob.driver = om.ScipyOptimizeDriver(optimizer='SLSQP', tol=1e-9, disp=True)
prob.driver.add_recorder(self.recorder)
prob.setup()
@@ -608,7 +603,7 @@ def test_list_cases_recurse(self):
prob.run_driver()
prob.cleanup()
- cr = CaseReader(self.filename)
+ cr = om.CaseReader(self.filename)
# get total iteration count to check against
global_iterations = len(cr._global_iterations)
@@ -718,8 +713,8 @@ def test_list_cases_recurse(self):
self.assertEqual(counter, root_counter)
def test_list_cases_nested_model(self):
- prob = SellarProblem(SellarDerivativesGrouped, nonlinear_solver=NonlinearRunOnce)
- prob.driver = ScipyOptimizeDriver(tol=1e-9, disp=True)
+ prob = SellarProblem(SellarDerivativesGrouped, nonlinear_solver=om.NonlinearRunOnce)
+ prob.driver = om.ScipyOptimizeDriver(tol=1e-9, disp=True)
prob.setup()
model = prob.model
@@ -731,7 +726,7 @@ def test_list_cases_nested_model(self):
prob.run_driver()
prob.cleanup()
- cr = CaseReader(self.filename)
+ cr = om.CaseReader(self.filename)
# get total iteration count to check against
global_iterations = len(cr._global_iterations)
@@ -760,8 +755,8 @@ def test_list_cases_nested_model(self):
self.assertEqual(num_cases, global_iterations)
def test_list_cases_nested_no_source(self):
- prob = SellarProblem(SellarDerivativesGrouped, nonlinear_solver=NonlinearRunOnce)
- prob.driver = ScipyOptimizeDriver(tol=1e-9, disp=True)
+ prob = SellarProblem(SellarDerivativesGrouped, nonlinear_solver=om.NonlinearRunOnce)
+ prob.driver = om.ScipyOptimizeDriver(tol=1e-9, disp=True)
prob.setup()
model = prob.model
@@ -772,7 +767,7 @@ def test_list_cases_nested_no_source(self):
prob.run_driver()
prob.cleanup()
- cr = CaseReader(self.filename)
+ cr = om.CaseReader(self.filename)
# get total iteration count to check against
global_iterations = len(cr._global_iterations)
@@ -805,8 +800,8 @@ def test_list_cases_nested_no_source(self):
self.assertEqual(str(cm.exception), expected_err)
def test_get_cases_recurse(self):
- prob = SellarProblem(SellarDerivativesGrouped, nonlinear_solver=NonlinearRunOnce)
- prob.driver = ScipyOptimizeDriver(optimizer='SLSQP', tol=1e-9, disp=True)
+ prob = SellarProblem(SellarDerivativesGrouped, nonlinear_solver=om.NonlinearRunOnce)
+ prob.driver = om.ScipyOptimizeDriver(optimizer='SLSQP', tol=1e-9, disp=True)
prob.driver.opt_settings['ACC'] = 1e-9
prob.driver.add_recorder(self.recorder)
prob.setup()
@@ -820,7 +815,7 @@ def test_get_cases_recurse(self):
prob.run_driver()
prob.cleanup()
- cr = CaseReader(self.filename)
+ cr = om.CaseReader(self.filename)
# get total iteration count to check against
global_iterations = len(cr._global_iterations)
@@ -934,13 +929,13 @@ def test_list_outputs(self):
prob.setup()
d1 = prob.model.d1 # SellarDis1withDerivatives (an ExplicitComp)
- d1.nonlinear_solver = NonlinearBlockGS(maxiter=5)
+ d1.nonlinear_solver = om.NonlinearBlockGS(maxiter=5)
d1.add_recorder(self.recorder)
prob.run_driver()
prob.cleanup()
- cr = CaseReader(self.filename)
+ cr = om.CaseReader(self.filename)
# check the system case for 'd1' (there should be only one output, 'd1.y1')
system_cases = cr.list_cases('root.d1')
@@ -989,13 +984,13 @@ def test_list_inputs(self):
prob.setup()
d1 = prob.model.d1 # SellarDis1withDerivatives (an ExplicitComp)
- d1.nonlinear_solver = NonlinearBlockGS(maxiter=5)
+ d1.nonlinear_solver = om.NonlinearBlockGS(maxiter=5)
d1.add_recorder(self.recorder)
prob.run_driver()
prob.cleanup()
- cr = CaseReader(self.filename)
+ cr = om.CaseReader(self.filename)
expected_inputs_case = {
'd1.z': {'value': [5., 2.]},
@@ -1028,7 +1023,7 @@ def test_get_vars(self):
prob.run_driver()
prob.cleanup()
- cr = CaseReader(self.filename)
+ cr = om.CaseReader(self.filename)
driver_cases = cr.list_cases('driver')
driver_case = cr.get_case(driver_cases[0])
@@ -1068,7 +1063,7 @@ def test_simple_load_system_cases(self):
prob.run_driver()
prob.cleanup()
- cr = CaseReader(self.filename)
+ cr = om.CaseReader(self.filename)
system_cases = cr.list_cases('root')
case = cr.get_case(system_cases[0])
@@ -1090,7 +1085,7 @@ def test_load_bad_system_case(self):
prob.model.add_recorder(self.recorder)
- driver = prob.driver = ScipyOptimizeDriver()
+ driver = prob.driver = om.ScipyOptimizeDriver()
driver.options['optimizer'] = 'SLSQP'
driver.options['tol'] = 1e-9
driver.options['disp'] = False
@@ -1103,7 +1098,7 @@ def test_load_bad_system_case(self):
prob.run_driver()
prob.cleanup()
- cr = CaseReader(self.filename)
+ cr = om.CaseReader(self.filename)
system_cases = cr.list_cases('root')
case = cr.get_case(system_cases[0])
@@ -1131,7 +1126,7 @@ def test_subsystem_load_system_cases(self):
prob.run_driver()
prob.cleanup()
- cr = CaseReader(self.filename)
+ cr = om.CaseReader(self.filename)
system_cases = cr.list_cases('root.d2')
case = cr.get_case(system_cases[0])
@@ -1149,15 +1144,15 @@ def test_subsystem_load_system_cases(self):
_assert_model_matches_case(case, model.d2)
def test_load_system_cases_with_units(self):
- comp = IndepVarComp()
+ comp = om.IndepVarComp()
comp.add_output('distance', val=1., units='m')
comp.add_output('time', val=1., units='s')
- prob = Problem()
+ prob = om.Problem()
model = prob.model
model.add_subsystem('c1', comp)
model.add_subsystem('c2', SpeedComp())
- model.add_subsystem('c3', ExecComp('f=speed', speed={'units': 'm/s'}, f={'units': 'm/s'}))
+ model.add_subsystem('c3', om.ExecComp('f=speed', speed={'units': 'm/s'}, f={'units': 'm/s'}))
model.connect('c1.distance', 'c2.distance')
model.connect('c1.time', 'c2.time')
model.connect('c2.speed', 'c3.speed')
@@ -1167,7 +1162,7 @@ def test_load_system_cases_with_units(self):
prob.setup()
prob.run_model()
- cr = CaseReader(self.filename)
+ cr = om.CaseReader(self.filename)
system_cases = cr.list_cases('root')
case = cr.get_case(system_cases[0])
@@ -1208,7 +1203,7 @@ def test_optimization_load_system_cases(self):
prob.model.add_recorder(self.recorder)
- driver = prob.driver = ScipyOptimizeDriver()
+ driver = prob.driver = om.ScipyOptimizeDriver()
driver.options['optimizer'] = 'SLSQP'
driver.options['tol'] = 1e-9
driver.options['disp'] = False
@@ -1224,7 +1219,7 @@ def test_optimization_load_system_cases(self):
inputs_before = prob.model.list_inputs(values=True, units=True, out_stream=None)
outputs_before = prob.model.list_outputs(values=True, units=True, out_stream=None)
- cr = CaseReader(self.filename)
+ cr = om.CaseReader(self.filename)
# get third case
system_cases = cr.list_cases('root')
@@ -1235,7 +1230,7 @@ def test_optimization_load_system_cases(self):
# run the model again with a fresh model
prob = SellarProblem(SellarDerivativesGrouped)
- driver = prob.driver = ScipyOptimizeDriver()
+ driver = prob.driver = om.ScipyOptimizeDriver()
driver.options['optimizer'] = 'SLSQP'
driver.options['tol'] = 1e-9
driver.options['disp'] = False
@@ -1271,7 +1266,7 @@ def test_load_solver_cases(self):
self.assertFalse(fail, 'Problem failed to converge')
- cr = CaseReader(self.filename)
+ cr = om.CaseReader(self.filename)
solver_cases = cr.list_cases('root.nonlinear_solver')
case = cr.get_case(solver_cases[0])
@@ -1289,13 +1284,13 @@ def test_load_solver_cases(self):
_assert_model_matches_case(case, model)
def test_load_driver_cases(self):
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', 50.0), promotes=['*'])
- model.add_subsystem('p2', IndepVarComp('y', 50.0), promotes=['*'])
+ model.add_subsystem('p1', om.IndepVarComp('x', 50.0), promotes=['*'])
+ model.add_subsystem('p2', om.IndepVarComp('y', 50.0), promotes=['*'])
model.add_subsystem('comp', Paraboloid(), promotes=['*'])
- model.add_subsystem('con', ExecComp('c = x - y'), promotes=['*'])
+ model.add_subsystem('con', om.ExecComp('c = x - y'), promotes=['*'])
model.add_design_var('x', lower=-50.0, upper=50.0)
model.add_design_var('y', lower=-50.0, upper=50.0)
@@ -1314,7 +1309,7 @@ def test_load_driver_cases(self):
self.assertFalse(fail, 'Problem failed to converge')
- cr = CaseReader(self.filename)
+ cr = om.CaseReader(self.filename)
driver_cases = cr.list_cases('driver')
case = cr.get_case(driver_cases[0])
@@ -1333,8 +1328,8 @@ def test_load_driver_cases(self):
def test_system_options_pickle_fail(self):
# simple paraboloid model
- model = Group()
- ivc = IndepVarComp()
+ model = om.Group()
+ ivc = om.IndepVarComp()
ivc.add_output('x', 3.0)
model.add_subsystem('subs', ivc)
subs = model.subs
@@ -1345,7 +1340,7 @@ def test_system_options_pickle_fail(self):
subs.options.declare('options value to fail', (i for i in []))
subs.add_recorder(self.recorder)
- prob = Problem(model)
+ prob = om.Problem(model)
prob.setup()
msg = "Trying to record options which cannot be pickled on system with name: subs. " \
@@ -1356,7 +1351,7 @@ def test_system_options_pickle_fail(self):
prob.run_model()
prob.cleanup()
- cr = CaseReader(self.filename)
+ cr = om.CaseReader(self.filename)
subs_options = cr.system_metadata['subs']['component_options']
# no options should have been recorded for d1
@@ -1366,7 +1361,7 @@ def test_pre_load(self):
prob = SellarProblem()
prob.setup()
- recorder = SqliteRecorder(self.filename)
+ recorder = om.SqliteRecorder(self.filename)
prob.add_recorder(recorder)
prob.driver.add_recorder(recorder)
@@ -1379,7 +1374,7 @@ def test_pre_load(self):
prob.cleanup()
# without pre_load, we should get format_version and metadata but no cases
- cr = CaseReader(self.filename, pre_load=False)
+ cr = om.CaseReader(self.filename, pre_load=False)
num_driver_cases = len(cr.list_cases('driver', recurse=False))
num_system_cases = len(cr.list_cases('root', recurse=False))
@@ -1407,7 +1402,7 @@ def test_pre_load(self):
self.assertEqual(len(cr._problem_cases._cases), 0)
# with pre_load, we should get format_version, metadata and all cases
- cr = CaseReader(self.filename, pre_load=True)
+ cr = om.CaseReader(self.filename, pre_load=True)
num_driver_cases = len(cr.list_cases('driver', recurse=False))
num_system_cases = len(cr.list_cases('root', recurse=False))
@@ -1454,7 +1449,7 @@ def test_caching_cases(self):
prob.record_iteration('c_2')
prob.cleanup()
- cr = CaseReader(self.filename, pre_load=False)
+ cr = om.CaseReader(self.filename, pre_load=False)
self.assertEqual(len(cr._driver_cases._cases), 0)
self.assertEqual(len(cr._system_cases._cases), 0)
@@ -1493,9 +1488,9 @@ def test_caching_cases(self):
def test_reading_driver_cases_with_indices(self):
# note: size must be an even number
SIZE = 10
- prob = Problem()
+ prob = om.Problem()
- driver = prob.driver = ScipyOptimizeDriver()
+ driver = prob.driver = om.ScipyOptimizeDriver()
prob.driver.options['optimizer'] = 'SLSQP'
prob.driver.options['disp'] = False
@@ -1503,7 +1498,7 @@ def test_reading_driver_cases_with_indices(self):
driver.recording_options['includes'] = ['*']
model = prob.model
- indeps = model.add_subsystem('indeps', IndepVarComp(), promotes_outputs=['*'])
+ indeps = model.add_subsystem('indeps', om.IndepVarComp(), promotes_outputs=['*'])
# the following were randomly generated using np.random.random(10)*2-1 to randomly
# disperse them within a unit circle centered at the origin.
@@ -1520,21 +1515,21 @@ def test_reading_driver_cases_with_indices(self):
]))
indeps.add_output('r', .7)
- model.add_subsystem('circle', ExecComp('area = pi * r**2'))
+ model.add_subsystem('circle', om.ExecComp('area = pi * r**2'))
- model.add_subsystem('r_con', ExecComp('g = x**2 + y**2 - r**2',
- g=np.ones(SIZE), x=np.ones(SIZE), y=np.ones(SIZE)))
+ model.add_subsystem('r_con', om.ExecComp('g = x**2 + y**2 - r**2',
+ g=np.ones(SIZE), x=np.ones(SIZE), y=np.ones(SIZE)))
thetas = np.linspace(0, np.pi/4, SIZE)
- model.add_subsystem('theta_con', ExecComp('g=arctan(y/x) - theta',
- g=np.ones(SIZE), x=np.ones(SIZE),
- y=np.ones(SIZE), theta=thetas))
- model.add_subsystem('delta_theta_con', ExecComp('g = arctan(y/x)[::2]-arctan(y/x)[1::2]',
- g=np.ones(SIZE//2), x=np.ones(SIZE),
- y=np.ones(SIZE)))
+ model.add_subsystem('theta_con', om.ExecComp('g=arctan(y/x) - theta',
+ g=np.ones(SIZE), x=np.ones(SIZE),
+ y=np.ones(SIZE), theta=thetas))
+ model.add_subsystem('delta_theta_con', om.ExecComp('g = arctan(y/x)[::2]-arctan(y/x)[1::2]',
+ g=np.ones(SIZE//2), x=np.ones(SIZE),
+ y=np.ones(SIZE)))
- model.add_subsystem('l_conx', ExecComp('g=x-1', g=np.ones(SIZE), x=np.ones(SIZE)))
+ model.add_subsystem('l_conx', om.ExecComp('g=x-1', g=np.ones(SIZE), x=np.ones(SIZE)))
model.connect('r', ('circle.r', 'r_con.r'))
model.connect('x', ['r_con.x', 'theta_con.x', 'delta_theta_con.x'])
@@ -1566,7 +1561,7 @@ def test_reading_driver_cases_with_indices(self):
prob.cleanup()
# get the case we recorded
- cr = CaseReader(self.filename)
+ cr = om.CaseReader(self.filename)
case = cr.get_case(0)
# check 'use_indices' option, default is to use indices
@@ -1594,7 +1589,7 @@ def test_reading_driver_cases_with_indices(self):
_assert_model_matches_case(case, model)
def test_multidimensional_arrays(self):
- prob = Problem()
+ prob = om.Problem()
model = prob.model
comp = TestExplCompArray(thickness=1.) # has 2D arrays as inputs and outputs
@@ -1602,9 +1597,9 @@ def test_multidimensional_arrays(self):
# just to add a connection, otherwise an exception is thrown in recording viewer data.
# must be a bug
model.add_subsystem('double_area',
- ExecComp('double_area = 2 * areas',
- areas=np.zeros((2, 2)),
- double_area=np.zeros((2, 2))),
+ om.ExecComp('double_area = 2 * areas',
+ areas=np.zeros((2, 2)),
+ double_area=np.zeros((2, 2))),
promotes=['*'])
prob.driver.add_recorder(self.recorder)
@@ -1622,7 +1617,7 @@ def test_multidimensional_arrays(self):
model._outputs[name] += 1.0
# Now load in the case we recorded
- cr = CaseReader(self.filename)
+ cr = om.CaseReader(self.filename)
driver_cases = cr.list_cases('driver')
case = cr.get_case(driver_cases[0])
@@ -1633,17 +1628,17 @@ def test_multidimensional_arrays(self):
def test_simple_paraboloid_scaled_desvars(self):
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', 50.0), promotes=['*'])
- model.add_subsystem('p2', IndepVarComp('y', 50.0), promotes=['*'])
+ model.add_subsystem('p1', om.IndepVarComp('x', 50.0), promotes=['*'])
+ model.add_subsystem('p2', om.IndepVarComp('y', 50.0), promotes=['*'])
model.add_subsystem('comp', Paraboloid(), promotes=['*'])
- model.add_subsystem('con', ExecComp('c = x - y'), promotes=['*'])
+ model.add_subsystem('con', om.ExecComp('c = x - y'), promotes=['*'])
prob.set_solver_print(level=0)
- prob.driver = ScipyOptimizeDriver()
+ prob.driver = om.ScipyOptimizeDriver()
prob.driver.options['optimizer'] = 'SLSQP'
prob.driver.options['tol'] = 1e-9
prob.driver.options['disp'] = False
@@ -1652,7 +1647,7 @@ def test_simple_paraboloid_scaled_desvars(self):
prob.driver.recording_options['record_responses'] = True
prob.driver.recording_options['record_objectives'] = True
prob.driver.recording_options['record_constraints'] = True
- recorder = SqliteRecorder("cases.sql")
+ recorder = om.SqliteRecorder("cases.sql")
prob.driver.add_recorder(recorder)
ref = 5.0
@@ -1667,7 +1662,7 @@ def test_simple_paraboloid_scaled_desvars(self):
prob.run_driver()
prob.cleanup()
- cr = CaseReader("cases.sql")
+ cr = om.CaseReader("cases.sql")
# Test values from the last case
driver_cases = cr.list_cases('driver')
@@ -1686,10 +1681,10 @@ def test_simple_paraboloid_scaled_desvars(self):
self.assertAlmostEqual((unscaled_y + adder) * scaler, scaled_y, places=12)
def test_reading_all_case_types(self):
- prob = SellarProblem(SellarDerivativesGrouped, nonlinear_solver=NonlinearRunOnce)
+ prob = SellarProblem(SellarDerivativesGrouped, nonlinear_solver=om.NonlinearRunOnce)
prob.setup(mode='rev')
- driver = prob.driver = ScipyOptimizeDriver(disp=False, tol=1e-9)
+ driver = prob.driver = om.ScipyOptimizeDriver(disp=False, tol=1e-9)
#
# Add recorders
@@ -1719,7 +1714,7 @@ def test_reading_all_case_types(self):
pz.add_recorder(self.recorder)
# mda solver
- nl = prob.model.mda.nonlinear_solver = NonlinearBlockGS()
+ nl = prob.model.mda.nonlinear_solver = om.NonlinearBlockGS()
nl.recording_options['record_metadata'] = True
nl.recording_options['record_abs_error'] = True
nl.recording_options['record_rel_error'] = True
@@ -1740,7 +1735,7 @@ def test_reading_all_case_types(self):
self.assertFalse(fail, 'Problem optimization failed.')
- cr = CaseReader(self.filename)
+ cr = om.CaseReader(self.filename)
#
# check sources
@@ -1920,21 +1915,21 @@ def test_reading_all_case_types(self):
self.assertTrue(case in all_driver_cases)
def test_linesearch(self):
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('px', IndepVarComp('x', 1.0))
+ model.add_subsystem('px', om.IndepVarComp('x', 1.0))
model.add_subsystem('comp', ImplCompTwoStates())
model.connect('px.x', 'comp.x')
- model.nonlinear_solver = NewtonSolver()
+ model.nonlinear_solver = om.NewtonSolver()
model.nonlinear_solver.options['maxiter'] = 3
# model.nonlinear_solver.options['solve_subsystems'] = True
model.nonlinear_solver.options['iprint'] = 2
- model.linear_solver = ScipyKrylov()
+ model.linear_solver = om.ScipyKrylov()
- ls = model.nonlinear_solver.linesearch = ArmijoGoldsteinLS(bound_enforcement='vector')
+ ls = model.nonlinear_solver.linesearch = om.ArmijoGoldsteinLS(bound_enforcement='vector')
ls.options['maxiter'] = 3
ls.options['alpha'] = 1.0
@@ -1944,7 +1939,7 @@ def test_linesearch(self):
model.comp.add_recorder(self.recorder)
model.add_recorder(self.recorder)
- prob.setup(check=False)
+ prob.setup()
prob['px.x'] = 2.0
prob['comp.y'] = 0.0
@@ -1966,7 +1961,7 @@ def test_linesearch(self):
'rank0:root._solve_nonlinear|0'
]
- cr = CaseReader(self.filename)
+ cr = om.CaseReader(self.filename)
for i, c in enumerate(cr.list_cases()):
case = cr.get_case(c)
@@ -2007,10 +2002,10 @@ def tearDown(self):
def test_feature_list_cases(self):
import numpy as np
- from openmdao.api import Problem, ScipyOptimizeDriver, SqliteRecorder, CaseReader
+ import openmdao.api as om
from openmdao.test_suite.components.sellar_feature import SellarMDA
- prob = Problem(model=SellarMDA())
+ prob = om.Problem(model=SellarMDA())
model = prob.model
model.add_design_var('z', lower=np.array([-10.0, 0.0]),
@@ -2020,16 +2015,16 @@ def test_feature_list_cases(self):
model.add_constraint('con1', upper=0.0)
model.add_constraint('con2', upper=0.0)
- driver = prob.driver = ScipyOptimizeDriver(optimizer='SLSQP', tol=1e-9)
+ driver = prob.driver = om.ScipyOptimizeDriver(optimizer='SLSQP', tol=1e-9)
- driver.add_recorder(SqliteRecorder('cases.sql'))
+ driver.add_recorder(om.SqliteRecorder('cases.sql'))
prob.setup()
prob.set_solver_print(0)
prob.run_driver()
prob.cleanup()
- cr = CaseReader('cases.sql')
+ cr = om.CaseReader('cases.sql')
case_ids = cr.list_cases()
@@ -2042,12 +2037,12 @@ def test_feature_list_cases(self):
self.assertEqual(case, case)
def test_feature_get_cases(self):
- from openmdao.api import Problem, ScipyOptimizeDriver, SqliteRecorder, CaseReader
+ import openmdao.api as om
from openmdao.test_suite.components.sellar_feature import SellarMDA
import numpy as np
- prob = Problem(model=SellarMDA())
+ prob = om.Problem(model=SellarMDA())
model = prob.model
model.add_design_var('z', lower=np.array([-10.0, 0.0]),
@@ -2057,15 +2052,15 @@ def test_feature_get_cases(self):
model.add_constraint('con1', upper=0.0)
model.add_constraint('con2', upper=0.0)
- driver = prob.driver = ScipyOptimizeDriver(optimizer='SLSQP', tol=1e-9)
- driver.add_recorder(SqliteRecorder('cases.sql'))
+ driver = prob.driver = om.ScipyOptimizeDriver(optimizer='SLSQP', tol=1e-9)
+ driver.add_recorder(om.SqliteRecorder('cases.sql'))
prob.setup()
prob.set_solver_print(0)
prob.run_driver()
prob.cleanup()
- cr = CaseReader('cases.sql')
+ cr = om.CaseReader('cases.sql')
cases = cr.get_cases()
@@ -2075,13 +2070,13 @@ def test_feature_get_cases(self):
self.assertEqual(case, case)
def test_feature_get_cases_nested(self):
- from openmdao.api import Problem, ScipyOptimizeDriver, SqliteRecorder, CaseReader
+ import openmdao.api as om
from openmdao.test_suite.components.sellar_feature import SellarMDA
import numpy as np
# define Sellar MDA problem
- prob = Problem(model=SellarMDA())
+ prob = om.Problem(model=SellarMDA())
model = prob.model
model.add_design_var('z', lower=np.array([-10.0, 0.0]),
@@ -2091,10 +2086,10 @@ def test_feature_get_cases_nested(self):
model.add_constraint('con1', upper=0.0)
model.add_constraint('con2', upper=0.0)
- prob.driver = ScipyOptimizeDriver(optimizer='SLSQP', tol=1e-9, disp=False)
+ prob.driver = om.ScipyOptimizeDriver(optimizer='SLSQP', tol=1e-9, disp=False)
# add recorder to the driver, model and solver
- recorder = SqliteRecorder('cases.sql')
+ recorder = om.SqliteRecorder('cases.sql')
prob.driver.add_recorder(recorder)
model.add_recorder(recorder)
@@ -2107,7 +2102,7 @@ def test_feature_get_cases_nested(self):
prob.cleanup()
# get the last driver case
- cr = CaseReader('cases.sql')
+ cr = om.CaseReader('cases.sql')
driver_cases = cr.list_cases('driver')
last_driver_case = driver_cases[-1]
@@ -2124,13 +2119,13 @@ def test_feature_get_cases_nested(self):
self.assertEqual(grandchild, grandchild)
def test_feature_list_sources(self):
- from openmdao.api import Problem, ScipyOptimizeDriver, SqliteRecorder, CaseReader
+ import openmdao.api as om
from openmdao.test_suite.components.sellar_feature import SellarMDA
import numpy as np
# define Sellar MDA problem
- prob = Problem(model=SellarMDA())
+ prob = om.Problem(model=SellarMDA())
model = prob.model
model.add_design_var('z', lower=np.array([-10.0, 0.0]),
@@ -2140,10 +2135,10 @@ def test_feature_list_sources(self):
model.add_constraint('con1', upper=0.0)
model.add_constraint('con2', upper=0.0)
- prob.driver = ScipyOptimizeDriver(optimizer='SLSQP', tol=1e-9, disp=False)
+ prob.driver = om.ScipyOptimizeDriver(optimizer='SLSQP', tol=1e-9, disp=False)
# add recorder to the driver, model and solver
- recorder = SqliteRecorder('cases.sql')
+ recorder = om.SqliteRecorder('cases.sql')
prob.driver.add_recorder(recorder)
model.add_recorder(recorder)
@@ -2156,7 +2151,7 @@ def test_feature_list_sources(self):
prob.cleanup()
# examine cases to see what was recorded
- cr = CaseReader('cases.sql')
+ cr = om.CaseReader('cases.sql')
self.assertEqual(sorted(cr.list_sources()), ['driver', 'root', 'root.nonlinear_solver'])
@@ -2173,12 +2168,12 @@ def test_feature_list_sources(self):
('inputs:', ['x', 'y1', 'y2', 'z'], 'outputs:', ['con1', 'con2', 'obj', 'x', 'y1', 'y2', 'z']))
def test_feature_reading_derivatives(self):
- from openmdao.api import Problem, ScipyOptimizeDriver, SqliteRecorder, CaseReader
+ import openmdao.api as om
from openmdao.test_suite.components.sellar_feature import SellarMDA
import numpy as np
- prob = Problem(model=SellarMDA())
+ prob = om.Problem(model=SellarMDA())
model = prob.model
model.add_design_var('z', lower=np.array([-10.0, 0.0]),
@@ -2188,17 +2183,17 @@ def test_feature_reading_derivatives(self):
model.add_constraint('con1', upper=0.0)
model.add_constraint('con2', upper=0.0)
- driver = prob.driver = ScipyOptimizeDriver(optimizer='SLSQP', tol=1e-9, disp=False)
+ driver = prob.driver = om.ScipyOptimizeDriver(optimizer='SLSQP', tol=1e-9, disp=False)
driver.recording_options['record_derivatives'] = True
- driver.add_recorder(SqliteRecorder('cases.sql'))
+ driver.add_recorder(om.SqliteRecorder('cases.sql'))
prob.setup()
prob.set_solver_print(0)
prob.run_driver()
prob.cleanup()
- cr = CaseReader('cases.sql')
+ cr = om.CaseReader('cases.sql')
# Get derivatives associated with the last iteration.
derivs = cr.get_case(-1).jacobian
@@ -2213,19 +2208,17 @@ def test_feature_reading_derivatives(self):
assert_rel_error(self, derivs['obj', 'z'], derivs['obj', 'z'])
def test_feature_recording_option_precedence(self):
- from openmdao.api import Problem, IndepVarComp, ExecComp, ScipyOptimizeDriver, \
- SqliteRecorder
- from openmdao.recorders.case_reader import CaseReader
+ import openmdao.api as om
from openmdao.test_suite.components.paraboloid import Paraboloid
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', 50.0), promotes=['*'])
- model.add_subsystem('p2', IndepVarComp('y', 50.0), promotes=['*'])
+ model.add_subsystem('p1', om.IndepVarComp('x', 50.0), promotes=['*'])
+ model.add_subsystem('p2', om.IndepVarComp('y', 50.0), promotes=['*'])
model.add_subsystem('comp', Paraboloid(), promotes=['*'])
- model.add_subsystem('con', ExecComp('c = x - y'), promotes=['*'])
+ model.add_subsystem('con', om.ExecComp('c = x - y'), promotes=['*'])
- prob.driver = ScipyOptimizeDriver(optimizer='SLSQP', tol=1e-9, disp=False)
+ prob.driver = om.ScipyOptimizeDriver(optimizer='SLSQP', tol=1e-9, disp=False)
model.add_design_var('x', lower=-50.0, upper=50.0)
model.add_design_var('y', lower=-50.0, upper=50.0)
@@ -2233,7 +2226,7 @@ def test_feature_recording_option_precedence(self):
model.add_constraint('c', lower=15.0)
filename = "cases.sql"
- recorder = SqliteRecorder(filename)
+ recorder = om.SqliteRecorder(filename)
prob.driver.add_recorder(recorder)
prob.driver.recording_options['record_desvars'] = True
@@ -2246,13 +2239,13 @@ def test_feature_recording_option_precedence(self):
prob.cleanup()
# First case with record_desvars = True and includes = []
- cr = CaseReader(filename)
+ cr = om.CaseReader(filename)
case = cr.get_case(-1)
self.assertEqual(sorted(case.outputs.keys()), ['c', 'f_xy', 'x'])
# Second case with record_desvars = False and includes = []
- recorder = SqliteRecorder(filename)
+ recorder = om.SqliteRecorder(filename)
prob.driver.add_recorder(recorder)
prob.driver.recording_options['record_desvars'] = False
prob.driver.recording_options['includes'] = []
@@ -2261,13 +2254,13 @@ def test_feature_recording_option_precedence(self):
prob.run_driver()
prob.cleanup()
- cr = CaseReader(filename)
+ cr = om.CaseReader(filename)
case = cr.get_case(0)
self.assertEqual(sorted(case.outputs.keys()), ['c', 'f_xy'])
# Third case with record_desvars = True and includes = ['*']
- recorder = SqliteRecorder(filename)
+ recorder = om.SqliteRecorder(filename)
prob.driver.add_recorder(recorder)
prob.driver.recording_options['record_desvars'] = True
prob.driver.recording_options['includes'] = ['*']
@@ -2276,13 +2269,13 @@ def test_feature_recording_option_precedence(self):
prob.run_driver()
prob.cleanup()
- cr = CaseReader(filename)
+ cr = om.CaseReader(filename)
case = cr.get_case(0)
self.assertEqual(sorted(case.outputs.keys()), ['c', 'f_xy', 'x'])
# Fourth case with record_desvars = False and includes = ['*']
- recorder = SqliteRecorder(filename)
+ recorder = om.SqliteRecorder(filename)
prob.driver.add_recorder(recorder)
prob.driver.recording_options['record_desvars'] = False
prob.driver.recording_options['includes'] = ['*']
@@ -2291,18 +2284,18 @@ def test_feature_recording_option_precedence(self):
prob.run_driver()
prob.cleanup()
- cr = CaseReader(filename)
+ cr = om.CaseReader(filename)
case = cr.get_case(0)
self.assertEqual(sorted(case.outputs.keys()), ['c', 'f_xy'])
def test_feature_driver_options_with_values(self):
- from openmdao.api import Problem, ScipyOptimizeDriver, SqliteRecorder, CaseReader
+ import openmdao.api as om
from openmdao.test_suite.components.sellar import SellarDerivatives
import numpy as np
- prob = Problem(model=SellarDerivatives())
+ prob = om.Problem(model=SellarDerivatives())
model = prob.model
model.add_design_var('z', lower=np.array([-10.0, 0.0]),
@@ -2312,9 +2305,9 @@ def test_feature_driver_options_with_values(self):
model.add_constraint('con1', upper=0.0)
model.add_constraint('con2', upper=0.0)
- driver = prob.driver = ScipyOptimizeDriver(optimizer='SLSQP', tol=1e-9, disp=False)
+ driver = prob.driver = om.ScipyOptimizeDriver(optimizer='SLSQP', tol=1e-9, disp=False)
- driver.add_recorder(SqliteRecorder("cases.sql"))
+ driver.add_recorder(om.SqliteRecorder("cases.sql"))
driver.recording_options['includes'] = []
driver.recording_options['record_objectives'] = True
@@ -2326,7 +2319,7 @@ def test_feature_driver_options_with_values(self):
prob.run_driver()
prob.cleanup()
- cr = CaseReader("cases.sql")
+ cr = om.CaseReader("cases.sql")
driver_cases = cr.list_cases('driver')
case = cr.get_case(driver_cases[0])
@@ -2367,9 +2360,9 @@ def tearDown(self):
def test_dict_functionality(self):
prob = SellarProblem(SellarDerivativesGrouped)
- driver = prob.driver = ScipyOptimizeDriver()
+ driver = prob.driver = om.ScipyOptimizeDriver()
- recorder = SqliteRecorder("cases.sql")
+ recorder = om.SqliteRecorder("cases.sql")
driver.add_recorder(recorder)
driver.recording_options['includes'] = []
@@ -2382,7 +2375,7 @@ def test_dict_functionality(self):
prob.run_driver()
prob.cleanup()
- cr = CaseReader("cases.sql")
+ cr = om.CaseReader("cases.sql")
driver_cases = cr.list_cases('driver')
driver_case = cr.get_case(driver_cases[-1])
@@ -2507,7 +2500,7 @@ def test_database_v4(self):
filename = os.path.join(self.legacy_dir, 'case_database_v4.sql')
- cr = CaseReader(filename)
+ cr = om.CaseReader(filename)
#
# check sources
@@ -2626,14 +2619,14 @@ def test_driver_v3(self):
test in test_sqlite_recorder.py
"""
prob = SellarProblem(SellarDerivativesGrouped)
- prob.driver = ScipyOptimizeDriver(tol=1e-9, disp=False)
+ prob.driver = om.ScipyOptimizeDriver(tol=1e-9, disp=False)
prob.setup()
prob.run_driver()
prob.cleanup()
filename = os.path.join(self.legacy_dir, 'case_driver_solver_system_03.sql')
- cr = CaseReader(filename)
+ cr = om.CaseReader(filename)
# list just the driver cases
driver_cases = cr.list_cases('driver', recurse=False)
@@ -2678,14 +2671,14 @@ def test_driver_v3(self):
def test_driver_v2(self):
""" Backwards compatibility version 2. """
prob = SellarProblem(SellarDerivativesGrouped)
- prob.driver = ScipyOptimizeDriver(tol=1e-9, disp=False)
+ prob.driver = om.ScipyOptimizeDriver(tol=1e-9, disp=False)
prob.setup()
prob.run_driver()
prob.cleanup()
filename = os.path.join(self.legacy_dir, 'case_driver_solver_system_02.sql')
- cr = CaseReader(filename)
+ cr = om.CaseReader(filename)
# list just the driver cases
driver_cases = cr.list_cases('driver', recurse=False)
@@ -2731,7 +2724,7 @@ def test_solver_v2(self):
""" Backwards compatibility version 2. """
filename = os.path.join(self.legacy_dir, 'case_driver_solver_system_02.sql')
- cases = CaseReader(filename)
+ cases = om.CaseReader(filename)
# list just the solver cases
solver_cases = cases.list_cases('root.nonlinear_solver', recurse=False)
@@ -2761,7 +2754,7 @@ def test_system_v2(self):
""" Backwards compatibility version 2. """
filename = os.path.join(self.legacy_dir, 'case_driver_solver_system_02.sql')
- cr = CaseReader(filename)
+ cr = om.CaseReader(filename)
# list just the system cases
system_cases = cr.list_cases('root', recurse=False)
@@ -2797,14 +2790,14 @@ def test_system_v2(self):
def test_driver_v1(self):
""" Backwards compatibility oldest version. """
prob = SellarProblem(SellarDerivativesGrouped)
- prob.driver = ScipyOptimizeDriver(tol=1e-9, disp=False)
+ prob.driver = om.ScipyOptimizeDriver(tol=1e-9, disp=False)
prob.setup()
prob.run_driver()
prob.cleanup()
filename = os.path.join(self.legacy_dir, 'case_driver_01.sql')
- cr = CaseReader(filename)
+ cr = om.CaseReader(filename)
# recorded data from driver only
self.assertEqual(cr.list_sources(), ['driver'])
@@ -2844,14 +2837,14 @@ def test_driver_v1(self):
def test_driver_v1_pre_problem(self):
""" Backwards compatibility oldest version. """
prob = SellarProblem(SellarDerivativesGrouped)
- prob.driver = ScipyOptimizeDriver(tol=1e-9, disp=False)
+ prob.driver = om.ScipyOptimizeDriver(tol=1e-9, disp=False)
prob.setup()
prob.run_driver()
prob.cleanup()
filename = os.path.join(self.legacy_dir, 'case_driver_pre01.sql')
- cr = CaseReader(filename)
+ cr = om.CaseReader(filename)
# recorded data from driver only
self.assertEqual(cr.list_sources(), ['driver'])
diff --git a/openmdao/recorders/tests/test_sqlite_recorder.py b/openmdao/recorders/tests/test_sqlite_recorder.py
index b9fb7d10cb..a557e4fc1f 100644
--- a/openmdao/recorders/tests/test_sqlite_recorder.py
+++ b/openmdao/recorders/tests/test_sqlite_recorder.py
@@ -9,11 +9,7 @@
from shutil import rmtree
from tempfile import mkdtemp
-from openmdao.api import Problem, Group, IndepVarComp, ExecComp, SqliteRecorder, \
- ScipyOptimizeDriver, NonlinearRunOnce, NonlinearBlockGS, NonlinearBlockJac, NewtonSolver, \
- LinearRunOnce, LinearBlockGS, LinearBlockJac, DirectSolver, ScipyKrylov, PETScKrylov, \
- BoundsEnforceLS, ArmijoGoldsteinLS, CaseReader, AnalysisError
-
+import openmdao.api as om
from openmdao.utils.general_utils import set_pyoptsparse_opt
from openmdao.test_suite.components.ae_tests import AEComp
@@ -37,7 +33,7 @@
from openmdao.drivers.pyoptsparse_driver import pyOptSparseDriver
-class ParaboloidProblem(Problem):
+class ParaboloidProblem(om.Problem):
"""
Paraboloid problem with Constraint.
"""
@@ -46,10 +42,10 @@ def __init__(self):
super(ParaboloidProblem, self).__init__()
model = self.model
- model.add_subsystem('p1', IndepVarComp('x', 50.0), promotes=['*'])
- model.add_subsystem('p2', IndepVarComp('y', 50.0), promotes=['*'])
+ model.add_subsystem('p1', om.IndepVarComp('x', 50.0), promotes=['*'])
+ model.add_subsystem('p2', om.IndepVarComp('y', 50.0), promotes=['*'])
model.add_subsystem('comp', Paraboloid(), promotes=['*'])
- model.add_subsystem('con', ExecComp('c = - x + y'), promotes=['*'])
+ model.add_subsystem('con', om.ExecComp('c = - x + y'), promotes=['*'])
model.add_design_var('x', lower=-50.0, upper=50.0)
model.add_design_var('y', lower=-50.0, upper=50.0)
@@ -65,7 +61,7 @@ def setUp(self):
os.chdir(self.temp_dir)
self.filename = os.path.join(self.temp_dir, "sqlite_test")
- self.recorder = SqliteRecorder(self.filename, record_viewer_data=False)
+ self.recorder = om.SqliteRecorder(self.filename, record_viewer_data=False)
self.eps = 1e-3
@@ -171,7 +167,7 @@ def test_only_constraints_recorded(self):
def test_simple_driver_recording(self):
prob = ParaboloidProblem()
- driver = prob.driver = ScipyOptimizeDriver(disp=False, tol=1e-9)
+ driver = prob.driver = om.ScipyOptimizeDriver(disp=False, tol=1e-9)
driver.recording_options['record_desvars'] = True
driver.recording_options['record_responses'] = True
driver.recording_options['record_objectives'] = True
@@ -294,7 +290,7 @@ def test_simple_driver_recording_pyoptsparse(self):
def test_simple_driver_recording_with_prefix(self):
prob = ParaboloidProblem()
- driver = prob.driver = ScipyOptimizeDriver(disp=False, tol=1e-9)
+ driver = prob.driver = om.ScipyOptimizeDriver(disp=False, tol=1e-9)
driver.recording_options['record_desvars'] = True
driver.recording_options['record_responses'] = True
driver.recording_options['record_objectives'] = True
@@ -352,7 +348,7 @@ def test_simple_driver_recording_with_prefix(self):
def test_driver_everything_recorded_by_default(self):
prob = ParaboloidProblem()
- driver = prob.driver = ScipyOptimizeDriver(disp=False, tol=1e-9)
+ driver = prob.driver = om.ScipyOptimizeDriver(disp=False, tol=1e-9)
driver.add_recorder(self.recorder)
driver.recording_options['includes'] = ['*']
@@ -384,7 +380,7 @@ def test_driver_everything_recorded_by_default(self):
def test_driver_records_metadata(self):
prob = SellarProblem()
- recorder = SqliteRecorder(self.filename)
+ recorder = om.SqliteRecorder(self.filename)
driver = prob.driver
driver.recording_options['includes'] = ["p1.x"]
@@ -447,9 +443,9 @@ def test_driver_records_metadata(self):
assertViewerDataRecorded(self, expected_problem_metadata)
def test_system_records_no_metadata(self):
- prob = Problem(model=SellarDerivatives())
+ prob = om.Problem(model=SellarDerivatives())
- recorder = SqliteRecorder("cases.sql")
+ recorder = om.SqliteRecorder("cases.sql")
prob.model.add_recorder(recorder)
prob.model.recording_options['record_model_metadata'] = False
prob.model.recording_options['record_metadata'] = False
@@ -459,22 +455,22 @@ def test_system_records_no_metadata(self):
prob.run_model()
prob.cleanup()
- cr = CaseReader("cases.sql")
+ cr = om.CaseReader("cases.sql")
self.assertEqual(len(cr.system_metadata.keys()), 0)
def test_system_record_model_metadata(self):
# first check to see if recorded recursively, which is the default
- prob = Problem(model=SellarDerivatives())
+ prob = om.Problem(model=SellarDerivatives())
prob.setup()
- recorder = SqliteRecorder("cases.sql")
+ recorder = om.SqliteRecorder("cases.sql")
prob.model.add_recorder(recorder)
prob.set_solver_print(level=0)
prob.run_model()
prob.cleanup()
- cr = CaseReader("cases.sql")
+ cr = om.CaseReader("cases.sql")
# Quick check to see that keys and values were recorded
for key in ['root', 'px', 'pz', 'd1', 'd2', 'obj_cmp', 'con_cmp1', 'con_cmp2']:
self.assertTrue(key in cr.system_metadata.keys())
@@ -483,10 +479,10 @@ def test_system_record_model_metadata(self):
self.assertEqual(value, 'csc') # quick check only. Too much to check exhaustively
# second check to see if not recorded recursively, when option set to False
- prob = Problem(model=SellarDerivatives())
+ prob = om.Problem(model=SellarDerivatives())
prob.setup()
- recorder = SqliteRecorder("cases.sql")
+ recorder = om.SqliteRecorder("cases.sql")
prob.model.add_recorder(recorder)
prob.model.recording_options['record_model_metadata'] = False
@@ -494,23 +490,23 @@ def test_system_record_model_metadata(self):
prob.run_model()
prob.cleanup()
- cr = CaseReader("cases.sql")
+ cr = om.CaseReader("cases.sql")
self.assertEqual(list(cr.system_metadata.keys()), ['root'])
self.assertEqual(cr.system_metadata['root']['component_options']['assembled_jac_type'],
'csc')
def test_driver_record_model_metadata(self):
- prob = Problem(model=SellarDerivatives())
+ prob = om.Problem(model=SellarDerivatives())
prob.setup()
- recorder = SqliteRecorder("cases.sql")
+ recorder = om.SqliteRecorder("cases.sql")
prob.driver.add_recorder(recorder)
prob.set_solver_print(level=0)
prob.run_model()
prob.cleanup()
- cr = CaseReader("cases.sql")
+ cr = om.CaseReader("cases.sql")
# Quick check to see that keys and values were recorded
for key in ['root', 'px', 'pz', 'd1', 'd2', 'obj_cmp', 'con_cmp1', 'con_cmp2']:
self.assertTrue(key in cr.system_metadata.keys())
@@ -518,10 +514,10 @@ def test_driver_record_model_metadata(self):
value = cr.system_metadata['root']['component_options']['assembled_jac_type']
self.assertEqual(value, 'csc') # quick check only. Too much to check exhaustively
- prob = Problem(model=SellarDerivatives())
+ prob = om.Problem(model=SellarDerivatives())
prob.setup()
- recorder = SqliteRecorder("cases.sql")
+ recorder = om.SqliteRecorder("cases.sql")
prob.driver.add_recorder(recorder)
prob.driver.recording_options['record_model_metadata'] = False
@@ -529,13 +525,13 @@ def test_driver_record_model_metadata(self):
prob.run_model()
prob.cleanup()
- cr = CaseReader("cases.sql")
+ cr = om.CaseReader("cases.sql")
self.assertEqual(len(cr.system_metadata.keys()), 0)
def test_without_n2_data(self):
prob = SellarProblem()
- recorder = SqliteRecorder(self.filename, record_viewer_data=False)
+ recorder = om.SqliteRecorder(self.filename, record_viewer_data=False)
prob.driver.add_recorder(recorder)
@@ -627,7 +623,7 @@ def test_record_system(self):
def test_includes(self):
prob = ParaboloidProblem()
- driver = prob.driver = ScipyOptimizeDriver(disp=False, tol=1e-9)
+ driver = prob.driver = om.ScipyOptimizeDriver(disp=False, tol=1e-9)
driver.recording_options['record_desvars'] = True
driver.recording_options['record_responses'] = True
@@ -669,7 +665,7 @@ def test_includes(self):
def test_includes_post_setup(self):
prob = ParaboloidProblem()
- driver = prob.driver = ScipyOptimizeDriver(disp=False, tol=1e-9)
+ driver = prob.driver = om.ScipyOptimizeDriver(disp=False, tol=1e-9)
prob.setup()
@@ -707,7 +703,7 @@ def test_includes_post_setup(self):
assertDriverIterDataRecorded(self, expected_data, self.eps)
def test_record_system_with_hierarchy(self):
- prob = SellarProblem(SellarDerivativesGrouped, nonlinear_solver=NonlinearRunOnce)
+ prob = SellarProblem(SellarDerivativesGrouped, nonlinear_solver=om.NonlinearRunOnce)
prob.setup(mode='rev')
model = prob.model
@@ -733,7 +729,7 @@ def test_record_system_with_hierarchy(self):
d1.recording_options['record_metadata'] = True
d1.add_recorder(self.recorder)
- prob.driver = ScipyOptimizeDriver(disp=False, tol=1e-9)
+ prob.driver = om.ScipyOptimizeDriver(disp=False, tol=1e-9)
t0, t1 = run_driver(prob)
prob.cleanup()
@@ -851,13 +847,13 @@ def test_record_line_search_armijo_goldstein(self):
prob.setup()
model = prob.model
- model.linear_solver = ScipyKrylov()
+ model.linear_solver = om.ScipyKrylov()
- nl = model.nonlinear_solver = NewtonSolver()
+ nl = model.nonlinear_solver = om.NewtonSolver()
nl.options['solve_subsystems'] = True
nl.options['max_sub_solves'] = 4
- ls = nl.linesearch = ArmijoGoldsteinLS(bound_enforcement='vector')
+ ls = nl.linesearch = om.ArmijoGoldsteinLS(bound_enforcement='vector')
ls.options['c'] = 100.0 # This is bogus, but it ensures that we get a few LS iterations.
ls.add_recorder(self.recorder)
@@ -897,13 +893,13 @@ def test_record_line_search_bounds_enforce(self):
prob.setup()
model = prob.model
- model.linear_solver = ScipyKrylov()
+ model.linear_solver = om.ScipyKrylov()
- nl = model.nonlinear_solver = NewtonSolver()
+ nl = model.nonlinear_solver = om.NewtonSolver()
nl.options['solve_subsystems'] = True
nl.options['max_sub_solves'] = 4
- ls = nl.linesearch = BoundsEnforceLS(bound_enforcement='vector')
+ ls = nl.linesearch = om.BoundsEnforceLS(bound_enforcement='vector')
ls.add_recorder(self.recorder)
t0, t1 = run_driver(prob)
@@ -945,25 +941,26 @@ def test_record_pop_bug(self):
model.connect('y1', 'ae.x')
prob.setup()
- model.linear_solver = ScipyKrylov()
+ model.linear_solver = om.ScipyKrylov()
- nl = model.nonlinear_solver = NewtonSolver()
+ nl = model.nonlinear_solver = om.NewtonSolver()
nl.options['solve_subsystems'] = True
nl.options['max_sub_solves'] = 4
- ls = nl.linesearch = ArmijoGoldsteinLS(bound_enforcement='vector')
+ ls = nl.linesearch = om.ArmijoGoldsteinLS(bound_enforcement='vector')
ls.options['c'] = 100.0 # This is bogus, but it ensures that we get a few LS iterations.
model.add_recorder(self.recorder)
try:
t0, t1 = run_driver(prob)
- except AnalysisError:
+ except om.AnalysisError:
pass
self.assertTrue(len(prob._recording_iter.stack) == 0)
def test_record_solver_nonlinear_block_gs(self):
- prob = SellarProblem(linear_solver=LinearBlockGS, nonlinear_solver=NonlinearBlockGS)
+ prob = SellarProblem(linear_solver=om.LinearBlockGS,
+ nonlinear_solver=om.NonlinearBlockGS)
prob.setup()
prob.model.nonlinear_solver.add_recorder(self.recorder)
@@ -1003,7 +1000,7 @@ def test_record_solver_nonlinear_block_gs(self):
assertSolverIterDataRecorded(self, expected_data, self.eps)
def test_record_solver_nonlinear_block_jac(self):
- prob = SellarProblem(linear_solver=LinearBlockGS, nonlinear_solver=NonlinearBlockJac)
+ prob = SellarProblem(linear_solver=om.LinearBlockGS, nonlinear_solver=om.NonlinearBlockJac)
prob.setup()
prob.model.nonlinear_solver.add_recorder(self.recorder)
@@ -1034,7 +1031,7 @@ def test_record_solver_nonlinear_block_jac(self):
assertSolverIterDataRecorded(self, expected_data, self.eps)
def test_record_solver_nonlinear_newton(self):
- prob = SellarProblem(linear_solver=LinearBlockGS, nonlinear_solver=NewtonSolver)
+ prob = SellarProblem(linear_solver=om.LinearBlockGS, nonlinear_solver=om.NewtonSolver)
prob.setup()
prob.model.nonlinear_solver.add_recorder(self.recorder)
@@ -1065,7 +1062,7 @@ def test_record_solver_nonlinear_newton(self):
assertSolverIterDataRecorded(self, expected_data, self.eps)
def test_record_solver_nonlinear_nonlinear_run_once(self):
- prob = SellarProblem(nonlinear_solver=NonlinearRunOnce)
+ prob = SellarProblem(nonlinear_solver=om.NonlinearRunOnce)
prob.setup()
prob.model.nonlinear_solver.add_recorder(self.recorder)
@@ -1101,11 +1098,11 @@ def test_record_solver_linear(self):
prob = SellarProblem()
prob.setup()
- nl = prob.model.nonlinear_solver = NewtonSolver()
+ nl = prob.model.nonlinear_solver = om.NewtonSolver()
linear_solvers = [
- DirectSolver, ScipyKrylov, PETScKrylov,
- LinearBlockGS, LinearRunOnce, LinearBlockJac
+ om.DirectSolver, om.ScipyKrylov, om.PETScKrylov,
+ om.LinearBlockGS, om.LinearRunOnce, om.LinearBlockJac
]
for solver in linear_solvers:
@@ -1125,10 +1122,10 @@ def test_record_solver_linear(self):
def test_record_driver_system_solver(self):
# Test what happens when all three types are recorded: Driver, System, and Solver
- prob = SellarProblem(SellarDerivativesGrouped, nonlinear_solver=NonlinearRunOnce)
+ prob = SellarProblem(SellarDerivativesGrouped, nonlinear_solver=om.NonlinearRunOnce)
prob.setup(mode='rev')
- driver = prob.driver = ScipyOptimizeDriver(disp=False, tol=1e-9)
+ driver = prob.driver = om.ScipyOptimizeDriver(disp=False, tol=1e-9)
#
# Add recorders
@@ -1150,7 +1147,7 @@ def test_record_driver_system_solver(self):
pz.add_recorder(self.recorder)
# Solver
- nl = prob.model.mda.nonlinear_solver = NonlinearBlockGS()
+ nl = prob.model.mda.nonlinear_solver = om.NonlinearBlockGS()
nl.recording_options['record_metadata'] = True
nl.recording_options['record_abs_error'] = True
nl.recording_options['record_rel_error'] = True
@@ -1226,10 +1223,10 @@ def test_record_driver_system_solver(self):
def test_global_counter(self):
# The case recorder maintains a global counter across all recordings
- prob = SellarProblem(SellarDerivativesGrouped, nonlinear_solver=NonlinearRunOnce)
+ prob = SellarProblem(SellarDerivativesGrouped, nonlinear_solver=om.NonlinearRunOnce)
prob.setup(mode='rev')
- driver = prob.driver = ScipyOptimizeDriver(disp=False, tol=1e-9)
+ driver = prob.driver = om.ScipyOptimizeDriver(disp=False, tol=1e-9)
# Add recorders for Driver, System, Solver
driver.add_recorder(self.recorder)
@@ -1264,12 +1261,12 @@ def test_global_counter(self):
def test_implicit_component(self):
from openmdao.core.tests.test_impl_comp import QuadraticLinearize, QuadraticJacVec
- indeps = IndepVarComp()
+ indeps = om.IndepVarComp()
indeps.add_output('a', 1.0)
indeps.add_output('b', 1.0)
indeps.add_output('c', 1.0)
- group = Group()
+ group = om.Group()
group.add_subsystem('comp1', indeps)
group.add_subsystem('comp2', QuadraticLinearize())
group.add_subsystem('comp3', QuadraticJacVec())
@@ -1280,7 +1277,7 @@ def test_implicit_component(self):
group.connect('comp1.b', 'comp3.b')
group.connect('comp1.c', 'comp3.c')
- prob = Problem(model=group)
+ prob = om.Problem(model=group)
prob.setup()
prob['comp1.a'] = 1.
@@ -1315,7 +1312,7 @@ def test_multidimensional_arrays(self):
# component TestExplCompArray, put in a model and run it; its outputs are multi-d-arrays.
from openmdao.test_suite.components.expl_comp_array import TestExplCompArray
comp = TestExplCompArray(thickness=1.)
- prob = Problem(comp).setup()
+ prob = om.Problem(comp).setup()
prob['lengths'] = 3.
prob['widths'] = 2.
@@ -1356,7 +1353,7 @@ def test_multidimensional_arrays(self):
def test_record_system_recursively(self):
# Test adding recorders to all Systems using the recurse option to add_recorder
- prob = SellarProblem(SellarDerivativesGrouped, nonlinear_solver=NonlinearRunOnce)
+ prob = SellarProblem(SellarDerivativesGrouped, nonlinear_solver=om.NonlinearRunOnce)
prob.setup(mode='rev')
# Need to do recursive adding of recorders AFTER setup
@@ -1394,7 +1391,7 @@ def test_record_system_recursively(self):
])
def test_record_system_with_prefix(self):
- prob = SellarProblem(SellarDerivativesGrouped, nonlinear_solver=NonlinearRunOnce)
+ prob = SellarProblem(SellarDerivativesGrouped, nonlinear_solver=om.NonlinearRunOnce)
prob.setup(mode='rev')
prob.model.mda.nonlinear_solver.options['use_apply_nonlinear'] = True
@@ -1442,9 +1439,9 @@ def test_record_system_with_prefix(self):
])
def test_driver_recording_with_system_vars(self):
- prob = SellarProblem(SellarDerivativesGrouped, nonlinear_solver=NonlinearRunOnce)
+ prob = SellarProblem(SellarDerivativesGrouped, nonlinear_solver=om.NonlinearRunOnce)
- driver = prob.driver = ScipyOptimizeDriver(disp=False, tol=1e-9)
+ driver = prob.driver = om.ScipyOptimizeDriver(disp=False, tol=1e-9)
driver.recording_options['record_desvars'] = True
driver.recording_options['record_responses'] = True
driver.recording_options['record_objectives'] = True
@@ -1511,7 +1508,7 @@ def test_recorder_file_already_exists_no_append(self):
driver.recording_options['record_objectives'] = False
driver.recording_options['record_constraints'] = False
driver.recording_options['includes'] = []
- driver.add_recorder(SqliteRecorder(self.filename))
+ driver.add_recorder(om.SqliteRecorder(self.filename))
prob.setup()
t0, t1 = run_driver(prob)
@@ -1539,12 +1536,12 @@ def assert_closed(self, recorder):
driver = prob.driver
system = prob.model.pz
- solver = prob.model.nonlinear_solver.linesearch = BoundsEnforceLS()
+ solver = prob.model.nonlinear_solver.linesearch = om.BoundsEnforceLS()
# create 3 different recorders
- driver_recorder = SqliteRecorder('driver_cases.sql')
- system_recorder = SqliteRecorder('system_cases.sql')
- solver_recorder = SqliteRecorder('solver_cases.sql')
+ driver_recorder = om.SqliteRecorder('driver_cases.sql')
+ system_recorder = om.SqliteRecorder('system_cases.sql')
+ solver_recorder = om.SqliteRecorder('solver_cases.sql')
# add recorders
driver.add_recorder(driver_recorder)
@@ -1578,9 +1575,9 @@ def assert_closed(self, recorder):
self.assertFalse(solver._rec_mgr.has_recorders())
def test_problem_record_no_voi(self):
- prob = Problem(model=SellarDerivatives())
+ prob = om.Problem(model=SellarDerivatives())
- prob.add_recorder(SqliteRecorder("cases.sql"))
+ prob.add_recorder(om.SqliteRecorder("cases.sql"))
prob.setup()
prob.run_driver()
@@ -1588,7 +1585,7 @@ def test_problem_record_no_voi(self):
prob.record_iteration('final')
prob.cleanup()
- cr = CaseReader("cases.sql")
+ cr = om.CaseReader("cases.sql")
problem_cases = cr.list_cases('problem')
self.assertEqual(len(problem_cases), 1)
@@ -1609,7 +1606,7 @@ def test_problem_record_no_voi(self):
{'con1', 'con2', 'obj', 'x', 'y1', 'y2', 'z'})
def test_problem_record_with_options(self):
- prob = Problem(model=SellarDerivatives())
+ prob = om.Problem(model=SellarDerivatives())
model = prob.model
model.add_design_var('z', lower=np.array([-10.0, 0.0]),
@@ -1619,7 +1616,7 @@ def test_problem_record_with_options(self):
model.add_constraint('con1', upper=0.0)
model.add_constraint('con2', upper=0.0)
- prob.add_recorder(SqliteRecorder("cases.sql"))
+ prob.add_recorder(om.SqliteRecorder("cases.sql"))
prob.recording_options['record_objectives'] = False
prob.recording_options['record_constraints'] = False
@@ -1631,7 +1628,7 @@ def test_problem_record_with_options(self):
prob.record_iteration('final')
prob.cleanup()
- cr = CaseReader("cases.sql")
+ cr = om.CaseReader("cases.sql")
problem_cases = cr.list_cases('problem')
self.assertEqual(len(problem_cases), 1)
@@ -1650,7 +1647,7 @@ def test_problem_record_with_options(self):
self.assertEqual(set(final_case.outputs.keys()), {'y1', 'y2'})
def test_problem_record_options_includes(self):
- prob = Problem(model=SellarDerivatives())
+ prob = om.Problem(model=SellarDerivatives())
model = prob.model
model.add_design_var('z', lower=np.array([-10.0, 0.0]),
@@ -1660,7 +1657,7 @@ def test_problem_record_options_includes(self):
model.add_constraint('con1', upper=0.0)
model.add_constraint('con2', upper=0.0)
- prob.add_recorder(SqliteRecorder("cases.sql"))
+ prob.add_recorder(om.SqliteRecorder("cases.sql"))
prob.recording_options['includes'] = []
@@ -1670,7 +1667,7 @@ def test_problem_record_options_includes(self):
prob.record_iteration('final')
prob.cleanup()
- cr = CaseReader("cases.sql")
+ cr = om.CaseReader("cases.sql")
problem_cases = cr.list_cases('problem')
self.assertEqual(len(problem_cases), 1)
@@ -1690,22 +1687,22 @@ def test_problem_record_options_includes(self):
{'con1', 'con2', 'obj', 'x', 'z'})
def test_simple_paraboloid_scaled_desvars(self):
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', 50.0), promotes=['*'])
- model.add_subsystem('p2', IndepVarComp('y', 50.0), promotes=['*'])
+ model.add_subsystem('p1', om.IndepVarComp('x', 50.0), promotes=['*'])
+ model.add_subsystem('p2', om.IndepVarComp('y', 50.0), promotes=['*'])
model.add_subsystem('comp', Paraboloid(), promotes=['*'])
- model.add_subsystem('con', ExecComp('c = x - y'), promotes=['*'])
+ model.add_subsystem('con', om.ExecComp('c = x - y'), promotes=['*'])
- prob.driver = ScipyOptimizeDriver(optimizer='SLSQP', tol=1e-9, disp=False)
+ prob.driver = om.ScipyOptimizeDriver(optimizer='SLSQP', tol=1e-9, disp=False)
prob.driver.recording_options['record_desvars'] = True
prob.driver.recording_options['record_responses'] = True
prob.driver.recording_options['record_objectives'] = True
prob.driver.recording_options['record_constraints'] = True
- recorder = SqliteRecorder("cases.sql")
+ recorder = om.SqliteRecorder("cases.sql")
prob.driver.add_recorder(recorder)
ref = 5.0
@@ -1721,7 +1718,7 @@ def test_simple_paraboloid_scaled_desvars(self):
prob.run_driver()
prob.cleanup()
- cr = CaseReader("cases.sql")
+ cr = om.CaseReader("cases.sql")
# Test values from one case, the last case
driver_cases = cr.list_cases('driver')
@@ -1762,24 +1759,23 @@ def tearDown(self):
raise e
def test_feature_simple_driver_recording(self):
- from openmdao.api import Problem, IndepVarComp, ExecComp, \
- ScipyOptimizeDriver, SqliteRecorder, CaseReader
+ import openmdao.api as om
from openmdao.test_suite.components.paraboloid import Paraboloid
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', 50.0), promotes=['*'])
- model.add_subsystem('p2', IndepVarComp('y', 50.0), promotes=['*'])
+ model.add_subsystem('p1', om.IndepVarComp('x', 50.0), promotes=['*'])
+ model.add_subsystem('p2', om.IndepVarComp('y', 50.0), promotes=['*'])
model.add_subsystem('comp', Paraboloid(), promotes=['*'])
- model.add_subsystem('con', ExecComp('c = - x + y'), promotes=['*'])
+ model.add_subsystem('con', om.ExecComp('c = - x + y'), promotes=['*'])
model.add_design_var('x', lower=-50.0, upper=50.0)
model.add_design_var('y', lower=-50.0, upper=50.0)
model.add_objective('f_xy')
model.add_constraint('c', upper=-15.0)
- driver = prob.driver = ScipyOptimizeDriver()
+ driver = prob.driver = om.ScipyOptimizeDriver()
driver.options['optimizer'] = 'SLSQP'
driver.options['tol'] = 1e-9
@@ -1790,33 +1786,33 @@ def test_feature_simple_driver_recording(self):
case_recorder_filename = 'cases.sql'
- recorder = SqliteRecorder(case_recorder_filename)
+ recorder = om.SqliteRecorder(case_recorder_filename)
prob.driver.add_recorder(recorder)
prob.setup()
prob.run_driver()
prob.cleanup()
- cr = CaseReader(case_recorder_filename)
+ cr = om.CaseReader(case_recorder_filename)
case = cr.get_case('rank0:ScipyOptimize_SLSQP|4')
assert_rel_error(self, case.outputs['x'], 7.16666667, 1e-6)
assert_rel_error(self, case.outputs['y'], -7.83333333, 1e-6)
def test_feature_problem_metadata(self):
- from openmdao.api import Problem, ScipyOptimizeDriver, SqliteRecorder, CaseReader
+ import openmdao.api as om
from openmdao.test_suite.components.sellar import SellarDerivatives
- prob = Problem(SellarDerivatives())
+ prob = om.Problem(SellarDerivatives())
- recorder = SqliteRecorder("cases.sql")
+ recorder = om.SqliteRecorder("cases.sql")
prob.driver.add_recorder(recorder)
prob.setup()
prob.run_driver()
prob.cleanup()
- cr = CaseReader("cases.sql")
+ cr = om.CaseReader("cases.sql")
# access list of connections stored in metadata
connections = sorted(cr.problem_metadata['connections_list'], key=lambda x: (x['tgt'], x['src']))
@@ -1843,11 +1839,10 @@ def test_feature_problem_metadata(self):
['con_cmp1', 'con_cmp2', 'd1', 'd2', 'obj_cmp', 'px', 'pz'])
def test_feature_problem_metadata_with_driver_information(self):
- from openmdao.api import Problem, ScipyOptimizeDriver, SqliteRecorder, CaseReader
- from openmdao.api import DOEDriver, UniformGenerator
+ import openmdao.api as om
from openmdao.test_suite.components.sellar import SellarDerivatives
- prob = Problem(SellarDerivatives())
+ prob = om.Problem(SellarDerivatives())
model = prob.model
model.add_design_var('z', lower=np.array([-10.0, 0.0]),
upper=np.array([10.0, 10.0]))
@@ -1857,24 +1852,24 @@ def test_feature_problem_metadata_with_driver_information(self):
model.add_constraint('con2', upper=0.0)
# DOE
- driver = prob.driver = DOEDriver(UniformGenerator())
- recorder = SqliteRecorder("cases.sql")
+ driver = prob.driver = om.DOEDriver(om.UniformGenerator())
+ recorder = om.SqliteRecorder("cases.sql")
prob.driver.add_recorder(recorder)
prob.setup()
prob.run_driver()
prob.cleanup()
- cr = CaseReader("cases.sql")
+ cr = om.CaseReader("cases.sql")
metadata = cr.problem_metadata['driver']
self.assertEqual(set(metadata.keys()), {'name', 'type', 'options', 'opt_settings'})
self.assertEqual(metadata['name'], 'DOEDriver')
self.assertEqual(metadata['type'], 'doe')
- self.assertEqual(metadata['options'], {'debug_print': [], 'generator': 'UniformGenerator',
- 'run_parallel': False, 'procs_per_model': 1})
+ self.assertEqual(metadata['options'], {'debug_print': [], 'generator': 'UniformGenerator',
+ 'run_parallel': False, 'procs_per_model': 1})
# Optimization
- driver = prob.driver = ScipyOptimizeDriver()
- recorder = SqliteRecorder("cases.sql")
+ driver = prob.driver = om.ScipyOptimizeDriver()
+ recorder = om.SqliteRecorder("cases.sql")
driver.options['optimizer'] = 'SLSQP'
driver.options['tol'] = 1e-3
driver.opt_settings['ACC'] = 1e-6
@@ -1883,40 +1878,40 @@ def test_feature_problem_metadata_with_driver_information(self):
prob.run_driver()
prob.cleanup()
- cr = CaseReader("cases.sql")
+ cr = om.CaseReader("cases.sql")
metadata = cr.problem_metadata['driver']
self.assertEqual(set(metadata.keys()), {'name', 'type', 'options', 'opt_settings'})
self.assertEqual(metadata['name'], 'ScipyOptimizeDriver')
self.assertEqual(metadata['type'], 'optimization')
- self.assertEqual(metadata['options'], {"debug_print": [], "optimizer": "SLSQP",
- "tol": 1e-03, "maxiter": 200, "disp": True,
- "dynamic_simul_derivs": False, "dynamic_derivs_repeats": 3})
+ self.assertEqual(metadata['options'], {"debug_print": [], "optimizer": "SLSQP",
+ "tol": 1e-03, "maxiter": 200, "disp": True,
+ "dynamic_simul_derivs": False, "dynamic_derivs_repeats": 3})
self.assertEqual(metadata['opt_settings'], {"ACC": 1e-06})
def test_feature_solver_metadata(self):
- from openmdao.api import Problem, SqliteRecorder, CaseReader, NonlinearBlockGS
+ import openmdao.api as om
from openmdao.test_suite.components.sellar import SellarDerivatives
- prob = Problem(model=SellarDerivatives())
+ prob = om.Problem(model=SellarDerivatives())
prob.setup()
# create recorder
- recorder = SqliteRecorder("cases.sql")
+ recorder = om.SqliteRecorder("cases.sql")
# add recorder to the nonlinear solver for the model
- prob.model.nonlinear_solver = NonlinearBlockGS()
+ prob.model.nonlinear_solver = om.NonlinearBlockGS()
prob.model.nonlinear_solver.add_recorder(recorder)
# add recorder to the nonlinear solver for Component 'd1'
d1 = prob.model.d1
- d1.nonlinear_solver = NonlinearBlockGS()
+ d1.nonlinear_solver = om.NonlinearBlockGS()
d1.nonlinear_solver.options['maxiter'] = 5
d1.nonlinear_solver.add_recorder(recorder)
prob.run_model()
prob.cleanup()
- cr = CaseReader("cases.sql")
+ cr = om.CaseReader("cases.sql")
metadata = cr.solver_metadata
@@ -1927,10 +1922,10 @@ def test_feature_solver_metadata(self):
self.assertEqual(metadata['root.NonlinearBlockGS']['solver_options']['maxiter'], 10)
def test_feature_system_metadata(self):
- from openmdao.api import Problem, SqliteRecorder, CaseReader
+ import openmdao.api as om
from openmdao.test_suite.components.sellar import SellarDerivatives
- prob = Problem(model=SellarDerivatives())
+ prob = om.Problem(model=SellarDerivatives())
# also record the metadata for all systems in the model
prob.driver.recording_options['record_model_metadata'] = True
@@ -1945,14 +1940,14 @@ def test_feature_system_metadata(self):
d1.recording_options['options_excludes'] = ['dynamic_derivs_repeats']
# create recorder and attach to driver and d1
- recorder = SqliteRecorder("cases.sql")
+ recorder = om.SqliteRecorder("cases.sql")
prob.driver.add_recorder(recorder)
d1.add_recorder(recorder)
prob.run_model()
prob.cleanup()
- cr = CaseReader("cases.sql")
+ cr = om.CaseReader("cases.sql")
# metadata for all the systems in the model
metadata = cr.system_metadata
@@ -1965,13 +1960,13 @@ def test_feature_system_metadata(self):
self.assertEqual(metadata['d1']['component_options']['options value 1'], 1)
def test_feature_system_options(self):
- from openmdao.api import Problem, SqliteRecorder, CaseReader
+ import openmdao.api as om
from openmdao.test_suite.components.sellar import SellarDerivatives
- prob = Problem(model=SellarDerivatives())
+ prob = om.Problem(model=SellarDerivatives())
prob.setup()
- recorder = SqliteRecorder("cases.sql")
+ recorder = om.SqliteRecorder("cases.sql")
obj_cmp = prob.model.obj_cmp
obj_cmp.add_recorder(recorder)
@@ -1983,7 +1978,7 @@ def test_feature_system_options(self):
prob.run_model()
prob.cleanup()
- cr = CaseReader("cases.sql")
+ cr = om.CaseReader("cases.sql")
system_cases = cr.list_cases('root.obj_cmp')
@@ -1994,12 +1989,12 @@ def test_feature_system_options(self):
self.assertEqual(sorted(case.inputs.keys()), ['y1', 'y2', 'z'])
def test_feature_driver_options(self):
- from openmdao.api import Problem, ScipyOptimizeDriver, SqliteRecorder, CaseReader
+ import openmdao.api as om
from openmdao.test_suite.components.sellar import SellarDerivatives
import numpy as np
- prob = Problem(model=SellarDerivatives())
+ prob = om.Problem(model=SellarDerivatives())
model = prob.model
model.add_design_var('z', lower=np.array([-10.0, 0.0]),
@@ -2009,13 +2004,13 @@ def test_feature_driver_options(self):
model.add_constraint('con1', upper=0.0)
model.add_constraint('con2', upper=0.0)
- driver = prob.driver = ScipyOptimizeDriver(optimizer='SLSQP', tol=1e-9)
+ driver = prob.driver = om.ScipyOptimizeDriver(optimizer='SLSQP', tol=1e-9)
driver.recording_options['includes'] = []
driver.recording_options['record_objectives'] = True
driver.recording_options['record_constraints'] = True
driver.recording_options['record_desvars'] = True
- recorder = SqliteRecorder("cases.sql")
+ recorder = om.SqliteRecorder("cases.sql")
driver.add_recorder(recorder)
prob.setup()
@@ -2023,7 +2018,7 @@ def test_feature_driver_options(self):
prob.run_driver()
prob.cleanup()
- cr = CaseReader("cases.sql")
+ cr = om.CaseReader("cases.sql")
driver_cases = cr.list_cases('driver')
@@ -2039,13 +2034,13 @@ def test_feature_driver_options(self):
assert_rel_error(self, constraints, case.get_constraints(), 1e-1)
def test_feature_solver_options(self):
- from openmdao.api import Problem, SqliteRecorder, CaseReader
+ import openmdao.api as om
from openmdao.test_suite.components.sellar import SellarDerivatives
- prob = Problem(model=SellarDerivatives())
+ prob = om.Problem(model=SellarDerivatives())
prob.setup()
- recorder = SqliteRecorder("cases.sql")
+ recorder = om.SqliteRecorder("cases.sql")
solver = prob.model.nonlinear_solver
solver.add_recorder(recorder)
@@ -2055,7 +2050,7 @@ def test_feature_solver_options(self):
prob.run_model()
prob.cleanup()
- cr = CaseReader("cases.sql")
+ cr = om.CaseReader("cases.sql")
solver_cases = cr.list_cases('root.nonlinear_solver')
@@ -2066,11 +2061,10 @@ def test_feature_solver_options(self):
self.assertAlmostEqual(case.abs_err, 2.2545141)
def test_feature_circuit_with_recorder(self):
- from openmdao.api import Group, NewtonSolver, DirectSolver, Problem, IndepVarComp, \
- CaseReader, SqliteRecorder
+ import openmdao.api as om
from openmdao.test_suite.scripts.circuit_analysis import Resistor, Diode, Node
- class Circuit(Group):
+ class Circuit(om.Group):
def setup(self):
self.add_subsystem('n1', Node(n_in=1, n_out=2),
@@ -2089,22 +2083,22 @@ def setup(self):
self.connect('R2.I', 'n2.I_in:0')
self.connect('D1.I', 'n2.I_out:0')
- self.nonlinear_solver = NewtonSolver()
+ self.nonlinear_solver = om.NewtonSolver()
self.nonlinear_solver.options['iprint'] = 2
self.nonlinear_solver.options['maxiter'] = 20
- self.linear_solver = DirectSolver()
+ self.linear_solver = om.DirectSolver()
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('ground', IndepVarComp('V', 0., units='V'))
- model.add_subsystem('source', IndepVarComp('I', 0.1, units='A'))
+ model.add_subsystem('ground', om.IndepVarComp('V', 0., units='V'))
+ model.add_subsystem('source', om.IndepVarComp('I', 0.1, units='A'))
model.add_subsystem('circuit', Circuit())
model.connect('source.I', 'circuit.I_in')
model.connect('ground.V', 'circuit.Vg')
- recorder = SqliteRecorder("cases.sql")
+ recorder = om.SqliteRecorder("cases.sql")
prob.driver.add_recorder(recorder)
prob.driver.recording_options['includes'] = ['*']
prob.setup()
@@ -2117,7 +2111,7 @@ def setup(self):
prob.cleanup()
# create the case reader
- cr = CaseReader("cases.sql")
+ cr = om.CaseReader("cases.sql")
# grab the data recorded in the first driver iteration
driver_cases = cr.list_cases('driver')
@@ -2130,12 +2124,12 @@ def test_feature_load_system_case_for_restart(self):
#######################################################################
# Do the initial optimization run
#######################################################################
- from openmdao.api import Problem, ScipyOptimizeDriver, SqliteRecorder
+ import openmdao.api as om
from openmdao.test_suite.components.sellar import SellarDerivatives
import numpy as np
- prob = Problem(model=SellarDerivatives())
+ prob = om.Problem(model=SellarDerivatives())
model = prob.model
model.add_design_var('z', lower=np.array([-10.0, 0.0]),
@@ -2145,7 +2139,7 @@ def test_feature_load_system_case_for_restart(self):
model.add_constraint('con1', upper=0.0)
model.add_constraint('con2', upper=0.0)
- recorder = SqliteRecorder('cases.sql')
+ recorder = om.SqliteRecorder('cases.sql')
model.add_recorder(recorder)
model.recording_options['record_inputs'] = True
@@ -2154,7 +2148,7 @@ def test_feature_load_system_case_for_restart(self):
model.recording_options['record_metadata'] = False
model.recording_options['options_excludes'] = ['*']
- driver = prob.driver = ScipyOptimizeDriver()
+ driver = prob.driver = om.ScipyOptimizeDriver()
driver.options['optimizer'] = 'SLSQP'
driver.options['tol'] = 1e-9
driver.options['disp'] = False
@@ -2168,10 +2162,10 @@ def test_feature_load_system_case_for_restart(self):
# To debug the problem, we can run the script again, but this time using
# the last recorded case as a starting point.
#######################################################################
- from openmdao.api import Problem, ScipyOptimizeDriver, CaseReader
+ import openmdao.api as om
from openmdao.test_suite.components.sellar import SellarDerivatives
- prob = Problem(model=SellarDerivatives())
+ prob = om.Problem(model=SellarDerivatives())
model = prob.model
model.add_design_var('z', lower=np.array([-10.0, 0.0]),
upper=np.array([10.0, 10.0]))
@@ -2186,7 +2180,7 @@ def test_feature_load_system_case_for_restart(self):
model.recording_options['record_metadata'] = False
model.recording_options['options_excludes'] = ['*']
- prob.driver = ScipyOptimizeDriver()
+ prob.driver = om.ScipyOptimizeDriver()
driver = prob.driver
driver.options['optimizer'] = 'SLSQP'
driver.options['tol'] = 1e-9
@@ -2194,7 +2188,7 @@ def test_feature_load_system_case_for_restart(self):
prob.setup()
- cr = CaseReader('cases.sql')
+ cr = om.CaseReader('cases.sql')
# Load the last case written
last_case = cr.get_case(-1)
@@ -2204,13 +2198,13 @@ def test_feature_load_system_case_for_restart(self):
prob.cleanup()
def test_feature_record_with_prefix(self):
- from openmdao.api import Problem, SqliteRecorder, CaseReader
+ import openmdao.api as om
from openmdao.test_suite.components.sellar import SellarDerivatives
- prob = Problem(model=SellarDerivatives())
+ prob = om.Problem(model=SellarDerivatives())
prob.setup()
- recorder = SqliteRecorder("cases.sql", record_viewer_data=False)
+ recorder = om.SqliteRecorder("cases.sql", record_viewer_data=False)
prob.model.add_recorder(recorder)
prob.driver.add_recorder(recorder)
@@ -2224,7 +2218,7 @@ def test_feature_record_with_prefix(self):
prob.cleanup()
- cr = CaseReader("cases.sql")
+ cr = om.CaseReader("cases.sql")
# all cases recorded by the root system
model_cases = cr.list_cases('root', recurse=False)
@@ -2243,12 +2237,12 @@ def test_feature_record_with_prefix(self):
]))
def test_feature_problem_record(self):
- from openmdao.api import Problem, SqliteRecorder, ScipyOptimizeDriver, CaseReader
+ import openmdao.api as om
from openmdao.test_suite.components.sellar import SellarDerivatives
import numpy as np
- prob = Problem(model=SellarDerivatives())
+ prob = om.Problem(model=SellarDerivatives())
model = prob.model
model.add_design_var('z', lower=np.array([-10.0, 0.0]),
@@ -2258,9 +2252,9 @@ def test_feature_problem_record(self):
model.add_constraint('con1', upper=0.0)
model.add_constraint('con2', upper=0.0)
- prob.driver = ScipyOptimizeDriver(optimizer='SLSQP', tol=1e-9)
+ prob.driver = om.ScipyOptimizeDriver(optimizer='SLSQP', tol=1e-9)
- prob.add_recorder(SqliteRecorder("cases.sql"))
+ prob.add_recorder(om.SqliteRecorder("cases.sql"))
prob.recording_options['includes'] = []
prob.recording_options['record_objectives'] = True
@@ -2272,7 +2266,7 @@ def test_feature_problem_record(self):
prob.record_iteration('final')
prob.cleanup()
- cr = CaseReader("cases.sql")
+ cr = om.CaseReader("cases.sql")
# get list of cases recorded on problem
problem_cases = cr.list_cases('problem')
@@ -2295,14 +2289,14 @@ def test_feature_problem_record(self):
assert_rel_error(self, constraints, case.get_constraints(), 1e-1)
def test_scaling_multiple_calls(self):
- from openmdao.api import Problem, SqliteRecorder, ScipyOptimizeDriver, CaseReader
+ import openmdao.api as om
from openmdao.test_suite.components.sellar import SellarDerivatives
import numpy as np
scaler = 2.
- prob = Problem(model=SellarDerivatives())
+ prob = om.Problem(model=SellarDerivatives())
model = prob.model
model.add_design_var('z', lower=np.array([-10.0, 0.0]),
@@ -2312,9 +2306,9 @@ def test_scaling_multiple_calls(self):
model.add_constraint('con1', upper=0.0, scaler=scaler)
model.add_constraint('con2', upper=0.0, scaler=scaler)
- prob.driver = ScipyOptimizeDriver(optimizer='SLSQP', tol=1e-9)
+ prob.driver = om.ScipyOptimizeDriver(optimizer='SLSQP', tol=1e-9)
- prob.add_recorder(SqliteRecorder("cases.sql"))
+ prob.add_recorder(om.SqliteRecorder("cases.sql"))
prob.recording_options['includes'] = []
prob.recording_options['record_objectives'] = True
@@ -2326,7 +2320,7 @@ def test_scaling_multiple_calls(self):
prob.record_iteration('final')
prob.cleanup()
- cr = CaseReader("cases.sql")
+ cr = om.CaseReader("cases.sql")
# get list of cases recorded on problem
problem_cases = cr.list_cases('problem')
@@ -2374,13 +2368,13 @@ def tearDown(self):
raise e
def record_cases(self):
- from openmdao.api import Problem, ScipyOptimizeDriver, SqliteRecorder
+ import openmdao.api as om
from openmdao.test_suite.components.sellar_feature import SellarMDA
import numpy as np
# create our Sellar problem
- prob = Problem(model=SellarMDA())
+ prob = om.Problem(model=SellarMDA())
model = prob.model
model.add_design_var('z', lower=np.array([-10.0, 0.0]),
@@ -2390,10 +2384,10 @@ def record_cases(self):
model.add_constraint('con1', upper=0.0)
model.add_constraint('con2', upper=0.0)
- prob.driver = ScipyOptimizeDriver(disp=False)
+ prob.driver = om.ScipyOptimizeDriver(disp=False)
# create a case recorder
- recorder = SqliteRecorder('cases.sql')
+ recorder = om.SqliteRecorder('cases.sql')
# add the recorder to the driver so driver iterations will be recorded
prob.driver.add_recorder(recorder)
@@ -2413,10 +2407,10 @@ def record_cases(self):
prob.cleanup()
def test_read_cases(self):
- from openmdao.api import CaseReader
+ import openmdao.api as om
# open database of previously saved cases
- cr = CaseReader("cases.sql")
+ cr = om.CaseReader("cases.sql")
# get a list of cases that were recorded by the driver
driver_cases = cr.list_cases('driver')
diff --git a/openmdao/solvers/linear/tests/linear_test_base.py b/openmdao/solvers/linear/tests/linear_test_base.py
index 32288fe9c3..4922428b49 100644
--- a/openmdao/solvers/linear/tests/linear_test_base.py
+++ b/openmdao/solvers/linear/tests/linear_test_base.py
@@ -32,7 +32,7 @@ def test_solve_linear_maxiter(self):
group.linear_solver.options['maxiter'] = 2
p = Problem(group)
- p.setup(check=False)
+ p.setup()
p.set_solver_print(level=0)
# Conclude setup but don't run model.
@@ -58,7 +58,7 @@ def test_simple_matvec(self):
# Tests derivatives on a simple comp that defines compute_jacvec.
# Note, For DirectSolver, assemble_jac must be False for mat-vec.
prob = Problem()
- model = prob.model = Group()
+ model = prob.model
model.add_subsystem('x_param', IndepVarComp('length', 3.0),
promotes=['length'])
model.add_subsystem('mycomp', TestExplCompSimpleJacVec(),
@@ -93,7 +93,7 @@ def test_simple_matvec_subbed(self):
# Tests derivatives on a group that contains a simple comp that
# defines compute_jacvec.
prob = Problem()
- model = prob.model = Group()
+ model = prob.model
model.add_subsystem('x_param', IndepVarComp('length', 3.0),
promotes=['length'])
sub = model.add_subsystem('sub', Group(),
@@ -131,7 +131,7 @@ def test_simple_matvec_subbed_like_multipoint(self):
# defines compute_jacvec. For this one, the indepvarcomp is also
# in the subsystem.
prob = Problem()
- model = prob.model = Group()
+ model = prob.model
sub = model.add_subsystem('sub', Group(),
promotes=['length', 'width', 'area'])
sub.add_subsystem('x_param', IndepVarComp('length', 3.0),
diff --git a/openmdao/solvers/linear/tests/test_direct_solver.py b/openmdao/solvers/linear/tests/test_direct_solver.py
index cf32709d27..ba07ddde66 100644
--- a/openmdao/solvers/linear/tests/test_direct_solver.py
+++ b/openmdao/solvers/linear/tests/test_direct_solver.py
@@ -7,8 +7,7 @@
import numpy as np
-from openmdao.api import Problem, Group, IndepVarComp, DirectSolver, NewtonSolver, ExecComp, \
- NewtonSolver, BalanceComp, ExplicitComponent, ImplicitComponent
+import openmdao.api as om
from openmdao.solvers.linear.tests.linear_test_base import LinearSolverTests
from openmdao.test_suite.components.expl_comp_simple import TestExplCompSimpleJacVec
from openmdao.test_suite.components.sellar import SellarDerivatives
@@ -16,7 +15,7 @@
from openmdao.utils.assert_utils import assert_rel_error
-class NanComp(ExplicitComponent):
+class NanComp(om.ExplicitComponent):
def setup(self):
self.add_input('x', 1.0)
self.add_output('y', 1.0)
@@ -32,7 +31,7 @@ def compute_partials(self, inputs, partials):
J['y', 'x'] = np.NaN
-class SingularComp(ImplicitComponent):
+class SingularComp(om.ImplicitComponent):
def setup(self):
self.add_input('x', 1.0)
self.add_output('y', 1.0)
@@ -46,7 +45,7 @@ def compute_partials(self, inputs, partials):
J['y', 'y'] = 0.0
-class NanComp2(ExplicitComponent):
+class NanComp2(om.ExplicitComponent):
def setup(self):
self.add_input('x', 1.0)
self.add_output('y', 1.0)
@@ -64,7 +63,7 @@ def compute_partials(self, inputs, partials):
J['y', 'x'] = np.NaN
J['y2', 'x'] = 2.0
-class DupPartialsComp(ExplicitComponent):
+class DupPartialsComp(om.ExplicitComponent):
def setup(self):
self.add_input('c', np.zeros(19))
self.add_output('x', np.zeros(11))
@@ -82,12 +81,12 @@ def compute_partials(self, inputs, partials):
class TestDirectSolver(LinearSolverTests.LinearSolverTestCase):
- linear_solver_class = DirectSolver
+ linear_solver_class = om.DirectSolver
# DirectSolver doesn't iterate.
def test_solve_linear_maxiter(self):
# Test that using options that should not exist in class cause an error
- solver = DirectSolver()
+ solver = om.DirectSolver()
msg = "\"Option '%s' cannot be set because it has not been declared.\""
@@ -100,15 +99,15 @@ def test_solve_linear_maxiter(self):
def test_solve_on_subsystem(self):
"""solve an implicit system with DirectSolver attached to a subsystem"""
- p = Problem()
+ p = om.Problem()
model = p.model
- dv = model.add_subsystem('des_vars', IndepVarComp())
+ dv = model.add_subsystem('des_vars', om.IndepVarComp())
# just need a dummy variable so the sizes don't match between root and g1
dv.add_output('dummy', val=1.0, shape=10)
- g1 = model.add_subsystem('g1', TestImplicitGroup(lnSolverClass=DirectSolver))
+ g1 = model.add_subsystem('g1', TestImplicitGroup(lnSolverClass=om.DirectSolver))
- p.setup(check=False)
+ p.setup()
g1.linear_solver.options['assemble_jac'] = False
@@ -142,8 +141,9 @@ def test_solve_on_subsystem(self):
def test_rev_mode_bug(self):
- prob = Problem()
- prob.model = SellarDerivatives(nonlinear_solver=NewtonSolver(), linear_solver=DirectSolver())
+ prob = om.Problem()
+ prob.model = SellarDerivatives(nonlinear_solver=om.NewtonSolver(),
+ linear_solver=om.DirectSolver())
prob.setup(check=False, mode='rev')
prob.set_solver_print(level=0)
@@ -175,16 +175,16 @@ def test_rev_mode_bug(self):
assert_rel_error(self, prob['y2'], 12.05848819, .00001)
def test_multi_dim_src_indices(self):
- prob = Problem()
+ prob = om.Problem()
model = prob.model
size = 5
- model.add_subsystem('indeps', IndepVarComp('x', np.arange(5).reshape((1,size,1))))
- model.add_subsystem('comp', ExecComp('y = x * 2.', x=np.zeros((size,)), y=np.zeros((size,))))
+ model.add_subsystem('indeps', om.IndepVarComp('x', np.arange(5).reshape((1,size,1))))
+ model.add_subsystem('comp', om.ExecComp('y = x * 2.', x=np.zeros((size,)), y=np.zeros((size,))))
src_indices = [[0, i, 0] for i in range(size)]
model.connect('indeps.x', 'comp.x', src_indices=src_indices)
- model.linear_solver = DirectSolver()
+ model.linear_solver = om.DirectSolver()
prob.setup()
prob.run_model()
@@ -192,18 +192,18 @@ def test_multi_dim_src_indices(self):
np.testing.assert_almost_equal(J, np.eye(size) * 2.)
def test_raise_error_on_singular(self):
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- comp = IndepVarComp()
+ comp = om.IndepVarComp()
comp.add_output('dXdt:TAS', val=1.0)
comp.add_output('accel_target', val=2.0)
model.add_subsystem('des_vars', comp, promotes=['*'])
- teg = model.add_subsystem('thrust_equilibrium_group', subsys=Group())
- teg.add_subsystem('dynamics', ExecComp('z = 2.0*thrust'), promotes=['*'])
+ teg = model.add_subsystem('thrust_equilibrium_group', subsys=om.Group())
+ teg.add_subsystem('dynamics', om.ExecComp('z = 2.0*thrust'), promotes=['*'])
- thrust_bal = BalanceComp()
+ thrust_bal = om.BalanceComp()
thrust_bal.add_balance(name='thrust', val=1207.1, lhs_name='dXdt:TAS',
rhs_name='accel_target', eq_units='m/s**2', lower=-10.0, upper=10000.0)
@@ -211,14 +211,14 @@ def test_raise_error_on_singular(self):
promotes_inputs=['dXdt:TAS', 'accel_target'],
promotes_outputs=['thrust'])
- teg.linear_solver = DirectSolver(assemble_jac=False)
+ teg.linear_solver = om.DirectSolver(assemble_jac=False)
- teg.nonlinear_solver = NewtonSolver()
+ teg.nonlinear_solver = om.NewtonSolver()
teg.nonlinear_solver.options['solve_subsystems'] = True
teg.nonlinear_solver.options['max_sub_solves'] = 1
teg.nonlinear_solver.options['atol'] = 1e-4
- prob.setup(check=False)
+ prob.setup()
prob.set_solver_print(level=0)
with self.assertRaises(RuntimeError) as cm:
@@ -229,34 +229,34 @@ def test_raise_error_on_singular(self):
self.assertEqual(expected_msg, str(cm.exception))
def test_raise_error_on_dup_partials(self):
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('des_vars', IndepVarComp('x', 1.0), promotes=['*'])
+ model.add_subsystem('des_vars', om.IndepVarComp('x', 1.0), promotes=['*'])
model.add_subsystem('dupcomp', DupPartialsComp())
- model.linear_solver = DirectSolver(assemble_jac=True)
+ model.linear_solver = om.DirectSolver(assemble_jac=True)
with self.assertRaises(Exception) as cm:
- prob.setup(check=False)
+ prob.setup()
expected_msg = "dupcomp: declare_partials has been called with rows and cols that specify the following duplicate subjacobian entries: [(4, 11), (10, 2)]."
self.assertEqual(expected_msg, str(cm.exception))
def test_raise_error_on_singular_with_densejac(self):
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- comp = IndepVarComp()
+ comp = om.IndepVarComp()
comp.add_output('dXdt:TAS', val=1.0)
comp.add_output('accel_target', val=2.0)
model.add_subsystem('des_vars', comp, promotes=['*'])
- teg = model.add_subsystem('thrust_equilibrium_group', subsys=Group())
- teg.add_subsystem('dynamics', ExecComp('z = 2.0*thrust'), promotes=['*'])
+ teg = model.add_subsystem('thrust_equilibrium_group', subsys=om.Group())
+ teg.add_subsystem('dynamics', om.ExecComp('z = 2.0*thrust'), promotes=['*'])
- thrust_bal = BalanceComp()
+ thrust_bal = om.BalanceComp()
thrust_bal.add_balance(name='thrust', val=1207.1, lhs_name='dXdt:TAS',
rhs_name='accel_target', eq_units='m/s**2', lower=-10.0, upper=10000.0)
@@ -264,15 +264,15 @@ def test_raise_error_on_singular_with_densejac(self):
promotes_inputs=['dXdt:TAS', 'accel_target'],
promotes_outputs=['thrust'])
- teg.linear_solver = DirectSolver(assemble_jac=True)
+ teg.linear_solver = om.DirectSolver(assemble_jac=True)
teg.options['assembled_jac_type'] = 'dense'
- teg.nonlinear_solver = NewtonSolver()
+ teg.nonlinear_solver = om.NewtonSolver()
teg.nonlinear_solver.options['solve_subsystems'] = True
teg.nonlinear_solver.options['max_sub_solves'] = 1
teg.nonlinear_solver.options['atol'] = 1e-4
- prob.setup(check=False)
+ prob.setup()
prob.set_solver_print(level=0)
with self.assertRaises(RuntimeError) as cm:
@@ -283,18 +283,18 @@ def test_raise_error_on_singular_with_densejac(self):
self.assertEqual(expected_msg, str(cm.exception))
def test_raise_error_on_singular_with_sparsejac(self):
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- comp = IndepVarComp()
+ comp = om.IndepVarComp()
comp.add_output('dXdt:TAS', val=1.0)
comp.add_output('accel_target', val=2.0)
model.add_subsystem('des_vars', comp, promotes=['*'])
- teg = model.add_subsystem('thrust_equilibrium_group', subsys=Group())
- teg.add_subsystem('dynamics', ExecComp('z = 2.0*thrust'), promotes=['*'])
+ teg = model.add_subsystem('thrust_equilibrium_group', subsys=om.Group())
+ teg.add_subsystem('dynamics', om.ExecComp('z = 2.0*thrust'), promotes=['*'])
- thrust_bal = BalanceComp()
+ thrust_bal = om.BalanceComp()
thrust_bal.add_balance(name='thrust', val=1207.1, lhs_name='dXdt:TAS',
rhs_name='accel_target', eq_units='m/s**2', lower=-10.0, upper=10000.0)
@@ -302,14 +302,14 @@ def test_raise_error_on_singular_with_sparsejac(self):
promotes_inputs=['dXdt:TAS', 'accel_target'],
promotes_outputs=['thrust'])
- teg.linear_solver = DirectSolver(assemble_jac=True)
+ teg.linear_solver = om.DirectSolver(assemble_jac=True)
- teg.nonlinear_solver = NewtonSolver()
+ teg.nonlinear_solver = om.NewtonSolver()
teg.nonlinear_solver.options['solve_subsystems'] = True
teg.nonlinear_solver.options['max_sub_solves'] = 1
teg.nonlinear_solver.options['atol'] = 1e-4
- prob.setup(check=False)
+ prob.setup()
prob.set_solver_print(level=0)
with self.assertRaises(RuntimeError) as cm:
@@ -320,18 +320,18 @@ def test_raise_error_on_singular_with_sparsejac(self):
self.assertEqual(expected_msg, str(cm.exception))
def test_raise_no_error_on_singular(self):
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- comp = IndepVarComp()
+ comp = om.IndepVarComp()
comp.add_output('dXdt:TAS', val=1.0)
comp.add_output('accel_target', val=2.0)
model.add_subsystem('des_vars', comp, promotes=['*'])
- teg = model.add_subsystem('thrust_equilibrium_group', subsys=Group())
- teg.add_subsystem('dynamics', ExecComp('z = 2.0*thrust'), promotes=['*'])
+ teg = model.add_subsystem('thrust_equilibrium_group', subsys=om.Group())
+ teg.add_subsystem('dynamics', om.ExecComp('z = 2.0*thrust'), promotes=['*'])
- thrust_bal = BalanceComp()
+ thrust_bal = om.BalanceComp()
thrust_bal.add_balance(name='thrust', val=1207.1, lhs_name='dXdt:TAS',
rhs_name='accel_target', eq_units='m/s**2', lower=-10.0, upper=10000.0)
@@ -339,14 +339,14 @@ def test_raise_no_error_on_singular(self):
promotes_inputs=['dXdt:TAS', 'accel_target'],
promotes_outputs=['thrust'])
- teg.linear_solver = DirectSolver(assemble_jac=False)
+ teg.linear_solver = om.DirectSolver(assemble_jac=False)
- teg.nonlinear_solver = NewtonSolver()
+ teg.nonlinear_solver = om.NewtonSolver()
teg.nonlinear_solver.options['solve_subsystems'] = True
teg.nonlinear_solver.options['max_sub_solves'] = 1
teg.nonlinear_solver.options['atol'] = 1e-4
- prob.setup(check=False)
+ prob.setup()
prob.set_solver_print(level=0)
teg.linear_solver.options['err_on_singular'] = False
@@ -354,17 +354,17 @@ def test_raise_no_error_on_singular(self):
def test_raise_error_on_nan(self):
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('p', IndepVarComp('x', 2.0))
- model.add_subsystem('c1', ExecComp('y = 4.0*x'))
- sub = model.add_subsystem('sub', Group())
+ model.add_subsystem('p', om.IndepVarComp('x', 2.0))
+ model.add_subsystem('c1', om.ExecComp('y = 4.0*x'))
+ sub = model.add_subsystem('sub', om.Group())
sub.add_subsystem('c2', NanComp())
- model.add_subsystem('c3', ExecComp('y = 4.0*x'))
+ model.add_subsystem('c3', om.ExecComp('y = 4.0*x'))
model.add_subsystem('c4', NanComp2())
- model.add_subsystem('c5', ExecComp('y = 3.0*x'))
- model.add_subsystem('c6', ExecComp('y = 2.0*x'))
+ model.add_subsystem('c5', om.ExecComp('y = 3.0*x'))
+ model.add_subsystem('c6', om.ExecComp('y = 2.0*x'))
model.connect('p.x', 'c1.x')
model.connect('c1.y', 'sub.c2.x')
@@ -373,7 +373,7 @@ def test_raise_error_on_nan(self):
model.connect('c4.y', 'c5.x')
model.connect('c4.y2', 'c6.x')
- model.linear_solver = DirectSolver(assemble_jac=False)
+ model.linear_solver = om.DirectSolver(assemble_jac=False)
prob.setup()
prob.run_model()
@@ -387,17 +387,17 @@ def test_raise_error_on_nan(self):
def test_raise_error_on_nan_sparse(self):
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('p', IndepVarComp('x', 2.0))
- model.add_subsystem('c1', ExecComp('y = 4.0*x'))
- sub = model.add_subsystem('sub', Group())
+ model.add_subsystem('p', om.IndepVarComp('x', 2.0))
+ model.add_subsystem('c1', om.ExecComp('y = 4.0*x'))
+ sub = model.add_subsystem('sub', om.Group())
sub.add_subsystem('c2', NanComp())
- model.add_subsystem('c3', ExecComp('y = 4.0*x'))
+ model.add_subsystem('c3', om.ExecComp('y = 4.0*x'))
model.add_subsystem('c4', NanComp2())
- model.add_subsystem('c5', ExecComp('y = 3.0*x'))
- model.add_subsystem('c6', ExecComp('y = 2.0*x'))
+ model.add_subsystem('c5', om.ExecComp('y = 3.0*x'))
+ model.add_subsystem('c6', om.ExecComp('y = 2.0*x'))
model.connect('p.x', 'c1.x')
model.connect('c1.y', 'sub.c2.x')
@@ -406,7 +406,7 @@ def test_raise_error_on_nan_sparse(self):
model.connect('c4.y', 'c5.x')
model.connect('c4.y2', 'c6.x')
- model.linear_solver = DirectSolver(assemble_jac=True)
+ model.linear_solver = om.DirectSolver(assemble_jac=True)
prob.setup()
prob.run_model()
@@ -420,17 +420,17 @@ def test_raise_error_on_nan_sparse(self):
def test_raise_error_on_nan_dense(self):
- prob = Problem(model=Group(assembled_jac_type='dense'))
+ prob = om.Problem(model=om.Group(assembled_jac_type='dense'))
model = prob.model
- model.add_subsystem('p', IndepVarComp('x', 2.0))
- model.add_subsystem('c1', ExecComp('y = 4.0*x'))
- sub = model.add_subsystem('sub', Group())
+ model.add_subsystem('p', om.IndepVarComp('x', 2.0))
+ model.add_subsystem('c1', om.ExecComp('y = 4.0*x'))
+ sub = model.add_subsystem('sub', om.Group())
sub.add_subsystem('c2', NanComp())
- model.add_subsystem('c3', ExecComp('y = 4.0*x'))
+ model.add_subsystem('c3', om.ExecComp('y = 4.0*x'))
model.add_subsystem('c4', NanComp2())
- model.add_subsystem('c5', ExecComp('y = 3.0*x'))
- model.add_subsystem('c6', ExecComp('y = 2.0*x'))
+ model.add_subsystem('c5', om.ExecComp('y = 3.0*x'))
+ model.add_subsystem('c6', om.ExecComp('y = 2.0*x'))
model.connect('p.x', 'c1.x')
model.connect('c1.y', 'sub.c2.x')
@@ -439,7 +439,7 @@ def test_raise_error_on_nan_dense(self):
model.connect('c4.y', 'c5.x')
model.connect('c4.y2', 'c6.x')
- model.linear_solver = DirectSolver(assemble_jac=True)
+ model.linear_solver = om.DirectSolver(assemble_jac=True)
prob.setup()
prob.run_model()
@@ -452,14 +452,14 @@ def test_raise_error_on_nan_dense(self):
self.assertEqual(expected_msg, str(cm.exception))
def test_error_on_NaN_bug(self):
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('p', IndepVarComp('x', 2.0*np.ones((2, 2))))
- model.add_subsystem('c1', ExecComp('y = 4.0*x', x=np.zeros((2, 2)), y=np.zeros((2, 2))))
- model.add_subsystem('c2', ExecComp('y = 4.0*x', x=np.zeros((2, 2)), y=np.zeros((2, 2))))
- model.add_subsystem('c3', ExecComp('y = 3.0*x', x=np.zeros((2, 2)), y=np.zeros((2, 2))))
- model.add_subsystem('c4', ExecComp('y = 2.0*x', x=np.zeros((2, 2)), y=np.zeros((2, 2))))
+ model.add_subsystem('p', om.IndepVarComp('x', 2.0*np.ones((2, 2))))
+ model.add_subsystem('c1', om.ExecComp('y = 4.0*x', x=np.zeros((2, 2)), y=np.zeros((2, 2))))
+ model.add_subsystem('c2', om.ExecComp('y = 4.0*x', x=np.zeros((2, 2)), y=np.zeros((2, 2))))
+ model.add_subsystem('c3', om.ExecComp('y = 3.0*x', x=np.zeros((2, 2)), y=np.zeros((2, 2))))
+ model.add_subsystem('c4', om.ExecComp('y = 2.0*x', x=np.zeros((2, 2)), y=np.zeros((2, 2))))
model.add_subsystem('c5', NanComp())
model.connect('p.x', 'c1.x')
@@ -468,7 +468,7 @@ def test_error_on_NaN_bug(self):
model.connect('c3.y', 'c4.x')
model.connect('c4.y', 'c5.x', src_indices=([0]))
- model.linear_solver = DirectSolver(assemble_jac=True)
+ model.linear_solver = om.DirectSolver(assemble_jac=True)
prob.setup()
prob.run_model()
@@ -481,14 +481,14 @@ def test_error_on_NaN_bug(self):
self.assertEqual(expected_msg, str(cm.exception))
def test_error_on_singular_with_sparsejac_bug(self):
- prob = Problem(model=Group())
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('p', IndepVarComp('x', 2.0*np.ones((2, 2))))
- model.add_subsystem('c1', ExecComp('y = 4.0*x', x=np.zeros((2, 2)), y=np.zeros((2, 2))))
- model.add_subsystem('c2', ExecComp('y = 4.0*x', x=np.zeros((2, 2)), y=np.zeros((2, 2))))
- model.add_subsystem('c3', ExecComp('y = 3.0*x', x=np.zeros((2, 2)), y=np.zeros((2, 2))))
- model.add_subsystem('c4', ExecComp('y = 2.0*x', x=np.zeros((2, 2)), y=np.zeros((2, 2))))
+ model.add_subsystem('p', om.IndepVarComp('x', 2.0*np.ones((2, 2))))
+ model.add_subsystem('c1', om.ExecComp('y = 4.0*x', x=np.zeros((2, 2)), y=np.zeros((2, 2))))
+ model.add_subsystem('c2', om.ExecComp('y = 4.0*x', x=np.zeros((2, 2)), y=np.zeros((2, 2))))
+ model.add_subsystem('c3', om.ExecComp('y = 3.0*x', x=np.zeros((2, 2)), y=np.zeros((2, 2))))
+ model.add_subsystem('c4', om.ExecComp('y = 2.0*x', x=np.zeros((2, 2)), y=np.zeros((2, 2))))
model.add_subsystem('c5', SingularComp())
model.connect('p.x', 'c1.x')
@@ -497,7 +497,7 @@ def test_error_on_singular_with_sparsejac_bug(self):
model.connect('c3.y', 'c4.x')
model.connect('c4.y', 'c5.x', src_indices=([0]))
- model.linear_solver = DirectSolver(assemble_jac=True)
+ model.linear_solver = om.DirectSolver(assemble_jac=True)
prob.setup()
prob.run_model()
@@ -510,14 +510,14 @@ def test_error_on_singular_with_sparsejac_bug(self):
self.assertEqual(expected_msg, str(cm.exception))
def test_error_on_singular_with_densejac_bug(self):
- prob = Problem(model=Group())
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('p', IndepVarComp('x', 2.0*np.ones((2, 2))))
- model.add_subsystem('c1', ExecComp('y = 4.0*x', x=np.zeros((2, 2)), y=np.zeros((2, 2))))
- model.add_subsystem('c2', ExecComp('y = 4.0*x', x=np.zeros((2, 2)), y=np.zeros((2, 2))))
- model.add_subsystem('c3', ExecComp('y = 3.0*x', x=np.zeros((2, 2)), y=np.zeros((2, 2))))
- model.add_subsystem('c4', ExecComp('y = 2.0*x', x=np.zeros((2, 2)), y=np.zeros((2, 2))))
+ model.add_subsystem('p', om.IndepVarComp('x', 2.0*np.ones((2, 2))))
+ model.add_subsystem('c1', om.ExecComp('y = 4.0*x', x=np.zeros((2, 2)), y=np.zeros((2, 2))))
+ model.add_subsystem('c2', om.ExecComp('y = 4.0*x', x=np.zeros((2, 2)), y=np.zeros((2, 2))))
+ model.add_subsystem('c3', om.ExecComp('y = 3.0*x', x=np.zeros((2, 2)), y=np.zeros((2, 2))))
+ model.add_subsystem('c4', om.ExecComp('y = 2.0*x', x=np.zeros((2, 2)), y=np.zeros((2, 2))))
model.add_subsystem('c5', SingularComp())
model.connect('p.x', 'c1.x')
@@ -526,7 +526,7 @@ def test_error_on_singular_with_densejac_bug(self):
model.connect('c3.y', 'c4.x')
model.connect('c4.y', 'c5.x', src_indices=([0]))
- model.linear_solver = DirectSolver(assemble_jac=True)
+ model.linear_solver = om.DirectSolver(assemble_jac=True)
model.options['assembled_jac_type'] = 'dense'
prob.setup()
@@ -541,7 +541,7 @@ def test_error_on_singular_with_densejac_bug(self):
def test_raise_error_on_underdetermined_csc(self):
- class DCgenerator(ImplicitComponent):
+ class DCgenerator(om.ImplicitComponent):
def setup(self):
self.add_input('V_bus', val=1.0)
@@ -563,7 +563,7 @@ def linearize(self, inputs, outputs, J):
J['P_out', 'V_out'] = outputs['I_out']
J['P_out', 'I_out'] = inputs['V_out']
- class RectifierCalcs(ImplicitComponent):
+ class RectifierCalcs(om.ImplicitComponent):
def setup(self):
self.add_input('P_out', val=1.0)
@@ -583,20 +583,20 @@ def apply_nonlinear(self, inputs, outputs, resids):
resids['V_out'] = 1.0 - outputs['V_out']
resids['Q_in'] = outputs['P_in'] - outputs['Q_in']
- class Rectifier(Group):
+ class Rectifier(om.Group):
def setup(self):
self.add_subsystem('gen', DCgenerator(), promotes=[('V_bus', 'Vm_dc'), 'P_out'])
self.add_subsystem('calcs', RectifierCalcs(), promotes=['P_out', ('V_out', 'Vm_dc')])
- self.nonlinear_solver = NewtonSolver()
- self.linear_solver = DirectSolver()
+ self.nonlinear_solver = om.NewtonSolver()
+ self.linear_solver = om.DirectSolver()
- prob = Problem()
+ prob = om.Problem()
prob.model.add_subsystem('sub', Rectifier())
- prob.setup(check=False)
+ prob.setup()
prob.set_solver_print(level=0)
with self.assertRaises(RuntimeError) as cm:
@@ -607,9 +607,9 @@ def setup(self):
self.assertEqual(expected_msg, str(cm.exception))
def test_matvec_error_raised(self):
- prob = Problem()
- model = prob.model = Group()
- model.add_subsystem('x_param', IndepVarComp('length', 3.0),
+ prob = om.Problem()
+ model = prob.model
+ model.add_subsystem('x_param', om.IndepVarComp('length', 3.0),
promotes=['length'])
model.add_subsystem('mycomp', TestExplCompSimpleJacVec(),
promotes=['length', 'width', 'area'])
@@ -630,13 +630,13 @@ class TestDirectSolverFeature(unittest.TestCase):
def test_specify_solver(self):
- from openmdao.api import Problem, DirectSolver
+ import openmdao.api as om
from openmdao.test_suite.components.sellar import SellarDerivatives
- prob = Problem()
+ prob = om.Problem()
model = prob.model = SellarDerivatives()
- model.linear_solver = DirectSolver()
+ model.linear_solver = om.DirectSolver()
prob.setup()
prob.run_model()
diff --git a/openmdao/solvers/linear/tests/test_linear_block_gs.py b/openmdao/solvers/linear/tests/test_linear_block_gs.py
index 08bc270951..3b02eb301d 100644
--- a/openmdao/solvers/linear/tests/test_linear_block_gs.py
+++ b/openmdao/solvers/linear/tests/test_linear_block_gs.py
@@ -5,17 +5,16 @@
import numpy as np
+import openmdao.api as om
from openmdao.solvers.linear.tests.linear_test_base import LinearSolverTests
-from openmdao.utils.assert_utils import assert_rel_error
-from openmdao.api import LinearBlockGS, Problem, Group, ImplicitComponent, IndepVarComp, \
- DirectSolver, NewtonSolver, ScipyKrylov, ExecComp, NonlinearBlockGS, BoundsEnforceLS
from openmdao.test_suite.components.sellar import SellarImplicitDis1, SellarImplicitDis2, \
SellarDis1withDerivatives, SellarDis2withDerivatives
from openmdao.test_suite.components.expl_comp_simple import TestExplCompSimpleDense
from openmdao.test_suite.components.sellar import SellarDerivatives
+from openmdao.utils.assert_utils import assert_rel_error
-class SimpleImp(ImplicitComponent):
+class SimpleImp(om.ImplicitComponent):
def setup(self):
self.add_input('a', val=1.)
self.add_output('x', val=0.)
@@ -31,18 +30,18 @@ def linearize(self, inputs, outputs, jacobian):
class TestBGSSolver(LinearSolverTests.LinearSolverTestCase):
- linear_solver_class = LinearBlockGS
+ linear_solver_class = om.LinearBlockGS
def test_globaljac_err(self):
- prob = Problem()
- model = prob.model = Group(assembled_jac_type='dense')
- model.add_subsystem('x_param', IndepVarComp('length', 3.0),
+ prob = om.Problem()
+ model = prob.model = om.Group(assembled_jac_type='dense')
+ model.add_subsystem('x_param', om.IndepVarComp('length', 3.0),
promotes=['length'])
model.add_subsystem('mycomp', TestExplCompSimpleDense(),
promotes=['length', 'width', 'area'])
model.linear_solver = self.linear_solver_class(assemble_jac=True)
- prob.setup(check=False)
+ prob.setup()
with self.assertRaises(RuntimeError) as context:
prob.run_model()
@@ -54,14 +53,14 @@ def test_simple_implicit(self):
# This verifies that we can perform lgs around an implicit comp and get the right answer
# as long as we slot a non-lgs linear solver on that component.
- prob = Problem()
- model = prob.model = Group()
- model.add_subsystem('p', IndepVarComp('a', 5.0))
+ prob = om.Problem()
+ model = prob.model
+ model.add_subsystem('p', om.IndepVarComp('a', 5.0))
comp = model.add_subsystem('comp', SimpleImp())
model.connect('p.a', 'comp.a')
model.linear_solver = self.linear_solver_class()
- comp.linear_solver = DirectSolver()
+ comp.linear_solver = om.DirectSolver()
prob.setup(check=False, mode='fwd')
prob.run_model()
@@ -70,20 +69,20 @@ def test_simple_implicit(self):
self.assertEqual(deriv['comp.x', 'p.a'], -1.5)
def test_implicit_cycle(self):
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', 1.0))
+ model.add_subsystem('p1', om.IndepVarComp('x', 1.0))
model.add_subsystem('d1', SellarImplicitDis1())
model.add_subsystem('d2', SellarImplicitDis2())
model.connect('d1.y1', 'd2.y1')
model.connect('d2.y2', 'd1.y2')
- model.nonlinear_solver = NewtonSolver()
+ model.nonlinear_solver = om.NewtonSolver()
model.nonlinear_solver.options['maxiter'] = 5
model.linear_solver = self.linear_solver_class()
- prob.setup(check=False)
+ prob.setup()
prob.set_solver_print(level=0)
prob.run_model()
@@ -93,22 +92,22 @@ def test_implicit_cycle(self):
self.assertLess(res, 2.0e-2)
def test_implicit_cycle_precon(self):
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', 1.0))
+ model.add_subsystem('p1', om.IndepVarComp('x', 1.0))
model.add_subsystem('d1', SellarImplicitDis1())
model.add_subsystem('d2', SellarImplicitDis2())
model.connect('d1.y1', 'd2.y1')
model.connect('d2.y2', 'd1.y2')
- model.nonlinear_solver = NewtonSolver()
+ model.nonlinear_solver = om.NewtonSolver()
model.nonlinear_solver.options['maxiter'] = 5
- model.nonlinear_solver.linesearch = BoundsEnforceLS()
- model.linear_solver = ScipyKrylov()
+ model.nonlinear_solver.linesearch = om.BoundsEnforceLS()
+ model.linear_solver = om.ScipyKrylov()
model.linear_solver.precon = self.linear_solver_class()
- prob.setup(check=False)
+ prob.setup()
prob['d1.y1'] = 4.0
prob.set_solver_print()
@@ -119,19 +118,19 @@ def test_implicit_cycle_precon(self):
self.assertLess(res, 2.0e-2)
def test_full_desvar_with_index_obj_relevance_bug(self):
- prob = Problem()
+ prob = om.Problem()
sub = prob.model.add_subsystem('sub', SellarDerivatives())
- prob.model.nonlinear_solver = NonlinearBlockGS()
- prob.model.linear_solver = LinearBlockGS()
- sub.nonlinear_solver = NonlinearBlockGS()
- sub.linear_solver = LinearBlockGS()
+ prob.model.nonlinear_solver = om.NonlinearBlockGS()
+ prob.model.linear_solver = om.LinearBlockGS()
+ sub.nonlinear_solver = om.NonlinearBlockGS()
+ sub.linear_solver = om.LinearBlockGS()
prob.model.add_design_var('sub.z', lower=-100, upper=100)
prob.model.add_objective('sub.z', index=1)
prob.set_solver_print(level=0)
- prob.setup(check=False)
+ prob.setup()
# We don't call run_driver() here because we don't
# actually want the optimizer to run
@@ -147,27 +146,27 @@ class TestBGSSolverFeature(unittest.TestCase):
def test_specify_solver(self):
import numpy as np
- from openmdao.api import Problem, Group, IndepVarComp, ExecComp, LinearBlockGS, NonlinearBlockGS
+ import openmdao.api as om
from openmdao.test_suite.components.sellar import SellarDis1withDerivatives, SellarDis2withDerivatives
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('px', IndepVarComp('x', 1.0), promotes=['x'])
- model.add_subsystem('pz', IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
+ model.add_subsystem('px', om.IndepVarComp('x', 1.0), promotes=['x'])
+ model.add_subsystem('pz', om.IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
model.add_subsystem('d1', SellarDis1withDerivatives(), promotes=['x', 'z', 'y1', 'y2'])
model.add_subsystem('d2', SellarDis2withDerivatives(), promotes=['z', 'y1', 'y2'])
- model.add_subsystem('obj_cmp', ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
- z=np.array([0.0, 0.0]), x=0.0),
+ model.add_subsystem('obj_cmp', om.ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
+ z=np.array([0.0, 0.0]), x=0.0),
promotes=['obj', 'x', 'z', 'y1', 'y2'])
- model.add_subsystem('con_cmp1', ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
- model.add_subsystem('con_cmp2', ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
+ model.add_subsystem('con_cmp1', om.ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
+ model.add_subsystem('con_cmp2', om.ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
- model.linear_solver = LinearBlockGS()
- model.nonlinear_solver = NonlinearBlockGS()
+ model.linear_solver = om.LinearBlockGS()
+ model.nonlinear_solver = om.NonlinearBlockGS()
prob.setup()
prob.run_model()
@@ -182,28 +181,28 @@ def test_specify_solver(self):
def test_feature_maxiter(self):
import numpy as np
- from openmdao.api import Problem, Group, IndepVarComp, ExecComp, LinearBlockGS, NonlinearBlockGS
+ import openmdao.api as om
from openmdao.test_suite.components.sellar import SellarDis1withDerivatives, SellarDis2withDerivatives
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('px', IndepVarComp('x', 1.0), promotes=['x'])
- model.add_subsystem('pz', IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
+ model.add_subsystem('px', om.IndepVarComp('x', 1.0), promotes=['x'])
+ model.add_subsystem('pz', om.IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
model.add_subsystem('d1', SellarDis1withDerivatives(), promotes=['x', 'z', 'y1', 'y2'])
model.add_subsystem('d2', SellarDis2withDerivatives(), promotes=['z', 'y1', 'y2'])
- model.add_subsystem('obj_cmp', ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
- z=np.array([0.0, 0.0]), x=0.0),
+ model.add_subsystem('obj_cmp', om.ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
+ z=np.array([0.0, 0.0]), x=0.0),
promotes=['obj', 'x', 'z', 'y1', 'y2'])
- model.add_subsystem('con_cmp1', ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
- model.add_subsystem('con_cmp2', ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
+ model.add_subsystem('con_cmp1', om.ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
+ model.add_subsystem('con_cmp2', om.ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
- model.nonlinear_solver = NonlinearBlockGS()
+ model.nonlinear_solver = om.NonlinearBlockGS()
- model.linear_solver = LinearBlockGS()
+ model.linear_solver = om.LinearBlockGS()
model.linear_solver.options['maxiter'] = 2
prob.setup()
@@ -219,28 +218,28 @@ def test_feature_maxiter(self):
def test_feature_atol(self):
import numpy as np
- from openmdao.api import Problem, Group, IndepVarComp, ExecComp, LinearBlockGS, NonlinearBlockGS
+ import openmdao.api as om
from openmdao.test_suite.components.sellar import SellarDis1withDerivatives, SellarDis2withDerivatives
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('px', IndepVarComp('x', 1.0), promotes=['x'])
- model.add_subsystem('pz', IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
+ model.add_subsystem('px', om.IndepVarComp('x', 1.0), promotes=['x'])
+ model.add_subsystem('pz', om.IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
model.add_subsystem('d1', SellarDis1withDerivatives(), promotes=['x', 'z', 'y1', 'y2'])
model.add_subsystem('d2', SellarDis2withDerivatives(), promotes=['z', 'y1', 'y2'])
- model.add_subsystem('obj_cmp', ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
- z=np.array([0.0, 0.0]), x=0.0),
+ model.add_subsystem('obj_cmp', om.ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
+ z=np.array([0.0, 0.0]), x=0.0),
promotes=['obj', 'x', 'z', 'y1', 'y2'])
- model.add_subsystem('con_cmp1', ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
- model.add_subsystem('con_cmp2', ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
+ model.add_subsystem('con_cmp1', om.ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
+ model.add_subsystem('con_cmp2', om.ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
- model.nonlinear_solver = NonlinearBlockGS()
+ model.nonlinear_solver = om.NonlinearBlockGS()
- model.linear_solver = LinearBlockGS()
+ model.linear_solver = om.LinearBlockGS()
model.linear_solver.options['atol'] = 1.0e-3
prob.setup()
@@ -256,28 +255,28 @@ def test_feature_atol(self):
def test_feature_rtol(self):
import numpy as np
- from openmdao.api import Problem, Group, IndepVarComp, ExecComp, LinearBlockGS, NonlinearBlockGS
+ import openmdao.api as om
from openmdao.test_suite.components.sellar import SellarDis1withDerivatives, SellarDis2withDerivatives
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('px', IndepVarComp('x', 1.0), promotes=['x'])
- model.add_subsystem('pz', IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
+ model.add_subsystem('px', om.IndepVarComp('x', 1.0), promotes=['x'])
+ model.add_subsystem('pz', om.IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
model.add_subsystem('d1', SellarDis1withDerivatives(), promotes=['x', 'z', 'y1', 'y2'])
model.add_subsystem('d2', SellarDis2withDerivatives(), promotes=['z', 'y1', 'y2'])
- model.add_subsystem('obj_cmp', ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
- z=np.array([0.0, 0.0]), x=0.0),
+ model.add_subsystem('obj_cmp', om.ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
+ z=np.array([0.0, 0.0]), x=0.0),
promotes=['obj', 'x', 'z', 'y1', 'y2'])
- model.add_subsystem('con_cmp1', ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
- model.add_subsystem('con_cmp2', ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
+ model.add_subsystem('con_cmp1', om.ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
+ model.add_subsystem('con_cmp2', om.ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
- model.nonlinear_solver = NonlinearBlockGS()
+ model.nonlinear_solver = om.NonlinearBlockGS()
- model.linear_solver = LinearBlockGS()
+ model.linear_solver = om.LinearBlockGS()
model.linear_solver.options['rtol'] = 1.0e-3
prob.setup()
diff --git a/openmdao/solvers/linear/tests/test_linear_block_jac.py b/openmdao/solvers/linear/tests/test_linear_block_jac.py
index 79d8d327d3..97fb9ef6bb 100644
--- a/openmdao/solvers/linear/tests/test_linear_block_jac.py
+++ b/openmdao/solvers/linear/tests/test_linear_block_jac.py
@@ -6,8 +6,7 @@
import numpy as np
-from openmdao.api import Group, IndepVarComp, Problem, LinearBlockJac, \
- ExecComp, NonlinearBlockGS
+import openmdao.api as om
from openmdao.utils.assert_utils import assert_rel_error
from openmdao.test_suite.components.sellar import SellarDis1withDerivatives, SellarDis2withDerivatives
from openmdao.test_suite.components.expl_comp_simple import TestExplCompSimpleDense
@@ -16,18 +15,18 @@
class TestLinearBlockJacSolver(LinearSolverTests.LinearSolverTestCase):
- linear_solver_class = LinearBlockJac
+ linear_solver_class = om.LinearBlockJac
def test_globaljac_err(self):
- prob = Problem()
- model = prob.model = Group(assembled_jac_type='dense')
- model.add_subsystem('x_param', IndepVarComp('length', 3.0),
+ prob = om.Problem()
+ model = prob.model = om.Group(assembled_jac_type='dense')
+ model.add_subsystem('x_param', om.IndepVarComp('length', 3.0),
promotes=['length'])
model.add_subsystem('mycomp', TestExplCompSimpleDense(),
promotes=['length', 'width', 'area'])
- model.linear_solver = LinearBlockJac(assemble_jac=True)
- prob.setup(check=False)
+ model.linear_solver = om.LinearBlockJac(assemble_jac=True)
+ prob.setup()
with self.assertRaises(RuntimeError) as context:
prob.run_model()
@@ -40,27 +39,27 @@ class TestBJacSolverFeature(unittest.TestCase):
def test_specify_solver(self):
import numpy as np
- from openmdao.api import Problem, Group, IndepVarComp, ExecComp, LinearBlockJac, NonlinearBlockGS
+ import openmdao.api as om
from openmdao.test_suite.components.sellar import SellarDis1withDerivatives, SellarDis2withDerivatives
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('px', IndepVarComp('x', 1.0), promotes=['x'])
- model.add_subsystem('pz', IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
+ model.add_subsystem('px', om.IndepVarComp('x', 1.0), promotes=['x'])
+ model.add_subsystem('pz', om.IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
model.add_subsystem('d1', SellarDis1withDerivatives(), promotes=['x', 'z', 'y1', 'y2'])
model.add_subsystem('d2', SellarDis2withDerivatives(), promotes=['z', 'y1', 'y2'])
- model.add_subsystem('obj_cmp', ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
- z=np.array([0.0, 0.0]), x=0.0),
+ model.add_subsystem('obj_cmp', om.ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
+ z=np.array([0.0, 0.0]), x=0.0),
promotes=['obj', 'x', 'z', 'y1', 'y2'])
- model.add_subsystem('con_cmp1', ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
- model.add_subsystem('con_cmp2', ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
+ model.add_subsystem('con_cmp1', om.ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
+ model.add_subsystem('con_cmp2', om.ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
- model.nonlinear_solver = NonlinearBlockGS()
- model.linear_solver = LinearBlockJac()
+ model.nonlinear_solver = om.NonlinearBlockGS()
+ model.linear_solver = om.LinearBlockJac()
prob.setup()
prob.run_model()
@@ -75,28 +74,28 @@ def test_specify_solver(self):
def test_feature_maxiter(self):
import numpy as np
- from openmdao.api import Problem, Group, IndepVarComp, ExecComp, LinearBlockJac, NonlinearBlockGS
+ import openmdao.api as om
from openmdao.test_suite.components.sellar import SellarDis1withDerivatives, SellarDis2withDerivatives
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('px', IndepVarComp('x', 1.0), promotes=['x'])
- model.add_subsystem('pz', IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
+ model.add_subsystem('px', om.IndepVarComp('x', 1.0), promotes=['x'])
+ model.add_subsystem('pz', om.IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
model.add_subsystem('d1', SellarDis1withDerivatives(), promotes=['x', 'z', 'y1', 'y2'])
model.add_subsystem('d2', SellarDis2withDerivatives(), promotes=['z', 'y1', 'y2'])
- model.add_subsystem('obj_cmp', ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
- z=np.array([0.0, 0.0]), x=0.0),
+ model.add_subsystem('obj_cmp', om.ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
+ z=np.array([0.0, 0.0]), x=0.0),
promotes=['obj', 'x', 'z', 'y1', 'y2'])
- model.add_subsystem('con_cmp1', ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
- model.add_subsystem('con_cmp2', ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
+ model.add_subsystem('con_cmp1', om.ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
+ model.add_subsystem('con_cmp2', om.ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
- model.nonlinear_solver = NonlinearBlockGS()
+ model.nonlinear_solver = om.NonlinearBlockGS()
- model.linear_solver = LinearBlockJac()
+ model.linear_solver = om.LinearBlockJac()
model.linear_solver.options['maxiter'] = 5
prob.setup()
@@ -112,28 +111,28 @@ def test_feature_maxiter(self):
def test_feature_atol(self):
import numpy as np
- from openmdao.api import Problem, Group, IndepVarComp, ExecComp, LinearBlockJac, NonlinearBlockGS
+ import openmdao.api as om
from openmdao.test_suite.components.sellar import SellarDis1withDerivatives, SellarDis2withDerivatives
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('px', IndepVarComp('x', 1.0), promotes=['x'])
- model.add_subsystem('pz', IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
+ model.add_subsystem('px', om.IndepVarComp('x', 1.0), promotes=['x'])
+ model.add_subsystem('pz', om.IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
model.add_subsystem('d1', SellarDis1withDerivatives(), promotes=['x', 'z', 'y1', 'y2'])
model.add_subsystem('d2', SellarDis2withDerivatives(), promotes=['z', 'y1', 'y2'])
- model.add_subsystem('obj_cmp', ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
- z=np.array([0.0, 0.0]), x=0.0),
+ model.add_subsystem('obj_cmp', om.ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
+ z=np.array([0.0, 0.0]), x=0.0),
promotes=['obj', 'x', 'z', 'y1', 'y2'])
- model.add_subsystem('con_cmp1', ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
- model.add_subsystem('con_cmp2', ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
+ model.add_subsystem('con_cmp1', om.ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
+ model.add_subsystem('con_cmp2', om.ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
- model.nonlinear_solver = NonlinearBlockGS()
+ model.nonlinear_solver = om.NonlinearBlockGS()
- model.linear_solver = LinearBlockJac()
+ model.linear_solver = om.LinearBlockJac()
model.linear_solver.options['atol'] = 1.0e-3
prob.setup(mode='rev')
@@ -149,28 +148,28 @@ def test_feature_atol(self):
def test_feature_rtol(self):
import numpy as np
- from openmdao.api import Problem, Group, IndepVarComp, ExecComp, LinearBlockJac, NonlinearBlockGS
+ import openmdao.api as om
from openmdao.test_suite.components.sellar import SellarDis1withDerivatives, SellarDis2withDerivatives
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('px', IndepVarComp('x', 1.0), promotes=['x'])
- model.add_subsystem('pz', IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
+ model.add_subsystem('px', om.IndepVarComp('x', 1.0), promotes=['x'])
+ model.add_subsystem('pz', om.IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
model.add_subsystem('d1', SellarDis1withDerivatives(), promotes=['x', 'z', 'y1', 'y2'])
model.add_subsystem('d2', SellarDis2withDerivatives(), promotes=['z', 'y1', 'y2'])
- model.add_subsystem('obj_cmp', ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
- z=np.array([0.0, 0.0]), x=0.0),
+ model.add_subsystem('obj_cmp', om.ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
+ z=np.array([0.0, 0.0]), x=0.0),
promotes=['obj', 'x', 'z', 'y1', 'y2'])
- model.add_subsystem('con_cmp1', ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
- model.add_subsystem('con_cmp2', ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
+ model.add_subsystem('con_cmp1', om.ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
+ model.add_subsystem('con_cmp2', om.ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
- model.nonlinear_solver = NonlinearBlockGS()
+ model.nonlinear_solver = om.NonlinearBlockGS()
- model.linear_solver = LinearBlockJac()
+ model.linear_solver = om.LinearBlockJac()
model.linear_solver.options['rtol'] = 1.0e-3
prob.setup(mode='rev')
diff --git a/openmdao/solvers/linear/tests/test_linear_runonce.py b/openmdao/solvers/linear/tests/test_linear_runonce.py
index a403127850..997de818c1 100644
--- a/openmdao/solvers/linear/tests/test_linear_runonce.py
+++ b/openmdao/solvers/linear/tests/test_linear_runonce.py
@@ -2,24 +2,23 @@
import unittest
-from openmdao.api import Problem, Group, IndepVarComp
-from openmdao.utils.assert_utils import assert_rel_error
-from openmdao.solvers.linear.linear_runonce import LinearRunOnce
+import openmdao.api as om
from openmdao.test_suite.components.paraboloid import Paraboloid
from openmdao.test_suite.groups.parallel_groups import ConvergeDivergeGroups
+from openmdao.utils.assert_utils import assert_rel_error
class TestLinearRunOnceSolver(unittest.TestCase):
def test_converge_diverge_groups(self):
# Test derivatives for converge-diverge-groups topology.
- prob = Problem()
+ prob = om.Problem()
model = prob.model = ConvergeDivergeGroups()
- model.linear_solver = LinearRunOnce()
- model.g1.linear_solver = LinearRunOnce()
- model.g1.g2.linear_solver = LinearRunOnce()
- model.g3.linear_solver = LinearRunOnce()
+ model.linear_solver = om.LinearRunOnce()
+ model.g1.linear_solver = om.LinearRunOnce()
+ model.g1.g2.linear_solver = om.LinearRunOnce()
+ model.g3.linear_solver = om.LinearRunOnce()
prob.set_solver_print(level=0)
prob.setup(check=False, mode='fwd')
@@ -42,7 +41,7 @@ def test_converge_diverge_groups(self):
def test_undeclared_options(self):
# Test that using options that should not exist in class cause an error
- solver = LinearRunOnce()
+ solver = om.LinearRunOnce()
msg = "\"Option '%s' cannot be set because it has not been declared.\""
@@ -54,17 +53,17 @@ def test_undeclared_options(self):
def test_feature_solver(self):
- from openmdao.api import Problem, Group, IndepVarComp, LinearRunOnce
+ import openmdao.api as om
from openmdao.test_suite.components.paraboloid import Paraboloid
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', 0.0), promotes=['x'])
- model.add_subsystem('p2', IndepVarComp('y', 0.0), promotes=['y'])
+ model.add_subsystem('p1', om.IndepVarComp('x', 0.0), promotes=['x'])
+ model.add_subsystem('p2', om.IndepVarComp('y', 0.0), promotes=['y'])
model.add_subsystem('comp', Paraboloid(), promotes=['x', 'y', 'f_xy'])
- model.linear_solver = LinearRunOnce()
+ model.linear_solver = om.LinearRunOnce()
prob.setup(check=False, mode='fwd')
diff --git a/openmdao/solvers/linear/tests/test_petsc_ksp.py b/openmdao/solvers/linear/tests/test_petsc_ksp.py
index e74910a20a..c2d8776c0f 100644
--- a/openmdao/solvers/linear/tests/test_petsc_ksp.py
+++ b/openmdao/solvers/linear/tests/test_petsc_ksp.py
@@ -6,8 +6,7 @@
import numpy as np
-from openmdao.api import Problem, Group, IndepVarComp, PETScKrylov, LinearBlockGS, DirectSolver, \
- ExecComp, NewtonSolver, NonlinearBlockGS, PetscKSP
+import openmdao.api as om
from openmdao.test_suite.components.expl_comp_simple import TestExplCompSimpleDense
from openmdao.test_suite.components.misc_components import Comp4LinearCacheTest
from openmdao.test_suite.components.sellar import SellarDis1withDerivatives, SellarDis2withDerivatives
@@ -28,8 +27,8 @@ class TestPETScKrylov(unittest.TestCase):
def test_options(self):
"""Verify that the PETScKrylov specific options are declared."""
- group = Group()
- group.linear_solver = PETScKrylov()
+ group = om.Group()
+ group.linear_solver = om.PETScKrylov()
assert(group.linear_solver.options['ksp_type'] == 'fgmres')
@@ -41,10 +40,10 @@ def test_solve_linear_ksp_default(self):
msg = "PetscKSP is deprecated. Use PETScKrylov instead."
with assert_warning(DeprecationWarning, msg):
- group = TestImplicitGroup(lnSolverClass=PetscKSP)
+ group = TestImplicitGroup(lnSolverClass=om.PetscKSP)
- p = Problem(group)
- p.setup(check=False)
+ p = om.Problem(group)
+ p.setup()
p.set_solver_print(level=0)
# Conclude setup but don't run model.
@@ -71,11 +70,11 @@ def test_solve_linear_ksp_default(self):
def test_solve_linear_ksp_gmres(self):
"""Solve implicit system with PETScKrylov using 'gmres' method."""
- group = TestImplicitGroup(lnSolverClass=PETScKrylov)
+ group = TestImplicitGroup(lnSolverClass=om.PETScKrylov)
group.linear_solver.options['ksp_type'] = 'gmres'
- p = Problem(group)
- p.setup(check=False)
+ p = om.Problem(group)
+ p.setup()
p.set_solver_print(level=0)
# Conclude setup but don't run model.
@@ -102,11 +101,11 @@ def test_solve_linear_ksp_gmres(self):
def test_solve_linear_ksp_maxiter(self):
"""Verify that PETScKrylov abides by the 'maxiter' option."""
- group = TestImplicitGroup(lnSolverClass=PETScKrylov)
+ group = TestImplicitGroup(lnSolverClass=om.PETScKrylov)
group.linear_solver.options['maxiter'] = 2
- p = Problem(group)
- p.setup(check=False)
+ p = om.Problem(group)
+ p.setup()
p.set_solver_print(level=0)
# Conclude setup but don't run model.
@@ -131,11 +130,11 @@ def test_solve_linear_ksp_maxiter(self):
def test_solve_linear_ksp_precon(self):
"""Solve implicit system with PETScKrylov using a preconditioner."""
- group = TestImplicitGroup(lnSolverClass=PETScKrylov)
- precon = group.linear_solver.precon = LinearBlockGS()
+ group = TestImplicitGroup(lnSolverClass=om.PETScKrylov)
+ precon = group.linear_solver.precon = om.LinearBlockGS()
- p = Problem(group)
- p.setup(check=False)
+ p = om.Problem(group)
+ p.setup()
p.set_solver_print(level=0)
# Conclude setup but don't run model.
@@ -164,8 +163,8 @@ def test_solve_linear_ksp_precon(self):
self.assertTrue(precon._iter_count > 0)
# test the direct solver and make sure KSP correctly recurses for _linearize
- precon = group.linear_solver.precon = DirectSolver(assemble_jac=False)
- p.setup(check=False)
+ precon = group.linear_solver.precon = om.DirectSolver(assemble_jac=False)
+ p.setup()
# Conclude setup but don't run model.
p.final_setup()
@@ -193,13 +192,13 @@ def test_solve_linear_ksp_precon(self):
def test_solve_linear_ksp_precon_left(self):
"""Solve implicit system with PETScKrylov using a preconditioner."""
- group = TestImplicitGroup(lnSolverClass=PETScKrylov)
- precon = group.linear_solver.precon = DirectSolver(assemble_jac=False)
+ group = TestImplicitGroup(lnSolverClass=om.PETScKrylov)
+ precon = group.linear_solver.precon = om.DirectSolver(assemble_jac=False)
group.linear_solver.options['precon_side'] = 'left'
group.linear_solver.options['ksp_type'] = 'richardson'
- p = Problem(group)
- p.setup(check=False)
+ p = om.Problem(group)
+ p.setup()
p.set_solver_print(level=0)
# Conclude setup but don't run model.
@@ -226,11 +225,11 @@ def test_solve_linear_ksp_precon_left(self):
assert_rel_error(self, output, group.expected_solution, 3e-15)
# test the direct solver and make sure KSP correctly recurses for _linearize
- precon = group.linear_solver.precon = DirectSolver(assemble_jac=False)
+ precon = group.linear_solver.precon = om.DirectSolver(assemble_jac=False)
group.linear_solver.options['precon_side'] = 'left'
group.linear_solver.options['ksp_type'] = 'richardson'
- p.setup(check=False)
+ p.setup()
# Conclude setup but don't run model.
p.final_setup()
@@ -257,14 +256,14 @@ def test_solve_linear_ksp_precon_left(self):
def test_preconditioner_deprecation(self):
- group = TestImplicitGroup(lnSolverClass=PETScKrylov)
+ group = TestImplicitGroup(lnSolverClass=om.PETScKrylov)
msg = "The 'preconditioner' property provides backwards compatibility " \
"with OpenMDAO <= 1.x ; use 'precon' instead."
# check deprecation on setter & getter
with assert_warning(DeprecationWarning, msg):
- precon = group.linear_solver.preconditioner = LinearBlockGS()
+ precon = group.linear_solver.preconditioner = om.LinearBlockGS()
with assert_warning(DeprecationWarning, msg):
pre = group.linear_solver.preconditioner
@@ -272,16 +271,16 @@ def test_preconditioner_deprecation(self):
def test_solve_on_subsystem(self):
"""solve an implicit system with KSP attached anywhere but the root"""
- p = Problem()
+ p = om.Problem()
model = p.model
- dv = model.add_subsystem('des_vars', IndepVarComp())
+ dv = model.add_subsystem('des_vars', om.IndepVarComp())
# just need a dummy variable so the sizes don't match between root and g1
dv.add_output('dummy', val=1.0, shape=10)
- g1 = model.add_subsystem('g1', TestImplicitGroup(lnSolverClass=PETScKrylov))
+ g1 = model.add_subsystem('g1', TestImplicitGroup(lnSolverClass=om.PETScKrylov))
- p.setup(check=False)
+ p.setup()
p.set_solver_print(level=0)
@@ -315,14 +314,14 @@ def test_linear_solution_cache(self):
# Forward mode
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('px', IndepVarComp('x', 1.0), promotes=['x'])
+ model.add_subsystem('px', om.IndepVarComp('x', 1.0), promotes=['x'])
model.add_subsystem('d1', Comp4LinearCacheTest(), promotes=['x', 'y'])
- model.nonlinear_solver = NonlinearBlockGS()
- model.linear_solver = PETScKrylov()
+ model.nonlinear_solver = om.NonlinearBlockGS()
+ model.linear_solver = om.PETScKrylov()
model.add_design_var('x', cache_linear_solution=True)
model.add_objective('y', cache_linear_solution=True)
@@ -343,14 +342,14 @@ def test_linear_solution_cache(self):
# Reverse mode
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('px', IndepVarComp('x', 1.0), promotes=['x'])
+ model.add_subsystem('px', om.IndepVarComp('x', 1.0), promotes=['x'])
model.add_subsystem('d1', Comp4LinearCacheTest(), promotes=['x', 'y'])
- model.nonlinear_solver = NonlinearBlockGS()
- model.linear_solver = PETScKrylov()
+ model.nonlinear_solver = om.NonlinearBlockGS()
+ model.linear_solver = om.PETScKrylov()
model.add_design_var('x', cache_linear_solution=True)
model.add_objective('y', cache_linear_solution=True)
@@ -371,24 +370,24 @@ def test_linear_solution_cache(self):
def test_error_under_cs(self):
"""Verify that PETScKrylov abides by the 'maxiter' option."""
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('px', IndepVarComp('x', 1.0), promotes=['x'])
- model.add_subsystem('pz', IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
+ model.add_subsystem('px', om.IndepVarComp('x', 1.0), promotes=['x'])
+ model.add_subsystem('pz', om.IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
model.add_subsystem('d1', SellarDis1withDerivatives(), promotes=['x', 'z', 'y1', 'y2'])
model.add_subsystem('d2', SellarDis2withDerivatives(), promotes=['z', 'y1', 'y2'])
- model.add_subsystem('obj_cmp', ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
- z=np.array([0.0, 0.0]), x=0.0),
+ model.add_subsystem('obj_cmp', om.ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
+ z=np.array([0.0, 0.0]), x=0.0),
promotes=['obj', 'x', 'z', 'y1', 'y2'])
- model.add_subsystem('con_cmp1', ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
- model.add_subsystem('con_cmp2', ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
+ model.add_subsystem('con_cmp1', om.ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
+ model.add_subsystem('con_cmp2', om.ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
- model.nonlinear_solver = NewtonSolver()
- model.linear_solver = PETScKrylov()
+ model.nonlinear_solver = om.NewtonSolver()
+ model.linear_solver = om.PETScKrylov()
model.approx_totals(method='cs')
@@ -409,28 +408,28 @@ class TestPETScKrylovSolverFeature(unittest.TestCase):
def test_specify_solver(self):
import numpy as np
- from openmdao.api import Problem, Group, IndepVarComp, NonlinearBlockGS, PETScKrylov, ExecComp
+ import openmdao.api as om
from openmdao.test_suite.components.sellar import SellarDis1withDerivatives, SellarDis2withDerivatives
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('px', IndepVarComp('x', 1.0), promotes=['x'])
- model.add_subsystem('pz', IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
+ model.add_subsystem('px', om.IndepVarComp('x', 1.0), promotes=['x'])
+ model.add_subsystem('pz', om.IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
model.add_subsystem('d1', SellarDis1withDerivatives(), promotes=['x', 'z', 'y1', 'y2'])
model.add_subsystem('d2', SellarDis2withDerivatives(), promotes=['z', 'y1', 'y2'])
- model.add_subsystem('obj_cmp', ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
- z=np.array([0.0, 0.0]), x=0.0),
+ model.add_subsystem('obj_cmp', om.ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
+ z=np.array([0.0, 0.0]), x=0.0),
promotes=['obj', 'x', 'z', 'y1', 'y2'])
- model.add_subsystem('con_cmp1', ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
- model.add_subsystem('con_cmp2', ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
+ model.add_subsystem('con_cmp1', om.ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
+ model.add_subsystem('con_cmp2', om.ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
- model.nonlinear_solver = NonlinearBlockGS()
+ model.nonlinear_solver = om.NonlinearBlockGS()
- model.linear_solver = PETScKrylov()
+ model.linear_solver = om.PETScKrylov()
prob.setup()
prob.run_model()
@@ -445,30 +444,29 @@ def test_specify_solver(self):
def test_specify_ksp_type(self):
import numpy as np
- from openmdao.api import Problem, Group, IndepVarComp, NonlinearBlockGS, PETScKrylov, \
- ExecComp
+ import openmdao.api as om
from openmdao.test_suite.components.sellar import SellarDis1withDerivatives, \
SellarDis2withDerivatives
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('px', IndepVarComp('x', 1.0), promotes=['x'])
- model.add_subsystem('pz', IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
+ model.add_subsystem('px', om.IndepVarComp('x', 1.0), promotes=['x'])
+ model.add_subsystem('pz', om.IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
model.add_subsystem('d1', SellarDis1withDerivatives(), promotes=['x', 'z', 'y1', 'y2'])
model.add_subsystem('d2', SellarDis2withDerivatives(), promotes=['z', 'y1', 'y2'])
- model.add_subsystem('obj_cmp', ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
- z=np.array([0.0, 0.0]), x=0.0),
+ model.add_subsystem('obj_cmp', om.ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
+ z=np.array([0.0, 0.0]), x=0.0),
promotes=['obj', 'x', 'z', 'y1', 'y2'])
- model.add_subsystem('con_cmp1', ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
- model.add_subsystem('con_cmp2', ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
+ model.add_subsystem('con_cmp1', om.ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
+ model.add_subsystem('con_cmp2', om.ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
- model.nonlinear_solver = NonlinearBlockGS()
+ model.nonlinear_solver = om.NonlinearBlockGS()
- model.linear_solver = PETScKrylov()
+ model.linear_solver = om.PETScKrylov()
model.linear_solver.options['ksp_type'] = 'gmres'
prob.setup()
@@ -484,28 +482,28 @@ def test_specify_ksp_type(self):
def test_feature_maxiter(self):
import numpy as np
- from openmdao.api import Problem, Group, IndepVarComp, NonlinearBlockGS, PETScKrylov, ExecComp
+ import openmdao.api as om
from openmdao.test_suite.components.sellar import SellarDis1withDerivatives, SellarDis2withDerivatives
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('px', IndepVarComp('x', 1.0), promotes=['x'])
- model.add_subsystem('pz', IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
+ model.add_subsystem('px', om.IndepVarComp('x', 1.0), promotes=['x'])
+ model.add_subsystem('pz', om.IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
model.add_subsystem('d1', SellarDis1withDerivatives(), promotes=['x', 'z', 'y1', 'y2'])
model.add_subsystem('d2', SellarDis2withDerivatives(), promotes=['z', 'y1', 'y2'])
- model.add_subsystem('obj_cmp', ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
- z=np.array([0.0, 0.0]), x=0.0),
+ model.add_subsystem('obj_cmp', om.ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
+ z=np.array([0.0, 0.0]), x=0.0),
promotes=['obj', 'x', 'z', 'y1', 'y2'])
- model.add_subsystem('con_cmp1', ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
- model.add_subsystem('con_cmp2', ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
+ model.add_subsystem('con_cmp1', om.ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
+ model.add_subsystem('con_cmp2', om.ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
- model.nonlinear_solver = NonlinearBlockGS()
+ model.nonlinear_solver = om.NonlinearBlockGS()
- model.linear_solver = PETScKrylov()
+ model.linear_solver = om.PETScKrylov()
model.linear_solver.options['maxiter'] = 3
prob.setup()
@@ -521,28 +519,28 @@ def test_feature_maxiter(self):
def test_feature_atol(self):
import numpy as np
- from openmdao.api import Problem, Group, IndepVarComp, NonlinearBlockGS, PETScKrylov, ExecComp
+ import openmdao.api as om
from openmdao.test_suite.components.sellar import SellarDis1withDerivatives, SellarDis2withDerivatives
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('px', IndepVarComp('x', 1.0), promotes=['x'])
- model.add_subsystem('pz', IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
+ model.add_subsystem('px', om.IndepVarComp('x', 1.0), promotes=['x'])
+ model.add_subsystem('pz', om.IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
model.add_subsystem('d1', SellarDis1withDerivatives(), promotes=['x', 'z', 'y1', 'y2'])
model.add_subsystem('d2', SellarDis2withDerivatives(), promotes=['z', 'y1', 'y2'])
- model.add_subsystem('obj_cmp', ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
- z=np.array([0.0, 0.0]), x=0.0),
+ model.add_subsystem('obj_cmp', om.ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
+ z=np.array([0.0, 0.0]), x=0.0),
promotes=['obj', 'x', 'z', 'y1', 'y2'])
- model.add_subsystem('con_cmp1', ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
- model.add_subsystem('con_cmp2', ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
+ model.add_subsystem('con_cmp1', om.ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
+ model.add_subsystem('con_cmp2', om.ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
- model.nonlinear_solver = NonlinearBlockGS()
+ model.nonlinear_solver = om.NonlinearBlockGS()
- model.linear_solver = PETScKrylov()
+ model.linear_solver = om.PETScKrylov()
model.linear_solver.options['atol'] = 1.0e-20
prob.setup()
@@ -558,28 +556,28 @@ def test_feature_atol(self):
def test_feature_rtol(self):
import numpy as np
- from openmdao.api import Problem, Group, IndepVarComp, NonlinearBlockGS, PETScKrylov, ExecComp
+ import openmdao.api as om
from openmdao.test_suite.components.sellar import SellarDis1withDerivatives, SellarDis2withDerivatives
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('px', IndepVarComp('x', 1.0), promotes=['x'])
- model.add_subsystem('pz', IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
+ model.add_subsystem('px', om.IndepVarComp('x', 1.0), promotes=['x'])
+ model.add_subsystem('pz', om.IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
model.add_subsystem('d1', SellarDis1withDerivatives(), promotes=['x', 'z', 'y1', 'y2'])
model.add_subsystem('d2', SellarDis2withDerivatives(), promotes=['z', 'y1', 'y2'])
- model.add_subsystem('obj_cmp', ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
- z=np.array([0.0, 0.0]), x=0.0),
+ model.add_subsystem('obj_cmp', om.ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
+ z=np.array([0.0, 0.0]), x=0.0),
promotes=['obj', 'x', 'z', 'y1', 'y2'])
- model.add_subsystem('con_cmp1', ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
- model.add_subsystem('con_cmp2', ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
+ model.add_subsystem('con_cmp1', om.ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
+ model.add_subsystem('con_cmp2', om.ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
- model.nonlinear_solver = NonlinearBlockGS()
+ model.nonlinear_solver = om.NonlinearBlockGS()
- model.linear_solver = PETScKrylov()
+ model.linear_solver = om.PETScKrylov()
model.linear_solver.options['rtol'] = 1.0e-20
prob.setup()
@@ -595,31 +593,30 @@ def test_feature_rtol(self):
def test_specify_precon(self):
import numpy as np
- from openmdao.api import Problem, Group, IndepVarComp, LinearBlockGS, PETScKrylov, \
- NewtonSolver, ExecComp
+ import openmdao.api as om
from openmdao.test_suite.components.sellar import SellarDis1withDerivatives, \
SellarDis2withDerivatives
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('px', IndepVarComp('x', 1.0), promotes=['x'])
- model.add_subsystem('pz', IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
+ model.add_subsystem('px', om.IndepVarComp('x', 1.0), promotes=['x'])
+ model.add_subsystem('pz', om.IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
model.add_subsystem('d1', SellarDis1withDerivatives(), promotes=['x', 'z', 'y1', 'y2'])
model.add_subsystem('d2', SellarDis2withDerivatives(), promotes=['z', 'y1', 'y2'])
- model.add_subsystem('obj_cmp', ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
- z=np.array([0.0, 0.0]), x=0.0),
+ model.add_subsystem('obj_cmp', om.ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
+ z=np.array([0.0, 0.0]), x=0.0),
promotes=['obj', 'x', 'z', 'y1', 'y2'])
- model.add_subsystem('con_cmp1', ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
- model.add_subsystem('con_cmp2', ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
+ model.add_subsystem('con_cmp1', om.ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
+ model.add_subsystem('con_cmp2', om.ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
- model.nonlinear_solver = NewtonSolver()
- model.linear_solver = PETScKrylov()
+ model.nonlinear_solver = om.NewtonSolver()
+ model.linear_solver = om.PETScKrylov()
- model.linear_solver.precon = LinearBlockGS()
+ model.linear_solver.precon = om.LinearBlockGS()
model.linear_solver.precon.options['maxiter'] = 2
prob.setup()
@@ -631,31 +628,30 @@ def test_specify_precon(self):
def test_specify_precon_left(self):
import numpy as np
- from openmdao.api import Problem, Group, IndepVarComp, DirectSolver, PETScKrylov, \
- NewtonSolver, ExecComp
+ import openmdao.api as om
from openmdao.test_suite.components.sellar import SellarDis1withDerivatives, \
SellarDis2withDerivatives
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('px', IndepVarComp('x', 1.0), promotes=['x'])
- model.add_subsystem('pz', IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
+ model.add_subsystem('px', om.IndepVarComp('x', 1.0), promotes=['x'])
+ model.add_subsystem('pz', om.IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
model.add_subsystem('d1', SellarDis1withDerivatives(), promotes=['x', 'z', 'y1', 'y2'])
model.add_subsystem('d2', SellarDis2withDerivatives(), promotes=['z', 'y1', 'y2'])
- model.add_subsystem('obj_cmp', ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
- z=np.array([0.0, 0.0]), x=0.0),
+ model.add_subsystem('obj_cmp', om.ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
+ z=np.array([0.0, 0.0]), x=0.0),
promotes=['obj', 'x', 'z', 'y1', 'y2'])
- model.add_subsystem('con_cmp1', ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
- model.add_subsystem('con_cmp2', ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
+ model.add_subsystem('con_cmp1', om.ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
+ model.add_subsystem('con_cmp2', om.ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
- model.nonlinear_solver = NewtonSolver()
- model.linear_solver = PETScKrylov()
+ model.nonlinear_solver = om.NewtonSolver()
+ model.linear_solver = om.PETScKrylov()
- model.linear_solver.precon = DirectSolver()
+ model.linear_solver.precon = om.DirectSolver()
model.linear_solver.options['precon_side'] = 'left'
model.linear_solver.options['ksp_type'] = 'richardson'
diff --git a/openmdao/solvers/linear/tests/test_scipy_iter_solver.py b/openmdao/solvers/linear/tests/test_scipy_iter_solver.py
index 68cb590048..689cc7fd6b 100644
--- a/openmdao/solvers/linear/tests/test_scipy_iter_solver.py
+++ b/openmdao/solvers/linear/tests/test_scipy_iter_solver.py
@@ -7,10 +7,7 @@
import numpy as np
-from openmdao.api import Group, IndepVarComp, Problem, ExecComp, NonlinearBlockGS, BoundsEnforceLS
-from openmdao.solvers.linear.linear_block_gs import LinearBlockGS
-from openmdao.solvers.linear.scipy_iter_solver import ScipyKrylov, ScipyIterativeSolver
-from openmdao.solvers.nonlinear.newton import NewtonSolver
+import openmdao.api as om
from openmdao.solvers.linear.tests.linear_test_base import LinearSolverTests
from openmdao.test_suite.components.expl_comp_simple import TestExplCompSimpleDense
from openmdao.test_suite.components.misc_components import Comp4LinearCacheTest
@@ -22,7 +19,7 @@
# use this to fake out the TestImplicitGroup so it'll use the solver we want.
def krylov_factory(solver):
def f(junk=None):
- return ScipyKrylov(solver=solver)
+ return om.ScipyKrylov(solver=solver)
return f
@@ -34,7 +31,7 @@ class TestScipyKrylov(LinearSolverTests.LinearSolverTestCase):
def test_options(self):
"""Verify that the SciPy solver specific options are declared."""
- group = Group()
+ group = om.Group()
group.linear_solver = self.linear_solver_class()
self.assertEqual(group.linear_solver.options['solver'], self.linear_solver_name)
@@ -47,10 +44,10 @@ def test_solve_linear_scipy(self):
msg = "ScipyIterativeSolver is deprecated. Use ScipyKrylov instead."
with assert_warning(DeprecationWarning, msg):
- group = TestImplicitGroup(lnSolverClass=lambda : ScipyIterativeSolver(solver=self.linear_solver_name))
+ group = TestImplicitGroup(lnSolverClass=lambda : om.ScipyIterativeSolver(solver=self.linear_solver_name))
- p = Problem(group)
- p.setup(check=False)
+ p = om.Problem(group)
+ p.setup()
p.set_solver_print(level=0)
# Conclude setup but don't run model.
@@ -78,8 +75,8 @@ def test_solve_linear_scipy_maxiter(self):
group = TestImplicitGroup(lnSolverClass=self.linear_solver_class)
group.linear_solver.options['maxiter'] = 2
- p = Problem(group)
- p.setup(check=False)
+ p = om.Problem(group)
+ p.setup()
p.set_solver_print(level=0)
# Conclude setup but don't run model.
@@ -104,16 +101,16 @@ def test_solve_linear_scipy_maxiter(self):
def test_solve_on_subsystem(self):
"""solve an implicit system with GMRES attached to a subsystem"""
- p = Problem()
- model = p.model = Group()
- dv = model.add_subsystem('des_vars', IndepVarComp())
+ p = om.Problem()
+ model = p.model
+ dv = model.add_subsystem('des_vars', om.IndepVarComp())
# just need a dummy variable so the sizes don't match between root and g1
dv.add_output('dummy', val=1.0, shape=10)
grp = TestImplicitGroup(lnSolverClass=self.linear_solver_class)
g1 = model.add_subsystem('g1', grp)
- p.setup(check=False)
+ p.setup()
p.set_solver_print(level=0)
@@ -150,7 +147,7 @@ def test_preconditioner_deprecation(self):
# check deprecation on setter & getter
with assert_warning(DeprecationWarning, msg):
- group.linear_solver.preconditioner = LinearBlockGS()
+ group.linear_solver.preconditioner = om.LinearBlockGS()
with assert_warning(DeprecationWarning, msg):
group.linear_solver.preconditioner
@@ -162,14 +159,14 @@ def test_linear_solution_cache(self):
# Forward mode
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('px', IndepVarComp('x', 1.0), promotes=['x'])
+ model.add_subsystem('px', om.IndepVarComp('x', 1.0), promotes=['x'])
model.add_subsystem('d1', Comp4LinearCacheTest(), promotes=['x', 'y'])
- model.nonlinear_solver = NonlinearBlockGS()
- model.linear_solver = ScipyKrylov()
+ model.nonlinear_solver = om.NonlinearBlockGS()
+ model.linear_solver = om.ScipyKrylov()
model.add_design_var('x', cache_linear_solution=True)
model.add_objective('y', cache_linear_solution=True)
@@ -188,14 +185,14 @@ def test_linear_solution_cache(self):
# Reverse mode
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('px', IndepVarComp('x', 1.0), promotes=['x'])
+ model.add_subsystem('px', om.IndepVarComp('x', 1.0), promotes=['x'])
model.add_subsystem('d1', Comp4LinearCacheTest(), promotes=['x', 'y'])
- model.nonlinear_solver = NonlinearBlockGS()
- model.linear_solver = ScipyKrylov()
+ model.nonlinear_solver = om.NonlinearBlockGS()
+ model.linear_solver = om.ScipyKrylov()
model.add_design_var('x', cache_linear_solution=True)
model.add_objective('y', cache_linear_solution=True)
@@ -218,18 +215,18 @@ class TestScipyKrylovFeature(unittest.TestCase):
def test_feature_simple(self):
"""Tests feature for adding a Scipy GMRES solver and calculating the
derivatives."""
- from openmdao.api import Problem, Group, IndepVarComp, ScipyKrylov
+ import openmdao.api as om
from openmdao.test_suite.components.expl_comp_simple import TestExplCompSimpleDense
# Tests derivatives on a simple comp that defines compute_jacvec.
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('x_param', IndepVarComp('length', 3.0),
+ model.add_subsystem('x_param', om.IndepVarComp('length', 3.0),
promotes=['length'])
model.add_subsystem('mycomp', TestExplCompSimpleDense(),
promotes=['length', 'width', 'area'])
- model.linear_solver = ScipyKrylov()
+ model.linear_solver = om.ScipyKrylov()
prob.set_solver_print(level=0)
prob.setup(check=False, mode='fwd')
@@ -245,30 +242,29 @@ def test_feature_simple(self):
def test_specify_solver(self):
import numpy as np
- from openmdao.api import Problem, Group, IndepVarComp, ScipyKrylov, \
- NonlinearBlockGS, ExecComp
+ import openmdao.api as om
from openmdao.test_suite.components.sellar import SellarDis1withDerivatives, \
SellarDis2withDerivatives
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('px', IndepVarComp('x', 1.0), promotes=['x'])
- model.add_subsystem('pz', IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
+ model.add_subsystem('px', om.IndepVarComp('x', 1.0), promotes=['x'])
+ model.add_subsystem('pz', om.IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
model.add_subsystem('d1', SellarDis1withDerivatives(), promotes=['x', 'z', 'y1', 'y2'])
model.add_subsystem('d2', SellarDis2withDerivatives(), promotes=['z', 'y1', 'y2'])
- model.add_subsystem('obj_cmp', ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
- z=np.array([0.0, 0.0]), x=0.0),
+ model.add_subsystem('obj_cmp', om.ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
+ z=np.array([0.0, 0.0]), x=0.0),
promotes=['obj', 'x', 'z', 'y1', 'y2'])
- model.add_subsystem('con_cmp1', ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
- model.add_subsystem('con_cmp2', ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
+ model.add_subsystem('con_cmp1', om.ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
+ model.add_subsystem('con_cmp2', om.ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
- model.nonlinear_solver = NonlinearBlockGS()
+ model.nonlinear_solver = om.NonlinearBlockGS()
- model.linear_solver = ScipyKrylov()
+ model.linear_solver = om.ScipyKrylov()
prob.setup()
prob.run_model()
@@ -283,28 +279,28 @@ def test_specify_solver(self):
def test_feature_maxiter(self):
import numpy as np
- from openmdao.api import Problem, Group, IndepVarComp, ScipyKrylov, NonlinearBlockGS, ExecComp
+ import openmdao.api as om
from openmdao.test_suite.components.sellar import SellarDis1withDerivatives, SellarDis2withDerivatives
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('px', IndepVarComp('x', 1.0), promotes=['x'])
- model.add_subsystem('pz', IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
+ model.add_subsystem('px', om.IndepVarComp('x', 1.0), promotes=['x'])
+ model.add_subsystem('pz', om.IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
model.add_subsystem('d1', SellarDis1withDerivatives(), promotes=['x', 'z', 'y1', 'y2'])
model.add_subsystem('d2', SellarDis2withDerivatives(), promotes=['z', 'y1', 'y2'])
- model.add_subsystem('obj_cmp', ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
- z=np.array([0.0, 0.0]), x=0.0),
+ model.add_subsystem('obj_cmp', om.ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
+ z=np.array([0.0, 0.0]), x=0.0),
promotes=['obj', 'x', 'z', 'y1', 'y2'])
- model.add_subsystem('con_cmp1', ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
- model.add_subsystem('con_cmp2', ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
+ model.add_subsystem('con_cmp1', om.ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
+ model.add_subsystem('con_cmp2', om.ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
- model.nonlinear_solver = NonlinearBlockGS()
+ model.nonlinear_solver = om.NonlinearBlockGS()
- model.linear_solver = ScipyKrylov()
+ model.linear_solver = om.ScipyKrylov()
model.linear_solver.options['maxiter'] = 3
prob.setup()
@@ -320,28 +316,28 @@ def test_feature_maxiter(self):
def test_feature_atol(self):
import numpy as np
- from openmdao.api import Problem, Group, IndepVarComp, ScipyKrylov, NonlinearBlockGS, ExecComp
+ import openmdao.api as om
from openmdao.test_suite.components.sellar import SellarDis1withDerivatives, SellarDis2withDerivatives
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('px', IndepVarComp('x', 1.0), promotes=['x'])
- model.add_subsystem('pz', IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
+ model.add_subsystem('px', om.IndepVarComp('x', 1.0), promotes=['x'])
+ model.add_subsystem('pz', om.IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
model.add_subsystem('d1', SellarDis1withDerivatives(), promotes=['x', 'z', 'y1', 'y2'])
model.add_subsystem('d2', SellarDis2withDerivatives(), promotes=['z', 'y1', 'y2'])
- model.add_subsystem('obj_cmp', ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
- z=np.array([0.0, 0.0]), x=0.0),
+ model.add_subsystem('obj_cmp', om.ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
+ z=np.array([0.0, 0.0]), x=0.0),
promotes=['obj', 'x', 'z', 'y1', 'y2'])
- model.add_subsystem('con_cmp1', ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
- model.add_subsystem('con_cmp2', ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
+ model.add_subsystem('con_cmp1', om.ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
+ model.add_subsystem('con_cmp2', om.ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
- model.nonlinear_solver = NonlinearBlockGS()
+ model.nonlinear_solver = om.NonlinearBlockGS()
- model.linear_solver = ScipyKrylov()
+ model.linear_solver = om.ScipyKrylov()
model.linear_solver.options['atol'] = 1.0e-20
prob.setup()
@@ -357,35 +353,33 @@ def test_feature_atol(self):
def test_specify_precon(self):
import numpy as np
- from openmdao.api import Problem, Group, ScipyKrylov, NewtonSolver, LinearBlockGS, \
- DirectSolver, ExecComp, PETScKrylov
-
+ import openmdao.api as om
from openmdao.test_suite.components.quad_implicit import QuadraticComp
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- sub1 = model.add_subsystem('sub1', Group())
+ sub1 = model.add_subsystem('sub1', om.Group())
sub1.add_subsystem('q1', QuadraticComp())
- sub1.add_subsystem('z1', ExecComp('y = -6.0 + .01 * x'))
- sub2 = model.add_subsystem('sub2', Group())
+ sub1.add_subsystem('z1', om.ExecComp('y = -6.0 + .01 * x'))
+ sub2 = model.add_subsystem('sub2', om.Group())
sub2.add_subsystem('q2', QuadraticComp())
- sub2.add_subsystem('z2', ExecComp('y = -6.0 + .01 * x'))
+ sub2.add_subsystem('z2', om.ExecComp('y = -6.0 + .01 * x'))
model.connect('sub1.q1.x', 'sub1.z1.x')
model.connect('sub1.z1.y', 'sub2.q2.c')
model.connect('sub2.q2.x', 'sub2.z2.x')
model.connect('sub2.z2.y', 'sub1.q1.c')
- model.nonlinear_solver = NewtonSolver()
- model.linear_solver = ScipyKrylov()
+ model.nonlinear_solver = om.NewtonSolver()
+ model.linear_solver = om.ScipyKrylov()
prob.setup()
- model.sub1.linear_solver = DirectSolver()
- model.sub2.linear_solver = DirectSolver()
+ model.sub1.linear_solver = om.DirectSolver()
+ model.sub2.linear_solver = om.DirectSolver()
- model.linear_solver.precon = LinearBlockGS()
+ model.linear_solver.precon = om.LinearBlockGS()
prob.set_solver_print(level=2)
prob.run_model()
diff --git a/openmdao/solvers/linear/tests/test_user_defined.py b/openmdao/solvers/linear/tests/test_user_defined.py
index db0a2542bd..8126b9727f 100644
--- a/openmdao/solvers/linear/tests/test_user_defined.py
+++ b/openmdao/solvers/linear/tests/test_user_defined.py
@@ -6,10 +6,8 @@
import numpy as np
-from openmdao.api import Group, Problem, ImplicitComponent, PETScKrylov, LinearRunOnce, \
- IndepVarComp
+import openmdao.api as om
from openmdao.utils.assert_utils import assert_rel_error
-from openmdao.solvers.linear.user_defined import LinearUserDefined
from openmdao.utils.array_utils import evenly_distrib_idxs
try:
@@ -18,7 +16,7 @@
PETScVector = None
-class DistribStateImplicit(ImplicitComponent):
+class DistribStateImplicit(om.ImplicitComponent):
def setup(self):
@@ -33,8 +31,8 @@ def setup(self):
self.add_output('out_var', shape=1)
self.local_size = sizes[rank]
- self.linear_solver = PETScKrylov()
- self.linear_solver.precon = LinearUserDefined(self.mysolve)
+ self.linear_solver = om.PETScKrylov()
+ self.linear_solver.precon = om.LinearUserDefined(self.mysolve)
def solve_nonlinear(self, i, o):
o['states'] = i['a']
@@ -121,16 +119,16 @@ def mysolve(self, d_outputs, d_residuals, mode):
class TestUserDefinedSolver(unittest.TestCase):
def test_method(self):
- p = Problem()
+ p = om.Problem()
- p.model.add_subsystem('des_vars', IndepVarComp('a', val=10., units='m'), promotes=['*'])
+ p.model.add_subsystem('des_vars', om.IndepVarComp('a', val=10., units='m'), promotes=['*'])
p.model.add_subsystem('icomp', DistribStateImplicit(), promotes=['*'])
model = p.model
- model.linear_solver = PETScKrylov()
- model.linear_solver.precon = LinearRunOnce()
+ model.linear_solver = om.PETScKrylov()
+ model.linear_solver.precon = om.LinearRunOnce()
p.setup(mode='rev', check=False)
p.run_model()
@@ -147,7 +145,7 @@ def custom_method(d_outputs, d_residuals, mode):
raise ValueError('This value should be unscaled.')
- class ScaledComp(ImplicitComponent):
+ class ScaledComp(om.ImplicitComponent):
def setup(self):
@@ -157,12 +155,12 @@ def setup(self):
self.add_output('out_var', val=20.0, ref=12.0)
- p = Problem()
- p.model.add_subsystem('des_vars', IndepVarComp('a', val=10., units='m'), promotes=['*'])
+ p = om.Problem()
+ p.model.add_subsystem('des_vars', om.IndepVarComp('a', val=10., units='m'), promotes=['*'])
p.model.add_subsystem('icomp', ScaledComp(), promotes=['*'])
model = p.model
- model.linear_solver = LinearUserDefined(custom_method)
+ model.linear_solver = om.LinearUserDefined(custom_method)
p.setup(mode='rev', check=False)
p.run_model()
@@ -170,20 +168,20 @@ def setup(self):
def test_method_default(self):
# Uses `solve_linear` by default
- p = Problem()
+ p = om.Problem()
- p.model.add_subsystem('des_vars', IndepVarComp('a', val=10., units='m'), promotes=['*'])
+ p.model.add_subsystem('des_vars', om.IndepVarComp('a', val=10., units='m'), promotes=['*'])
p.model.add_subsystem('icomp', DistribStateImplicit(), promotes=['*'])
model = p.model
- model.linear_solver = PETScKrylov()
- model.linear_solver.precon = LinearRunOnce()
+ model.linear_solver = om.PETScKrylov()
+ model.linear_solver.precon = om.LinearRunOnce()
p.setup(mode='rev', check=False)
- model.icomp.linear_solver.precon = LinearUserDefined()
+ model.icomp.linear_solver.precon = om.LinearUserDefined()
p.run_model()
jac = p.compute_totals(of=['out_var'], wrt=['a'], return_format='dict')
@@ -193,10 +191,10 @@ def test_method_default(self):
def test_feature(self):
import numpy as np
- from openmdao.api import Problem, ImplicitComponent, IndepVarComp, LinearRunOnce, PETScKrylov, PETScVector, LinearUserDefined
+ import openmdao.api as om
from openmdao.utils.array_utils import evenly_distrib_idxs
- class CustomSolveImplicit(ImplicitComponent):
+ class CustomSolveImplicit(om.ImplicitComponent):
def setup(self):
@@ -211,8 +209,8 @@ def setup(self):
self.add_output('out_var', shape=1)
self.local_size = sizes[rank]
- self.linear_solver = PETScKrylov()
- self.linear_solver.precon = LinearUserDefined(solve_function=self.mysolve)
+ self.linear_solver = om.PETScKrylov()
+ self.linear_solver.precon = om.LinearUserDefined(solve_function=self.mysolve)
def solve_nonlinear(self, i, o):
o['states'] = i['a']
@@ -289,16 +287,16 @@ def mysolve(self, d_outputs, d_residuals, mode):
elif mode == 'rev':
d_residuals.set_vec(d_outputs)
- prob = Problem()
+ prob = om.Problem()
- prob.model.add_subsystem('des_vars', IndepVarComp('a', val=10., units='m'), promotes=['*'])
+ prob.model.add_subsystem('des_vars', om.IndepVarComp('a', val=10., units='m'), promotes=['*'])
prob.model.add_subsystem('icomp', CustomSolveImplicit(), promotes=['*'])
model = prob.model
- model.linear_solver = PETScKrylov()
- model.linear_solver.precon = LinearRunOnce()
+ model.linear_solver = om.PETScKrylov()
+ model.linear_solver.precon = om.LinearRunOnce()
prob.setup(mode='rev', check=False)
prob.run_model()
diff --git a/openmdao/solvers/linesearch/tests/test_backtracking.py b/openmdao/solvers/linesearch/tests/test_backtracking.py
index f2071f44cd..5251195d0f 100644
--- a/openmdao/solvers/linesearch/tests/test_backtracking.py
+++ b/openmdao/solvers/linesearch/tests/test_backtracking.py
@@ -9,31 +9,26 @@
import numpy as np
-from openmdao.api import Problem, Group, IndepVarComp, DirectSolver, AnalysisError, \
- ExplicitComponent, ImplicitComponent
-from openmdao.utils.assert_utils import assert_rel_error
-from openmdao.solvers.linesearch.backtracking import ArmijoGoldsteinLS, BoundsEnforceLS
-from openmdao.solvers.nonlinear.newton import NewtonSolver
-from openmdao.solvers.linear.scipy_iter_solver import ScipyKrylov
+import openmdao.api as om
from openmdao.test_suite.components.double_sellar import DoubleSellar
from openmdao.test_suite.components.implicit_newton_linesearch \
import ImplCompTwoStates, ImplCompTwoStatesArrays
+from openmdao.utils.assert_utils import assert_rel_error
class TestArmejoGoldsteinBounds(unittest.TestCase):
def setUp(self):
- top = Problem()
- top.model = Group()
- top.model.add_subsystem('px', IndepVarComp('x', 1.0))
+ top = om.Problem()
+ top.model.add_subsystem('px', om.IndepVarComp('x', 1.0))
top.model.add_subsystem('comp', ImplCompTwoStates())
top.model.connect('px.x', 'comp.x')
- top.model.nonlinear_solver = NewtonSolver()
+ top.model.nonlinear_solver = om.NewtonSolver()
top.model.nonlinear_solver.options['maxiter'] = 10
- top.model.linear_solver = ScipyKrylov()
+ top.model.linear_solver = om.ScipyKrylov()
- top.setup(check=False)
+ top.setup()
self.top = top
@@ -55,12 +50,12 @@ def test_nolinesearch(self):
def test_linesearch_bounds_vector(self):
top = self.top
- ls = top.model.nonlinear_solver.linesearch = ArmijoGoldsteinLS(bound_enforcement='vector')
+ ls = top.model.nonlinear_solver.linesearch = om.ArmijoGoldsteinLS(bound_enforcement='vector')
ls.options['maxiter'] = 10
ls.options['alpha'] = 1.0
# Setup again because we assigned a new linesearch
- top.setup(check=False)
+ top.setup()
# Test lower bound: should go to the lower bound and stall
top['px.x'] = 2.0
@@ -79,12 +74,12 @@ def test_linesearch_bounds_vector(self):
def test_linesearch_bounds_wall(self):
top = self.top
- ls = top.model.nonlinear_solver.linesearch = ArmijoGoldsteinLS(bound_enforcement='wall')
+ ls = top.model.nonlinear_solver.linesearch = om.ArmijoGoldsteinLS(bound_enforcement='wall')
ls.options['maxiter'] = 10
ls.options['alpha'] = 10.0
# Setup again because we assigned a new linesearch
- top.setup(check=False)
+ top.setup()
# Test lower bound: should go to the lower bound and stall
top['px.x'] = 2.0
@@ -103,12 +98,12 @@ def test_linesearch_bounds_wall(self):
def test_linesearch_bounds_scalar(self):
top = self.top
- ls = top.model.nonlinear_solver.linesearch = ArmijoGoldsteinLS(bound_enforcement='scalar')
+ ls = top.model.nonlinear_solver.linesearch = om.ArmijoGoldsteinLS(bound_enforcement='scalar')
ls.options['maxiter'] = 10
ls.options['alpha'] = 10.0
# Setup again because we assigned a new linesearch
- top.setup(check=False)
+ top.setup()
# Test lower bound: should stop just short of the lower bound
top['px.x'] = 2.0
@@ -125,7 +120,7 @@ def test_linesearch_bounds_scalar(self):
self.assertTrue(2.4 <= top['comp.z'] <= 2.5)
-class ParaboloidAE(ExplicitComponent):
+class ParaboloidAE(om.ExplicitComponent):
""" Evaluates the equation f(x,y) = (x-3)^2 + xy + (y+4)^2 - 3
This version raises an analysis error if x < 2.0
The AE in ParaboloidAE stands for AnalysisError."""
@@ -146,7 +141,7 @@ def compute(self, inputs, outputs):
y = inputs['y']
if x < 1.75:
- raise AnalysisError('Try Again.')
+ raise om.AnalysisError('Try Again.')
outputs['f_xy'] = (x-3.0)**2 + x*y + (y+4.0)**2 - 3.0
@@ -162,19 +157,18 @@ def compute_partials(self, inputs, partials):
class TestAnalysisErrorExplicit(unittest.TestCase):
def setUp(self):
- top = Problem()
- top.model = Group()
- top.model.add_subsystem('px', IndepVarComp('x', 1.0))
+ top = om.Problem()
+ top.model.add_subsystem('px', om.IndepVarComp('x', 1.0))
top.model.add_subsystem('comp', ImplCompTwoStates())
top.model.add_subsystem('par', ParaboloidAE())
top.model.connect('px.x', 'comp.x')
top.model.connect('comp.z', 'par.x')
- top.model.nonlinear_solver = NewtonSolver()
+ top.model.nonlinear_solver = om.NewtonSolver()
top.model.nonlinear_solver.options['maxiter'] = 1
- top.model.linear_solver = ScipyKrylov()
+ top.model.linear_solver = om.ScipyKrylov()
- ls = top.model.nonlinear_solver.linesearch = ArmijoGoldsteinLS(bound_enforcement='vector')
+ ls = top.model.nonlinear_solver.linesearch = om.ArmijoGoldsteinLS(bound_enforcement='vector')
ls.options['maxiter'] = 10
ls.options['alpha'] = 1.0
top.set_solver_print(level=0)
@@ -185,7 +179,7 @@ def setUp(self):
def test_retry(self):
# Test the behavior with the switch turned on.
top = self.top
- top.setup(check=False)
+ top.setup()
self.ls.options['retry_on_analysis_error'] = True
# Test lower bound: should go as far as it can without going past 1.75 and triggering an
@@ -201,19 +195,19 @@ def test_no_retry(self):
self.ls.options['retry_on_analysis_error'] = False
top = self.top
- top.setup(check=False)
+ top.setup()
top['px.x'] = 2.0
top['comp.y'] = 0.0
top['comp.z'] = 2.1
- with self.assertRaises(AnalysisError) as context:
+ with self.assertRaises(om.AnalysisError) as context:
top.run_model()
self.assertEqual(str(context.exception), 'Try Again.')
-class ImplCompTwoStatesAE(ImplicitComponent):
+class ImplCompTwoStatesAE(om.ImplicitComponent):
def setup(self):
self.add_input('x', 0.5)
@@ -241,7 +235,7 @@ def apply_nonlinear(self, inputs, outputs, residuals):
self.counter += 1
if self.counter > 5 and self.counter < 11:
- raise AnalysisError('catch me')
+ raise om.AnalysisError('catch me')
def linearize(self, inputs, outputs, jac):
"""
@@ -268,31 +262,30 @@ class TestAnalysisErrorImplicit(unittest.TestCase):
def test_deep_analysis_error_iprint(self):
- top = Problem()
- top.model = Group()
- top.model.add_subsystem('px', IndepVarComp('x', 7.0))
+ top = om.Problem()
+ top.model.add_subsystem('px', om.IndepVarComp('x', 7.0))
- sub = top.model.add_subsystem('sub', Group())
+ sub = top.model.add_subsystem('sub', om.Group())
sub.add_subsystem('comp', ImplCompTwoStatesAE())
top.model.connect('px.x', 'sub.comp.x')
- top.model.nonlinear_solver = NewtonSolver()
+ top.model.nonlinear_solver = om.NewtonSolver()
top.model.nonlinear_solver.options['maxiter'] = 2
top.model.nonlinear_solver.options['solve_subsystems'] = True
- top.model.linear_solver = ScipyKrylov()
+ top.model.linear_solver = om.ScipyKrylov()
- sub.nonlinear_solver = NewtonSolver()
+ sub.nonlinear_solver = om.NewtonSolver()
sub.nonlinear_solver.options['maxiter'] = 2
- sub.linear_solver = ScipyKrylov()
+ sub.linear_solver = om.ScipyKrylov()
- ls = top.model.nonlinear_solver.linesearch = ArmijoGoldsteinLS(bound_enforcement='wall')
+ ls = top.model.nonlinear_solver.linesearch = om.ArmijoGoldsteinLS(bound_enforcement='wall')
ls.options['maxiter'] = 5
ls.options['alpha'] = 10.0
ls.options['retry_on_analysis_error'] = True
ls.options['c'] = 10000.0
- top.setup(check=False)
+ top.setup()
top.set_solver_print(level=2)
stdout = sys.stdout
@@ -318,31 +311,30 @@ def test_read_only_bug(self):
# this tests for a bug in which guess_nonlinear failed due to the output
# vector being left in a read only state after the AnalysisError
- top = Problem()
- top.model = Group()
- top.model.add_subsystem('px', IndepVarComp('x', 7.0))
+ top = om.Problem()
+ top.model.add_subsystem('px', om.IndepVarComp('x', 7.0))
- sub = top.model.add_subsystem('sub', Group())
+ sub = top.model.add_subsystem('sub', om.Group())
sub.add_subsystem('comp', ImplCompTwoStatesGuess())
top.model.connect('px.x', 'sub.comp.x')
- top.model.nonlinear_solver = NewtonSolver()
+ top.model.nonlinear_solver = om.NewtonSolver()
top.model.nonlinear_solver.options['maxiter'] = 2
top.model.nonlinear_solver.options['solve_subsystems'] = True
- top.model.linear_solver = ScipyKrylov()
+ top.model.linear_solver = om.ScipyKrylov()
- sub.nonlinear_solver = NewtonSolver()
+ sub.nonlinear_solver = om.NewtonSolver()
sub.nonlinear_solver.options['maxiter'] = 2
- sub.linear_solver = ScipyKrylov()
+ sub.linear_solver = om.ScipyKrylov()
- ls = top.model.nonlinear_solver.linesearch = ArmijoGoldsteinLS(bound_enforcement='wall')
+ ls = top.model.nonlinear_solver.linesearch = om.ArmijoGoldsteinLS(bound_enforcement='wall')
ls.options['maxiter'] = 5
ls.options['alpha'] = 10.0
ls.options['retry_on_analysis_error'] = True
ls.options['c'] = 10000.0
- top.setup(check=False)
+ top.setup()
top.set_solver_print(level=2)
stdout = sys.stdout
@@ -368,18 +360,17 @@ def test_read_only_bug(self):
class TestBoundsEnforceLSArrayBounds(unittest.TestCase):
def setUp(self):
- top = Problem()
- top.model = Group()
- top.model.add_subsystem('px', IndepVarComp('x', np.ones((3, 1))))
+ top = om.Problem()
+ top.model.add_subsystem('px', om.IndepVarComp('x', np.ones((3, 1))))
top.model.add_subsystem('comp', ImplCompTwoStatesArrays())
top.model.connect('px.x', 'comp.x')
- top.model.nonlinear_solver = NewtonSolver()
+ top.model.nonlinear_solver = om.NewtonSolver()
top.model.nonlinear_solver.options['maxiter'] = 10
- top.model.linear_solver = ScipyKrylov()
+ top.model.linear_solver = om.ScipyKrylov()
top.set_solver_print(level=0)
- top.setup(check=False)
+ top.setup()
self.top = top
self.ub = np.array([2.6, 2.5, 2.65])
@@ -387,11 +378,11 @@ def setUp(self):
def test_linesearch_vector_bound_enforcement(self):
top = self.top
- ls = top.model.nonlinear_solver.linesearch = BoundsEnforceLS(bound_enforcement='vector')
+ ls = top.model.nonlinear_solver.linesearch = om.BoundsEnforceLS(bound_enforcement='vector')
ls.options['print_bound_enforce'] = True
# Setup again because we assigned a new linesearch
- top.setup(check=False)
+ top.setup()
# Test lower bounds: should go to the lower bound and stall
top['px.x'] = 2.0
@@ -425,10 +416,10 @@ def test_linesearch_vector_bound_enforcement(self):
def test_linesearch_wall_bound_enforcement_wall(self):
top = self.top
- top.model.nonlinear_solver.linesearch = BoundsEnforceLS(bound_enforcement='wall')
+ top.model.nonlinear_solver.linesearch = om.BoundsEnforceLS(bound_enforcement='wall')
# Setup again because we assigned a new linesearch
- top.setup(check=False)
+ top.setup()
# Test lower bounds: should go to the lower bound and stall
top['px.x'] = 2.0
@@ -449,10 +440,10 @@ def test_linesearch_wall_bound_enforcement_wall(self):
def test_linesearch_wall_bound_enforcement_scalar(self):
top = self.top
- top.model.nonlinear_solver.linesearch = BoundsEnforceLS(bound_enforcement='scalar')
+ top.model.nonlinear_solver.linesearch = om.BoundsEnforceLS(bound_enforcement='scalar')
# Setup again because we assigned a new linesearch
- top.setup(check=False)
+ top.setup()
# Test lower bounds: should stop just short of the lower bound
top['px.x'] = 2.0
@@ -473,7 +464,7 @@ def test_linesearch_wall_bound_enforcement_scalar(self):
def test_error_handling(self):
# Make sure the debug_print doesn't bomb out.
- class Bad(ExplicitComponent):
+ class Bad(om.ExplicitComponent):
def setup(self):
self.add_input('x', val=0.0)
@@ -501,21 +492,20 @@ def compute_partials(self, inputs, partials):
partials['f_xy', 'x'] = 2.0*x - 6.0 + y
partials['f_xy', 'y'] = 2.0*y + 8.0 + x
- top = Problem()
- top.model = Group()
- top.model.add_subsystem('px', IndepVarComp('x', 1.0))
+ top = om.Problem()
+ top.model.add_subsystem('px', om.IndepVarComp('x', 1.0))
top.model.add_subsystem('comp', ImplCompTwoStates())
top.model.add_subsystem('par', Bad())
top.model.connect('px.x', 'comp.x')
top.model.connect('comp.z', 'par.x')
- top.model.nonlinear_solver = NewtonSolver()
+ top.model.nonlinear_solver = om.NewtonSolver()
top.model.nonlinear_solver.options['maxiter'] = 3
- top.model.nonlinear_solver.linesearch = BoundsEnforceLS(bound_enforcement='vector')
+ top.model.nonlinear_solver.linesearch = om.BoundsEnforceLS(bound_enforcement='vector')
top.set_solver_print(level=0)
- top.setup(check=False)
+ top.setup()
# Make sure we don't raise an error when we reach the final debug print.
top.run_model()
@@ -526,25 +516,25 @@ def test_undeclared_options(self):
# atol, rtol, maxiter, and err_on_maxiter are not used in BoundsEnforceLS
with self.assertRaises(KeyError) as context:
- BoundsEnforceLS(bound_enforcement='scalar', atol=1.0)
+ om.BoundsEnforceLS(bound_enforcement='scalar', atol=1.0)
self.assertEqual(str(context.exception), "\"Option 'atol' cannot be set because it "
"has not been declared.\"")
with self.assertRaises(KeyError) as context:
- BoundsEnforceLS(bound_enforcement='scalar', rtol=2.0)
+ om.BoundsEnforceLS(bound_enforcement='scalar', rtol=2.0)
self.assertEqual(str(context.exception), "\"Option 'rtol' cannot be set because it "
"has not been declared.\"")
with self.assertRaises(KeyError) as context:
- BoundsEnforceLS(bound_enforcement='scalar', maxiter=1)
+ om.BoundsEnforceLS(bound_enforcement='scalar', maxiter=1)
self.assertEqual(str(context.exception), "\"Option 'maxiter' cannot be set because it "
"has not been declared.\"")
with self.assertRaises(KeyError) as context:
- BoundsEnforceLS(bound_enforcement='scalar', err_on_maxiter=True)
+ om.BoundsEnforceLS(bound_enforcement='scalar', err_on_maxiter=True)
self.assertEqual(str(context.exception), "\"Option 'err_on_maxiter' cannot be set because it "
"has not been declared.\"")
@@ -553,18 +543,17 @@ def test_undeclared_options(self):
class TestArmijoGoldsteinLSArrayBounds(unittest.TestCase):
def setUp(self):
- top = Problem()
- top.model = Group()
- top.model.add_subsystem('px', IndepVarComp('x', np.ones((3, 1))))
+ top = om.Problem()
+ top.model.add_subsystem('px', om.IndepVarComp('x', np.ones((3, 1))))
top.model.add_subsystem('comp', ImplCompTwoStatesArrays())
top.model.connect('px.x', 'comp.x')
- top.model.nonlinear_solver = NewtonSolver()
+ top.model.nonlinear_solver = om.NewtonSolver()
top.model.nonlinear_solver.options['maxiter'] = 10
- top.model.linear_solver = ScipyKrylov()
+ top.model.linear_solver = om.ScipyKrylov()
top.set_solver_print(level=0)
- top.setup(check=False)
+ top.setup()
self.top = top
self.ub = np.array([2.6, 2.5, 2.65])
@@ -572,11 +561,11 @@ def setUp(self):
def test_linesearch_vector_bound_enforcement(self):
top = self.top
- ls = top.model.nonlinear_solver.linesearch = ArmijoGoldsteinLS(bound_enforcement='vector')
+ ls = top.model.nonlinear_solver.linesearch = om.ArmijoGoldsteinLS(bound_enforcement='vector')
ls.options['c'] = .1
# Setup again because we assigned a new linesearch
- top.setup(check=False)
+ top.setup()
# Test lower bounds: should go to the lower bound and stall
top['px.x'] = 2.0
@@ -597,10 +586,10 @@ def test_linesearch_vector_bound_enforcement(self):
def test_linesearch_wall_bound_enforcement_wall(self):
top = self.top
- top.model.nonlinear_solver.linesearch = ArmijoGoldsteinLS(bound_enforcement='wall')
+ top.model.nonlinear_solver.linesearch = om.ArmijoGoldsteinLS(bound_enforcement='wall')
# Setup again because we assigned a new linesearch
- top.setup(check=False)
+ top.setup()
# Test lower bounds: should go to the lower bound and stall
top['px.x'] = 2.0
@@ -621,10 +610,10 @@ def test_linesearch_wall_bound_enforcement_wall(self):
def test_linesearch_wall_bound_enforcement_scalar(self):
top = self.top
- top.model.nonlinear_solver.linesearch = ArmijoGoldsteinLS(bound_enforcement='scalar')
+ top.model.nonlinear_solver.linesearch = om.ArmijoGoldsteinLS(bound_enforcement='scalar')
# Setup again because we assigned a new linesearch
- top.setup(check=False)
+ top.setup()
# Test lower bounds: should stop just short of the lower bound
top['px.x'] = 2.0
@@ -643,25 +632,25 @@ def test_linesearch_wall_bound_enforcement_scalar(self):
self.assertTrue(2.4 <= top['comp.z'][ind] <= self.ub[ind])
def test_with_subsolves(self):
- prob = Problem()
+ prob = om.Problem()
model = prob.model = DoubleSellar()
g1 = model.g1
- g1.nonlinear_solver = NewtonSolver()
+ g1.nonlinear_solver = om.NewtonSolver()
g1.nonlinear_solver.options['rtol'] = 1.0e-5
- g1.linear_solver = DirectSolver()
+ g1.linear_solver = om.DirectSolver()
g2 = model.g2
- g2.nonlinear_solver = NewtonSolver()
+ g2.nonlinear_solver = om.NewtonSolver()
g2.nonlinear_solver.options['rtol'] = 1.0e-5
- g2.linear_solver = DirectSolver()
+ g2.linear_solver = om.DirectSolver()
- model.nonlinear_solver = NewtonSolver()
- model.linear_solver = ScipyKrylov()
+ model.nonlinear_solver = om.NewtonSolver()
+ model.linear_solver = om.ScipyKrylov()
model.nonlinear_solver.options['solve_subsystems'] = True
model.nonlinear_solver.options['max_sub_solves'] = 4
- ls = model.nonlinear_solver.linesearch = ArmijoGoldsteinLS(bound_enforcement='vector')
+ ls = model.nonlinear_solver.linesearch = om.ArmijoGoldsteinLS(bound_enforcement='vector')
# This is pretty bogus, but it ensures that we get a few LS iterations.
ls.options['c'] = 100.0
@@ -677,7 +666,7 @@ def test_with_subsolves(self):
assert_rel_error(self, prob['g2.y2'], 0.80, .00001)
-class CompAtan(ImplicitComponent):
+class CompAtan(om.ImplicitComponent):
"""
A simple implicit component with the following equation:
@@ -716,14 +705,13 @@ def linearize(self, inputs, outputs, jacobian):
class TestFeatureLineSearch(unittest.TestCase):
def test_feature_specification(self):
- from openmdao.api import Problem, IndepVarComp, NewtonSolver, BoundsEnforceLS
- from openmdao.api import DirectSolver
+ import openmdao.api as om
from openmdao.solvers.linesearch.tests.test_backtracking import CompAtan
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('px', IndepVarComp('x', -100.0))
+ model.add_subsystem('px', om.IndepVarComp('x', -100.0))
model.add_subsystem('comp', CompAtan())
model.connect('px.x', 'comp.x')
@@ -733,14 +721,14 @@ def test_feature_specification(self):
# Initial value for the state:
prob['comp.y'] = 12.0
- # You can change the NewtonSolver settings after setup is called
- newton = prob.model.nonlinear_solver = NewtonSolver()
- prob.model.linear_solver = DirectSolver()
+ # You can change the om.NewtonSolver settings after setup is called
+ newton = prob.model.nonlinear_solver = om.NewtonSolver()
+ prob.model.linear_solver = om.DirectSolver()
newton.options['iprint'] = 2
newton.options['rtol'] = 1e-8
newton.options['solve_subsystems'] = True
- newton.linesearch = BoundsEnforceLS()
+ newton.linesearch = om.BoundsEnforceLS()
newton.linesearch.options['iprint'] = 2
prob.run_model()
@@ -750,22 +738,21 @@ def test_feature_specification(self):
def test_feature_boundsenforcels_basic(self):
import numpy as np
- from openmdao.api import Problem, Group, IndepVarComp, NewtonSolver, ScipyKrylov, BoundsEnforceLS
+ import openmdao.api as om
from openmdao.test_suite.components.implicit_newton_linesearch import ImplCompTwoStatesArrays
- top = Problem()
- top.model = Group()
- top.model.add_subsystem('px', IndepVarComp('x', np.ones((3, 1))))
+ top = om.Problem()
+ top.model.add_subsystem('px', om.IndepVarComp('x', np.ones((3, 1))))
top.model.add_subsystem('comp', ImplCompTwoStatesArrays())
top.model.connect('px.x', 'comp.x')
- top.model.nonlinear_solver = NewtonSolver()
+ top.model.nonlinear_solver = om.NewtonSolver()
top.model.nonlinear_solver.options['maxiter'] = 10
- top.model.linear_solver = ScipyKrylov()
+ top.model.linear_solver = om.ScipyKrylov()
- top.model.nonlinear_solver.linesearch = BoundsEnforceLS()
+ top.model.nonlinear_solver.linesearch = om.BoundsEnforceLS()
- top.setup(check=False)
+ top.setup()
# Test lower bounds: should go to the lower bound and stall
top['px.x'] = 2.0
@@ -780,22 +767,21 @@ def test_feature_boundsenforcels_basic(self):
def test_feature_armijogoldsteinls_basic(self):
import numpy as np
- from openmdao.api import Problem, Group, IndepVarComp, NewtonSolver, ScipyKrylov, ArmijoGoldsteinLS
+ import openmdao.api as om
from openmdao.test_suite.components.implicit_newton_linesearch import ImplCompTwoStatesArrays
- top = Problem()
- top.model = Group()
- top.model.add_subsystem('px', IndepVarComp('x', np.ones((3, 1))))
+ top = om.Problem()
+ top.model.add_subsystem('px', om.IndepVarComp('x', np.ones((3, 1))))
top.model.add_subsystem('comp', ImplCompTwoStatesArrays())
top.model.connect('px.x', 'comp.x')
- top.model.nonlinear_solver = NewtonSolver()
+ top.model.nonlinear_solver = om.NewtonSolver()
top.model.nonlinear_solver.options['maxiter'] = 10
- top.model.linear_solver = ScipyKrylov()
+ top.model.linear_solver = om.ScipyKrylov()
- top.model.nonlinear_solver.linesearch = ArmijoGoldsteinLS()
+ top.model.nonlinear_solver.linesearch = om.ArmijoGoldsteinLS()
- top.setup(check=False)
+ top.setup()
# Test lower bounds: should go to the lower bound and stall
top['px.x'] = 2.0
@@ -810,22 +796,21 @@ def test_feature_armijogoldsteinls_basic(self):
def test_feature_boundscheck_basic(self):
import numpy as np
- from openmdao.api import Problem, Group, IndepVarComp, NewtonSolver, ScipyKrylov, BoundsEnforceLS
+ import openmdao.api as om
from openmdao.test_suite.components.implicit_newton_linesearch import ImplCompTwoStatesArrays
- top = Problem()
- top.model = Group()
- top.model.add_subsystem('px', IndepVarComp('x', np.ones((3, 1))))
+ top = om.Problem()
+ top.model.add_subsystem('px', om.IndepVarComp('x', np.ones((3, 1))))
top.model.add_subsystem('comp', ImplCompTwoStatesArrays())
top.model.connect('px.x', 'comp.x')
- top.model.nonlinear_solver = NewtonSolver()
+ top.model.nonlinear_solver = om.NewtonSolver()
top.model.nonlinear_solver.options['maxiter'] = 10
- top.model.linear_solver = ScipyKrylov()
+ top.model.linear_solver = om.ScipyKrylov()
- top.model.nonlinear_solver.linesearch = BoundsEnforceLS()
+ top.model.nonlinear_solver.linesearch = om.BoundsEnforceLS()
- top.setup(check=False)
+ top.setup()
# Test lower bounds: should go to the lower bound and stall
top['px.x'] = 2.0
@@ -840,23 +825,22 @@ def test_feature_boundscheck_basic(self):
def test_feature_boundscheck_vector(self):
import numpy as np
- from openmdao.api import Problem, Group, IndepVarComp, NewtonSolver, ScipyKrylov, BoundsEnforceLS
+ import openmdao.api as om
from openmdao.test_suite.components.implicit_newton_linesearch import ImplCompTwoStatesArrays
- top = Problem()
- top.model = Group()
- top.model.add_subsystem('px', IndepVarComp('x', np.ones((3, 1))))
+ top = om.Problem()
+ top.model.add_subsystem('px', om.IndepVarComp('x', np.ones((3, 1))))
top.model.add_subsystem('comp', ImplCompTwoStatesArrays())
top.model.connect('px.x', 'comp.x')
- top.model.nonlinear_solver = NewtonSolver()
+ top.model.nonlinear_solver = om.NewtonSolver()
top.model.nonlinear_solver.options['maxiter'] = 10
- top.model.linear_solver = ScipyKrylov()
+ top.model.linear_solver = om.ScipyKrylov()
- ls = top.model.nonlinear_solver.linesearch = BoundsEnforceLS(bound_enforcement='vector')
+ ls = top.model.nonlinear_solver.linesearch = om.BoundsEnforceLS(bound_enforcement='vector')
ls.options['bound_enforcement'] = 'vector'
- top.setup(check=False)
+ top.setup()
# Test lower bounds: should go to the lower bound and stall
top['px.x'] = 2.0
@@ -871,23 +855,22 @@ def test_feature_boundscheck_vector(self):
def test_feature_boundscheck_wall(self):
import numpy as np
- from openmdao.api import Problem, Group, IndepVarComp, NewtonSolver, ScipyKrylov, BoundsEnforceLS
+ import openmdao.api as om
from openmdao.test_suite.components.implicit_newton_linesearch import ImplCompTwoStatesArrays
- top = Problem()
- top.model = Group()
- top.model.add_subsystem('px', IndepVarComp('x', np.ones((3, 1))))
+ top = om.Problem()
+ top.model.add_subsystem('px', om.IndepVarComp('x', np.ones((3, 1))))
top.model.add_subsystem('comp', ImplCompTwoStatesArrays())
top.model.connect('px.x', 'comp.x')
- top.model.nonlinear_solver = NewtonSolver()
+ top.model.nonlinear_solver = om.NewtonSolver()
top.model.nonlinear_solver.options['maxiter'] = 10
- top.model.linear_solver = ScipyKrylov()
+ top.model.linear_solver = om.ScipyKrylov()
- ls = top.model.nonlinear_solver.linesearch = BoundsEnforceLS(bound_enforcement='wall')
+ ls = top.model.nonlinear_solver.linesearch = om.BoundsEnforceLS(bound_enforcement='wall')
ls.options['bound_enforcement'] = 'wall'
- top.setup(check=False)
+ top.setup()
# Test upper bounds: should go to the upper bound and stall
top['px.x'] = 0.5
@@ -902,23 +885,22 @@ def test_feature_boundscheck_wall(self):
def test_feature_boundscheck_scalar(self):
import numpy as np
- from openmdao.api import Problem, Group, IndepVarComp, NewtonSolver, ScipyKrylov, BoundsEnforceLS
+ import openmdao.api as om
from openmdao.test_suite.components.implicit_newton_linesearch import ImplCompTwoStatesArrays
- top = Problem()
- top.model = Group()
- top.model.add_subsystem('px', IndepVarComp('x', np.ones((3, 1))))
+ top = om.Problem()
+ top.model.add_subsystem('px', om.IndepVarComp('x', np.ones((3, 1))))
top.model.add_subsystem('comp', ImplCompTwoStatesArrays())
top.model.connect('px.x', 'comp.x')
- top.model.nonlinear_solver = NewtonSolver()
+ top.model.nonlinear_solver = om.NewtonSolver()
top.model.nonlinear_solver.options['maxiter'] = 10
- top.model.linear_solver = ScipyKrylov()
+ top.model.linear_solver = om.ScipyKrylov()
- ls = top.model.nonlinear_solver.linesearch = BoundsEnforceLS(bound_enforcement='scalar')
+ ls = top.model.nonlinear_solver.linesearch = om.BoundsEnforceLS(bound_enforcement='scalar')
ls.options['bound_enforcement'] = 'scalar'
- top.setup(check=False)
+ top.setup()
top.run_model()
# Test lower bounds: should stop just short of the lower bound
@@ -934,20 +916,19 @@ def test_feature_boundscheck_scalar(self):
def test_feature_print_bound_enforce(self):
import numpy as np
- from openmdao.api import Problem, Group, IndepVarComp, NewtonSolver, ScipyKrylov, BoundsEnforceLS
+ import openmdao.api as om
from openmdao.test_suite.components.implicit_newton_linesearch import ImplCompTwoStatesArrays
- top = Problem()
- top.model = Group()
- top.model.add_subsystem('px', IndepVarComp('x', np.ones((3, 1))))
+ top = om.Problem()
+ top.model.add_subsystem('px', om.IndepVarComp('x', np.ones((3, 1))))
top.model.add_subsystem('comp', ImplCompTwoStatesArrays())
top.model.connect('px.x', 'comp.x')
- newt = top.model.nonlinear_solver = NewtonSolver()
+ newt = top.model.nonlinear_solver = om.NewtonSolver()
top.model.nonlinear_solver.options['maxiter'] = 2
- top.model.linear_solver = ScipyKrylov()
+ top.model.linear_solver = om.ScipyKrylov()
- ls = newt.linesearch = BoundsEnforceLS(bound_enforcement='vector')
+ ls = newt.linesearch = om.BoundsEnforceLS(bound_enforcement='vector')
ls.options['print_bound_enforce'] = True
top.set_solver_print(level=2)
@@ -966,23 +947,22 @@ def test_feature_print_bound_enforce(self):
def test_feature_armijo_boundscheck_vector(self):
import numpy as np
- from openmdao.api import Problem, Group, IndepVarComp, NewtonSolver, ScipyKrylov, ArmijoGoldsteinLS
+ import openmdao.api as om
from openmdao.test_suite.components.implicit_newton_linesearch import ImplCompTwoStatesArrays
- top = Problem()
- top.model = Group()
- top.model.add_subsystem('px', IndepVarComp('x', np.ones((3, 1))))
+ top = om.Problem()
+ top.model.add_subsystem('px', om.IndepVarComp('x', np.ones((3, 1))))
top.model.add_subsystem('comp', ImplCompTwoStatesArrays())
top.model.connect('px.x', 'comp.x')
- top.model.nonlinear_solver = NewtonSolver()
+ top.model.nonlinear_solver = om.NewtonSolver()
top.model.nonlinear_solver.options['maxiter'] = 10
- top.model.linear_solver = ScipyKrylov()
+ top.model.linear_solver = om.ScipyKrylov()
- ls = top.model.nonlinear_solver.linesearch = ArmijoGoldsteinLS(bound_enforcement='vector')
+ ls = top.model.nonlinear_solver.linesearch = om.ArmijoGoldsteinLS(bound_enforcement='vector')
ls.options['bound_enforcement'] = 'vector'
- top.setup(check=False)
+ top.setup()
# Test lower bounds: should go to the lower bound and stall
top['px.x'] = 2.0
@@ -997,23 +977,22 @@ def test_feature_armijo_boundscheck_vector(self):
def test_feature_armijo_boundscheck_wall(self):
import numpy as np
- from openmdao.api import Problem, Group, IndepVarComp, NewtonSolver, ScipyKrylov, ArmijoGoldsteinLS
+ import openmdao.api as om
from openmdao.test_suite.components.implicit_newton_linesearch import ImplCompTwoStatesArrays
- top = Problem()
- top.model = Group()
- top.model.add_subsystem('px', IndepVarComp('x', np.ones((3, 1))))
+ top = om.Problem()
+ top.model.add_subsystem('px', om.IndepVarComp('x', np.ones((3, 1))))
top.model.add_subsystem('comp', ImplCompTwoStatesArrays())
top.model.connect('px.x', 'comp.x')
- top.model.nonlinear_solver = NewtonSolver()
+ top.model.nonlinear_solver = om.NewtonSolver()
top.model.nonlinear_solver.options['maxiter'] = 10
- top.model.linear_solver = ScipyKrylov()
+ top.model.linear_solver = om.ScipyKrylov()
- ls = top.model.nonlinear_solver.linesearch = ArmijoGoldsteinLS(bound_enforcement='wall')
+ ls = top.model.nonlinear_solver.linesearch = om.ArmijoGoldsteinLS(bound_enforcement='wall')
ls.options['bound_enforcement'] = 'wall'
- top.setup(check=False)
+ top.setup()
# Test upper bounds: should go to the upper bound and stall
top['px.x'] = 0.5
@@ -1028,23 +1007,22 @@ def test_feature_armijo_boundscheck_wall(self):
def test_feature_armijo_boundscheck_scalar(self):
import numpy as np
- from openmdao.api import Problem, Group, IndepVarComp, NewtonSolver, ScipyKrylov, ArmijoGoldsteinLS
+ import openmdao.api as om
from openmdao.test_suite.components.implicit_newton_linesearch import ImplCompTwoStatesArrays
- top = Problem()
- top.model = Group()
- top.model.add_subsystem('px', IndepVarComp('x', np.ones((3, 1))))
+ top = om.Problem()
+ top.model.add_subsystem('px', om.IndepVarComp('x', np.ones((3, 1))))
top.model.add_subsystem('comp', ImplCompTwoStatesArrays())
top.model.connect('px.x', 'comp.x')
- top.model.nonlinear_solver = NewtonSolver()
+ top.model.nonlinear_solver = om.NewtonSolver()
top.model.nonlinear_solver.options['maxiter'] = 10
- top.model.linear_solver = ScipyKrylov()
+ top.model.linear_solver = om.ScipyKrylov()
- ls = top.model.nonlinear_solver.linesearch = ArmijoGoldsteinLS(bound_enforcement='scalar')
+ ls = top.model.nonlinear_solver.linesearch = om.ArmijoGoldsteinLS(bound_enforcement='scalar')
ls.options['bound_enforcement'] = 'scalar'
- top.setup(check=False)
+ top.setup()
top.run_model()
# Test lower bounds: should stop just short of the lower bound
@@ -1060,20 +1038,19 @@ def test_feature_armijo_boundscheck_scalar(self):
def test_feature_armijo_print_bound_enforce(self):
import numpy as np
- from openmdao.api import Problem, Group, IndepVarComp, NewtonSolver, ScipyKrylov, ArmijoGoldsteinLS
+ import openmdao.api as om
from openmdao.test_suite.components.implicit_newton_linesearch import ImplCompTwoStatesArrays
- top = Problem()
- top.model = Group()
- top.model.add_subsystem('px', IndepVarComp('x', np.ones((3, 1))))
+ top = om.Problem()
+ top.model.add_subsystem('px', om.IndepVarComp('x', np.ones((3, 1))))
top.model.add_subsystem('comp', ImplCompTwoStatesArrays())
top.model.connect('px.x', 'comp.x')
- newt = top.model.nonlinear_solver = NewtonSolver()
+ newt = top.model.nonlinear_solver = om.NewtonSolver()
top.model.nonlinear_solver.options['maxiter'] = 2
- top.model.linear_solver = ScipyKrylov()
+ top.model.linear_solver = om.ScipyKrylov()
- ls = newt.linesearch = ArmijoGoldsteinLS()
+ ls = newt.linesearch = om.ArmijoGoldsteinLS()
ls.options['print_bound_enforce'] = True
top.set_solver_print(level=2)
diff --git a/openmdao/solvers/nonlinear/tests/test_broyden.py b/openmdao/solvers/nonlinear/tests/test_broyden.py
index 7460dc5df9..1b2051ad3d 100644
--- a/openmdao/solvers/nonlinear/tests/test_broyden.py
+++ b/openmdao/solvers/nonlinear/tests/test_broyden.py
@@ -2,21 +2,18 @@
from __future__ import print_function
from six import iteritems
-
import unittest
import numpy as np
-from openmdao.api import Problem, LinearRunOnce, ImplicitComponent, IndepVarComp, DirectSolver, \
- BoundsEnforceLS, LinearBlockGS, Group, ExecComp
-from openmdao.solvers.nonlinear.broyden import BroydenSolver
+import openmdao.api as om
from openmdao.test_suite.components.implicit_newton_linesearch import ImplCompTwoStates
from openmdao.test_suite.components.sellar import SellarStateConnection, SellarDerivatives, \
SellarDis1withDerivatives, SellarDis2withDerivatives
from openmdao.utils.assert_utils import assert_rel_error, assert_warning
-class VectorEquation(ImplicitComponent):
+class VectorEquation(om.ImplicitComponent):
"""Equation with 5 states in a single vector. Should converge to x=[0,0,0,0,0]"""
def setup(self):
@@ -32,7 +29,7 @@ def apply_nonlinear(self, inputs, outputs, residuals):
residuals['x'] = -d*x - c*x**3
-class MixedEquation(ImplicitComponent):
+class MixedEquation(om.ImplicitComponent):
"""Equation with 5 states split between 3 vars. Should converge to x=[0,0,0,0,0]"""
def setup(self):
@@ -75,7 +72,7 @@ def linearize(self, inputs, outputs, jacobian):
jacobian['x45', 'c'] = -3.0 * x45**2
-class SpedicatoHuang(ImplicitComponent):
+class SpedicatoHuang(om.ImplicitComponent):
cite = """
@article{spedicato_hwang,
@@ -130,11 +127,11 @@ class TestBryoden(unittest.TestCase):
def test_error_badname(self):
# Test top level Sellar (i.e., not grouped).
- prob = Problem()
- model = prob.model = SellarStateConnection(nonlinear_solver=BroydenSolver(),
- linear_solver=LinearRunOnce())
+ prob = om.Problem()
+ model = prob.model = SellarStateConnection(nonlinear_solver=om.BroydenSolver(),
+ linear_solver=om.LinearRunOnce())
- prob.setup(check=False)
+ prob.setup()
model.nonlinear_solver.options['state_vars'] = ['junk']
@@ -147,11 +144,11 @@ def test_error_badname(self):
def test_error_need_direct_solver(self):
# Test top level Sellar (i.e., not grouped).
- prob = Problem()
- model = prob.model = SellarStateConnection(nonlinear_solver=BroydenSolver(),
- linear_solver=LinearRunOnce())
+ prob = om.Problem()
+ model = prob.model = SellarStateConnection(nonlinear_solver=om.BroydenSolver(),
+ linear_solver=om.LinearRunOnce())
- prob.setup(check=False)
+ prob.setup()
with self.assertRaises(ValueError) as context:
prob.run_model()
@@ -162,11 +159,11 @@ def test_error_need_direct_solver(self):
def test_simple_sellar(self):
# Test top level Sellar (i.e., not grouped).
- prob = Problem()
- model = prob.model = SellarStateConnection(nonlinear_solver=BroydenSolver(),
- linear_solver=LinearRunOnce())
+ prob = om.Problem()
+ model = prob.model = SellarStateConnection(nonlinear_solver=om.BroydenSolver(),
+ linear_solver=om.LinearRunOnce())
- prob.setup(check=False)
+ prob.setup()
model.nonlinear_solver.options['state_vars'] = ['state_eq.y2_command']
model.nonlinear_solver.options['compute_jacobian'] = False
@@ -179,11 +176,11 @@ def test_simple_sellar(self):
def test_simple_sellar_cycle(self):
# Test top level Sellar (i.e., not grouped).
- prob = Problem()
- model = prob.model = SellarDerivatives(nonlinear_solver=BroydenSolver(),
- linear_solver=LinearRunOnce())
+ prob = om.Problem()
+ model = prob.model = SellarDerivatives(nonlinear_solver=om.BroydenSolver(),
+ linear_solver=om.LinearRunOnce())
- prob.setup(check=False)
+ prob.setup()
model.nonlinear_solver.options['state_vars'] = ['y1']
model.nonlinear_solver.options['compute_jacobian'] = True
@@ -198,12 +195,12 @@ def test_simple_sellar_cycle(self):
def test_sellar_state_connection_fd_system(self):
# Sellar model closes loop with state connection instead of a cycle.
# This test is just fd.
- prob = Problem()
- model = prob.model = SellarStateConnection(nonlinear_solver=BroydenSolver(),
- linear_solver=LinearRunOnce())
+ prob = om.Problem()
+ model = prob.model = SellarStateConnection(nonlinear_solver=om.BroydenSolver(),
+ linear_solver=om.LinearRunOnce())
prob.model.approx_totals(method='fd')
- prob.setup(check=False)
+ prob.setup()
model.nonlinear_solver.options['state_vars'] = ['state_eq.y2_command']
model.nonlinear_solver.options['compute_jacobian'] = False
@@ -219,20 +216,20 @@ def test_sellar_state_connection_fd_system(self):
def test_vector(self):
# Testing Broyden on a 5 state single vector case.
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('p1', IndepVarComp('c', 0.01))
+ model.add_subsystem('p1', om.IndepVarComp('c', 0.01))
model.add_subsystem('vec', VectorEquation())
model.connect('p1.c', 'vec.c')
- model.nonlinear_solver = BroydenSolver()
+ model.nonlinear_solver = om.BroydenSolver()
model.nonlinear_solver.options['state_vars'] = ['vec.x']
model.nonlinear_solver.options['maxiter'] = 15
model.nonlinear_solver.options['compute_jacobian'] = False
- prob.setup(check=False)
+ prob.setup()
prob.run_model()
@@ -241,20 +238,20 @@ def test_vector(self):
def test_mixed(self):
# Testing Broyden on a 5 state case split among 3 vars.
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('p1', IndepVarComp('c', 0.01))
+ model.add_subsystem('p1', om.IndepVarComp('c', 0.01))
model.add_subsystem('mixed', MixedEquation())
model.connect('p1.c', 'mixed.c')
- model.nonlinear_solver = BroydenSolver()
+ model.nonlinear_solver = om.BroydenSolver()
model.nonlinear_solver.options['state_vars'] = ['mixed.x12', 'mixed.x3', 'mixed.x45']
model.nonlinear_solver.options['maxiter'] = 15
model.nonlinear_solver.options['compute_jacobian'] = False
- prob.setup(check=False)
+ prob.setup()
prob.run_model()
@@ -265,20 +262,20 @@ def test_mixed(self):
def test_missing_state_warning(self):
# Testing Broyden on a 5 state case split among 3 vars.
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('p1', IndepVarComp('c', 0.01))
+ model.add_subsystem('p1', om.IndepVarComp('c', 0.01))
model.add_subsystem('mixed', MixedEquation())
model.connect('p1.c', 'mixed.c')
- model.nonlinear_solver = BroydenSolver()
+ model.nonlinear_solver = om.BroydenSolver()
model.nonlinear_solver.options['state_vars'] = ['mixed.x12']
model.nonlinear_solver.options['maxiter'] = 15
model.nonlinear_solver.options['compute_jacobian'] = False
- prob.setup(check=False)
+ prob.setup()
msg = "The following states are not covered by a solver, and may have been " \
"omitted from the BroydenSolver 'state_vars': mixed.x3, mixed.x45"
@@ -287,20 +284,20 @@ def test_missing_state_warning(self):
prob.run_model()
# Try again with promoted names.
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('p1', IndepVarComp('c', 0.01))
+ model.add_subsystem('p1', om.IndepVarComp('c', 0.01))
model.add_subsystem('mixed', MixedEquation(), promotes=['*'])
model.connect('p1.c', 'c')
- model.nonlinear_solver = BroydenSolver()
+ model.nonlinear_solver = om.BroydenSolver()
model.nonlinear_solver.options['state_vars'] = ['x12']
model.nonlinear_solver.options['maxiter'] = 15
model.nonlinear_solver.options['compute_jacobian'] = False
- prob.setup(check=False)
+ prob.setup()
msg = "The following states are not covered by a solver, and may have been " \
"omitted from the BroydenSolver 'state_vars': x3, x45"
@@ -311,20 +308,20 @@ def test_missing_state_warning(self):
def test_mixed_promoted_vars(self):
# Testing Broyden on a 5 state case split among 3 vars.
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('p1', IndepVarComp('c', 0.01))
+ model.add_subsystem('p1', om.IndepVarComp('c', 0.01))
model.add_subsystem('mixed', MixedEquation(), promotes_outputs=['x12', 'x3', 'x45'])
model.connect('p1.c', 'mixed.c')
- model.nonlinear_solver = BroydenSolver()
+ model.nonlinear_solver = om.BroydenSolver()
model.nonlinear_solver.options['state_vars'] = ['x12', 'x3', 'x45']
model.nonlinear_solver.options['maxiter'] = 15
model.nonlinear_solver.options['compute_jacobian'] = False
- prob.setup(check=False)
+ prob.setup()
prob.run_model()
@@ -335,20 +332,20 @@ def test_mixed_promoted_vars(self):
def test_mixed_jacobian(self):
# Testing Broyden on a 5 state case split among 3 vars.
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('p1', IndepVarComp('c', 0.01))
+ model.add_subsystem('p1', om.IndepVarComp('c', 0.01))
model.add_subsystem('mixed', MixedEquation())
model.connect('p1.c', 'mixed.c')
- model.nonlinear_solver = BroydenSolver()
+ model.nonlinear_solver = om.BroydenSolver()
model.nonlinear_solver.options['state_vars'] = ['mixed.x12', 'mixed.x3', 'mixed.x45']
model.nonlinear_solver.options['maxiter'] = 15
- model.nonlinear_solver.linear_solver = DirectSolver()
+ model.nonlinear_solver.linear_solver = om.DirectSolver()
- prob.setup(check=False)
+ prob.setup()
prob.run_model()
@@ -363,14 +360,14 @@ def test_mixed_jacobian(self):
def test_simple_sellar_jacobian(self):
# Test top level Sellar (i.e., not grouped).
- prob = Problem()
- model = prob.model = SellarStateConnection(nonlinear_solver=BroydenSolver(),
- linear_solver=LinearRunOnce())
+ prob = om.Problem()
+ model = prob.model = SellarStateConnection(nonlinear_solver=om.BroydenSolver(),
+ linear_solver=om.LinearRunOnce())
- prob.setup(check=False)
+ prob.setup()
model.nonlinear_solver.options['state_vars'] = ['state_eq.y2_command']
- model.nonlinear_solver.linear_solver = DirectSolver(assemble_jac=False)
+ model.nonlinear_solver.linear_solver = om.DirectSolver(assemble_jac=False)
prob.run_model()
@@ -384,13 +381,13 @@ def test_simple_sellar_jacobian(self):
def test_simple_sellar_jacobian_assembled(self):
# Test top level Sellar (i.e., not grouped).
- prob = Problem()
- model = prob.model = SellarStateConnection(nonlinear_solver=BroydenSolver(),
- linear_solver=LinearRunOnce())
+ prob = om.Problem()
+ model = prob.model = SellarStateConnection(nonlinear_solver=om.BroydenSolver(),
+ linear_solver=om.LinearRunOnce())
- prob.setup(check=False)
+ prob.setup()
- model.nonlinear_solver.linear_solver = DirectSolver(assemble_jac=True)
+ model.nonlinear_solver.linear_solver = om.DirectSolver(assemble_jac=True)
prob.run_model()
@@ -404,14 +401,14 @@ def test_simple_sellar_jacobian_assembled(self):
def test_simple_sellar_jacobian_assembled_dense(self):
# Test top level Sellar (i.e., not grouped).
- prob = Problem()
- model = prob.model = SellarStateConnection(nonlinear_solver=BroydenSolver(),
- linear_solver=LinearRunOnce())
+ prob = om.Problem()
+ model = prob.model = SellarStateConnection(nonlinear_solver=om.BroydenSolver(),
+ linear_solver=om.LinearRunOnce())
- prob.setup(check=False)
+ prob.setup()
model.options['assembled_jac_type'] = 'dense'
- model.nonlinear_solver.linear_solver = DirectSolver(assemble_jac=True)
+ model.nonlinear_solver.linear_solver = om.DirectSolver(assemble_jac=True)
prob.run_model()
@@ -425,13 +422,13 @@ def test_simple_sellar_jacobian_assembled_dense(self):
def test_simple_sellar_full(self):
# Test top level Sellar (i.e., not grouped).
- prob = Problem()
- model = prob.model = SellarStateConnection(nonlinear_solver=BroydenSolver(),
- linear_solver=LinearRunOnce())
+ prob = om.Problem()
+ model = prob.model = SellarStateConnection(nonlinear_solver=om.BroydenSolver(),
+ linear_solver=om.LinearRunOnce())
- prob.setup(check=False)
+ prob.setup()
- model.nonlinear_solver.linear_solver = DirectSolver()
+ model.nonlinear_solver.linear_solver = om.DirectSolver()
model.nonlinear_solver.options['compute_jacobian'] = False
prob.run_model()
@@ -446,13 +443,13 @@ def test_simple_sellar_full(self):
def test_simple_sellar_full_jacobian(self):
# Test top level Sellar (i.e., not grouped).
- prob = Problem()
- model = prob.model = SellarStateConnection(nonlinear_solver=BroydenSolver(),
- linear_solver=LinearRunOnce())
+ prob = om.Problem()
+ model = prob.model = SellarStateConnection(nonlinear_solver=om.BroydenSolver(),
+ linear_solver=om.LinearRunOnce())
- prob.setup(check=False)
+ prob.setup()
- model.nonlinear_solver.linear_solver = DirectSolver()
+ model.nonlinear_solver.linear_solver = om.DirectSolver()
prob.run_model()
@@ -466,22 +463,22 @@ def test_simple_sellar_full_jacobian(self):
def test_jacobian_update_converge_limit(self):
# This model needs jacobian updates to converge.
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', np.array([0, 20.0])))
+ model.add_subsystem('p1', om.IndepVarComp('x', np.array([0, 20.0])))
model.add_subsystem('comp', SpedicatoHuang())
model.connect('p1.x', 'comp.x')
- model.nonlinear_solver = BroydenSolver()
+ model.nonlinear_solver = om.BroydenSolver()
model.nonlinear_solver.options['state_vars'] = ['comp.y']
model.nonlinear_solver.options['maxiter'] = 20
model.nonlinear_solver.options['max_converge_failures'] = 1
model.nonlinear_solver.options['diverge_limit'] = np.inf
- model.nonlinear_solver.linear_solver = DirectSolver()
+ model.nonlinear_solver.linear_solver = om.DirectSolver()
- prob.setup(check=False)
+ prob.setup()
prob.set_solver_print(level=2)
prob.run_model()
@@ -491,21 +488,21 @@ def test_jacobian_update_converge_limit(self):
def test_jacobian_update_diverge_limit(self):
# This model needs jacobian updates to converge.
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', np.array([0, 20.0])))
+ model.add_subsystem('p1', om.IndepVarComp('x', np.array([0, 20.0])))
model.add_subsystem('comp', SpedicatoHuang())
model.connect('p1.x', 'comp.x')
- model.nonlinear_solver = BroydenSolver()
+ model.nonlinear_solver = om.BroydenSolver()
model.nonlinear_solver.options['state_vars'] = ['comp.y']
model.nonlinear_solver.options['maxiter'] = 20
model.nonlinear_solver.options['diverge_limit'] = 0.5
- model.nonlinear_solver.linear_solver = DirectSolver()
+ model.nonlinear_solver.linear_solver = om.DirectSolver()
- prob.setup(check=False)
+ prob.setup()
prob.set_solver_print(level=2)
prob.run_model()
@@ -513,23 +510,23 @@ def test_jacobian_update_diverge_limit(self):
assert_rel_error(self, prob['comp.y'], np.array([-36.26230985, 10.20857237, -54.17658612]), 1e-6)
def test_backtracking(self):
- top = Problem()
- top.model.add_subsystem('px', IndepVarComp('x', 1.0))
+ top = om.Problem()
+ top.model.add_subsystem('px', om.IndepVarComp('x', 1.0))
top.model.add_subsystem('comp', ImplCompTwoStates())
top.model.connect('px.x', 'comp.x')
- top.model.nonlinear_solver = BroydenSolver()
+ top.model.nonlinear_solver = om.BroydenSolver()
top.model.nonlinear_solver.options['maxiter'] = 25
top.model.nonlinear_solver.options['diverge_limit'] = 0.5
top.model.nonlinear_solver.options['state_vars'] = ['comp.y', 'comp.z']
- top.model.linear_solver = DirectSolver()
+ top.model.linear_solver = om.DirectSolver()
- top.setup(check=False)
- top.model.nonlinear_solver.linesearch = BoundsEnforceLS(bound_enforcement='vector')
+ top.setup()
+ top.model.nonlinear_solver.linesearch = om.BoundsEnforceLS(bound_enforcement='vector')
# Setup again because we assigned a new linesearch
- top.setup(check=False)
+ top.setup()
top.set_solver_print(level=2)
# Test lower bound: should go to the lower bound and stall
@@ -549,26 +546,28 @@ def test_backtracking(self):
def test_cs_around_broyden(self):
# Basic sellar test.
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- sub = model.add_subsystem('sub', Group(), promotes=['*'])
+ sub = model.add_subsystem('sub', om.Group(), promotes=['*'])
- model.add_subsystem('px', IndepVarComp('x', 1.0), promotes=['x'])
- model.add_subsystem('pz', IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
+ model.add_subsystem('px', om.IndepVarComp('x', 1.0), promotes=['x'])
+ model.add_subsystem('pz', om.IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
sub.add_subsystem('d1', SellarDis1withDerivatives(), promotes=['x', 'z', 'y1', 'y2'])
sub.add_subsystem('d2', SellarDis2withDerivatives(), promotes=['z', 'y1', 'y2'])
- model.add_subsystem('obj_cmp', ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
+ model.add_subsystem('obj_cmp', om.ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
z=np.array([0.0, 0.0]), x=0.0),
promotes=['obj', 'x', 'z', 'y1', 'y2'])
- model.add_subsystem('con_cmp1', ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
- model.add_subsystem('con_cmp2', ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
+ model.add_subsystem('con_cmp1', om.ExecComp('con1 = 3.16 - y1'),
+ promotes=['con1', 'y1'])
+ model.add_subsystem('con_cmp2', om.ExecComp('con2 = y2 - 24.0'),
+ promotes=['con2', 'y2'])
- sub.nonlinear_solver = BroydenSolver()
- sub.linear_solver = DirectSolver()
- model.linear_solver = DirectSolver()
+ sub.nonlinear_solver = om.BroydenSolver()
+ sub.linear_solver = om.DirectSolver()
+ model.linear_solver = om.DirectSolver()
prob.model.add_design_var('x', lower=-100, upper=100)
prob.model.add_design_var('z', lower=-100, upper=100)
@@ -589,26 +588,26 @@ def test_cs_around_broyden(self):
def test_cs_around_broyden_compute_jac(self):
# Basic sellar test.
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- sub = model.add_subsystem('sub', Group(), promotes=['*'])
+ sub = model.add_subsystem('sub', om.Group(), promotes=['*'])
- model.add_subsystem('px', IndepVarComp('x', 1.0), promotes=['x'])
- model.add_subsystem('pz', IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
+ model.add_subsystem('px', om.IndepVarComp('x', 1.0), promotes=['x'])
+ model.add_subsystem('pz', om.IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
sub.add_subsystem('d1', SellarDis1withDerivatives(), promotes=['x', 'z', 'y1', 'y2'])
sub.add_subsystem('d2', SellarDis2withDerivatives(), promotes=['z', 'y1', 'y2'])
- model.add_subsystem('obj_cmp', ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
+ model.add_subsystem('obj_cmp', om.ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
z=np.array([0.0, 0.0]), x=0.0),
promotes=['obj', 'x', 'z', 'y1', 'y2'])
- model.add_subsystem('con_cmp1', ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
- model.add_subsystem('con_cmp2', ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
+ model.add_subsystem('con_cmp1', om.ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
+ model.add_subsystem('con_cmp2', om.ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
- sub.nonlinear_solver = BroydenSolver()
- sub.linear_solver = DirectSolver(assemble_jac=False)
- model.linear_solver = DirectSolver(assemble_jac=False)
+ sub.nonlinear_solver = om.BroydenSolver()
+ sub.linear_solver = om.DirectSolver(assemble_jac=False)
+ model.linear_solver = om.DirectSolver(assemble_jac=False)
prob.model.add_design_var('x', lower=-100, upper=100)
prob.model.add_design_var('z', lower=-100, upper=100)
@@ -631,26 +630,26 @@ def test_cs_around_broyden_compute_jac(self):
def test_cs_around_broyden_compute_jac_dense(self):
# Basic sellar test.
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- sub = model.add_subsystem('sub', Group(), promotes=['*'])
+ sub = model.add_subsystem('sub', om.Group(), promotes=['*'])
- model.add_subsystem('px', IndepVarComp('x', 1.0), promotes=['x'])
- model.add_subsystem('pz', IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
+ model.add_subsystem('px', om.IndepVarComp('x', 1.0), promotes=['x'])
+ model.add_subsystem('pz', om.IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
sub.add_subsystem('d1', SellarDis1withDerivatives(), promotes=['x', 'z', 'y1', 'y2'])
sub.add_subsystem('d2', SellarDis2withDerivatives(), promotes=['z', 'y1', 'y2'])
- model.add_subsystem('obj_cmp', ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
+ model.add_subsystem('obj_cmp', om.ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
z=np.array([0.0, 0.0]), x=0.0),
promotes=['obj', 'x', 'z', 'y1', 'y2'])
- model.add_subsystem('con_cmp1', ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
- model.add_subsystem('con_cmp2', ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
+ model.add_subsystem('con_cmp1', om.ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
+ model.add_subsystem('con_cmp2', om.ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
- sub.nonlinear_solver = BroydenSolver()
- sub.linear_solver = DirectSolver()
- model.linear_solver = DirectSolver()
+ sub.nonlinear_solver = om.BroydenSolver()
+ sub.linear_solver = om.DirectSolver()
+ model.linear_solver = om.DirectSolver()
prob.model.add_design_var('x', lower=-100, upper=100)
prob.model.add_design_var('z', lower=-100, upper=100)
@@ -674,12 +673,12 @@ def test_cs_around_broyden_compute_jac_dense(self):
class TestBryodenFeature(unittest.TestCase):
def test_sellar(self):
- from openmdao.api import Problem, LinearRunOnce, IndepVarComp, BroydenSolver
+ import openmdao.api as om
from openmdao.test_suite.components.sellar import SellarStateConnection
- prob = Problem()
- model = prob.model = SellarStateConnection(nonlinear_solver=BroydenSolver(),
- linear_solver=LinearRunOnce())
+ prob = om.Problem()
+ model = prob.model = SellarStateConnection(nonlinear_solver=om.BroydenSolver(),
+ linear_solver=om.LinearRunOnce())
prob.setup()
@@ -693,15 +692,14 @@ def test_sellar(self):
assert_rel_error(self, prob['state_eq.y2_command'], 12.05848819, .00001)
def test_circuit(self):
- from openmdao.api import Group, BroydenSolver, DirectSolver, Problem, IndepVarComp, LinearBlockGS
-
+ import openmdao.api as om
from openmdao.test_suite.scripts.circuit_analysis import Circuit
- p = Problem()
+ p = om.Problem()
model = p.model
- model.add_subsystem('ground', IndepVarComp('V', 0., units='V'))
- model.add_subsystem('source', IndepVarComp('I', 0.1, units='A'))
+ model.add_subsystem('ground', om.IndepVarComp('V', 0., units='V'))
+ model.add_subsystem('source', om.IndepVarComp('I', 0.1, units='A'))
model.add_subsystem('circuit', Circuit())
model.connect('source.I', 'circuit.I_in')
@@ -709,14 +707,14 @@ def test_circuit(self):
p.setup()
- # Replace existing solver with BroydenSolver
- model.circuit.nonlinear_solver = BroydenSolver()
+ # Replace existing solver with om.BroydenSolver
+ model.circuit.nonlinear_solver = om.BroydenSolver()
model.circuit.nonlinear_solver.options['maxiter'] = 20
# Specify states for Broyden to solve
model.circuit.nonlinear_solver.options['state_vars'] = ['n1.V', 'n2.V']
- model.nonlinear_solver.linear_solver = LinearBlockGS()
+ model.nonlinear_solver.linear_solver = om.LinearBlockGS()
# set some initial guesses
p['circuit.n1.V'] = 10.
@@ -732,15 +730,14 @@ def test_circuit(self):
assert_rel_error(self, p['circuit.R1.I'] + p['circuit.D1.I'], .1, 1e-6)
def test_circuit_options(self):
- from openmdao.api import Group, BroydenSolver, DirectSolver, Problem, IndepVarComp
-
+ import openmdao.api as om
from openmdao.test_suite.scripts.circuit_analysis import Circuit
- p = Problem()
+ p = om.Problem()
model = p.model
- model.add_subsystem('ground', IndepVarComp('V', 0., units='V'))
- model.add_subsystem('source', IndepVarComp('I', 0.1, units='A'))
+ model.add_subsystem('ground', om.IndepVarComp('V', 0., units='V'))
+ model.add_subsystem('source', om.IndepVarComp('I', 0.1, units='A'))
model.add_subsystem('circuit', Circuit())
model.connect('source.I', 'circuit.I_in')
@@ -749,7 +746,7 @@ def test_circuit_options(self):
p.setup()
# Replace existing solver with BroydenSolver
- model.circuit.nonlinear_solver = BroydenSolver()
+ model.circuit.nonlinear_solver = om.BroydenSolver()
model.circuit.nonlinear_solver.options['maxiter'] = 20
model.circuit.nonlinear_solver.options['converge_limit'] = 0.1
model.circuit.nonlinear_solver.options['max_converge_failures'] = 1
@@ -771,15 +768,14 @@ def test_circuit_options(self):
assert_rel_error(self, p['circuit.R1.I'] + p['circuit.D1.I'], .1, 1e-6)
def test_circuit_full(self):
- from openmdao.api import Group, BroydenSolver, DirectSolver, Problem, IndepVarComp
-
+ import openmdao.api as om
from openmdao.test_suite.scripts.circuit_analysis import Circuit
- p = Problem()
+ p = om.Problem()
model = p.model
- model.add_subsystem('ground', IndepVarComp('V', 0., units='V'))
- model.add_subsystem('source', IndepVarComp('I', 0.1, units='A'))
+ model.add_subsystem('ground', om.IndepVarComp('V', 0., units='V'))
+ model.add_subsystem('source', om.IndepVarComp('I', 0.1, units='A'))
model.add_subsystem('circuit', Circuit())
model.connect('source.I', 'circuit.I_in')
@@ -788,9 +784,9 @@ def test_circuit_full(self):
p.setup()
# Replace existing solver with BroydenSolver
- model.circuit.nonlinear_solver = BroydenSolver()
+ model.circuit.nonlinear_solver = om.BroydenSolver()
model.circuit.nonlinear_solver.options['maxiter'] = 20
- model.circuit.nonlinear_solver.linear_solver = DirectSolver()
+ model.circuit.nonlinear_solver.linear_solver = om.DirectSolver()
# set some initial guesses
p['circuit.n1.V'] = 10.
@@ -805,5 +801,6 @@ def test_circuit_full(self):
# sanity check: should sum to .1 Amps
assert_rel_error(self, p['circuit.R1.I'] + p['circuit.D1.I'], .1, 1e-6)
+
if __name__ == "__main__":
unittest.main()
diff --git a/openmdao/solvers/nonlinear/tests/test_newton.py b/openmdao/solvers/nonlinear/tests/test_newton.py
index 4dd668e39f..41e51483c3 100644
--- a/openmdao/solvers/nonlinear/tests/test_newton.py
+++ b/openmdao/solvers/nonlinear/tests/test_newton.py
@@ -4,11 +4,8 @@
import numpy as np
-from openmdao.api import Group, Problem, IndepVarComp, LinearBlockGS, \
- NewtonSolver, ExecComp, ScipyKrylov, ImplicitComponent, \
- DirectSolver, AnalysisError
+import openmdao.api as om
from openmdao.core.tests.test_discrete import InternalDiscreteGroup
-from openmdao.solvers.linesearch.backtracking import ArmijoGoldsteinLS
from openmdao.test_suite.components.double_sellar import DoubleSellar, DoubleSellarImplicit, \
SubSellar
from openmdao.test_suite.components.implicit_newton_linesearch import ImplCompTwoStates
@@ -22,14 +19,14 @@ class TestNewton(unittest.TestCase):
def test_specify_newton_linear_solver_in_system(self):
- my_newton = NewtonSolver()
- my_newton.linear_solver = DirectSolver()
+ my_newton = om.NewtonSolver()
+ my_newton.linear_solver = om.DirectSolver()
- prob = Problem(model=SellarDerivatives(nonlinear_solver=my_newton))
+ prob = om.Problem(model=SellarDerivatives(nonlinear_solver=my_newton))
prob.setup()
- self.assertIsInstance(prob.model.nonlinear_solver.linear_solver, DirectSolver)
+ self.assertIsInstance(prob.model.nonlinear_solver.linear_solver, om.DirectSolver)
prob.run_model()
@@ -40,12 +37,12 @@ def test_feature_newton_basic(self):
""" Feature test for slotting a Newton solver and using it to solve
Sellar.
"""
- from openmdao.api import Problem, NewtonSolver
+ import openmdao.api as om
from openmdao.test_suite.components.sellar import SellarDerivatives
- prob = Problem(model=SellarDerivatives(nonlinear_solver=NewtonSolver()))
+ prob = om.Problem(model=SellarDerivatives(nonlinear_solver=om.NewtonSolver()))
- prob.setup(check=False)
+ prob.setup()
prob.run_model()
assert_rel_error(self, prob['y1'], 25.58830273, .00001)
@@ -54,9 +51,9 @@ def test_feature_newton_basic(self):
def test_sellar_grouped(self):
# Tests basic Newton solution on Sellar in a subgroup
- prob = Problem(model=SellarDerivativesGrouped(nonlinear_solver=NewtonSolver()))
+ prob = om.Problem(model=SellarDerivativesGrouped(nonlinear_solver=om.NewtonSolver()))
- prob.setup(check=False)
+ prob.setup()
prob.set_solver_print(level=0)
prob.run_model()
@@ -69,9 +66,9 @@ def test_sellar_grouped(self):
def test_sellar(self):
# Just tests Newton on Sellar with FD derivs.
- prob = Problem(model=SellarNoDerivatives(nonlinear_solver=NewtonSolver()))
+ prob = om.Problem(model=SellarNoDerivatives(nonlinear_solver=om.NewtonSolver()))
- prob.setup(check=False)
+ prob.setup()
prob.run_model()
assert_rel_error(self, prob['y1'], 25.58830273, .00001)
@@ -81,20 +78,20 @@ def test_sellar(self):
self.assertLess(prob.model.nonlinear_solver._iter_count, 8)
def test_line_search_deprecated(self):
- top = Problem()
- top.model.add_subsystem('px', IndepVarComp('x', 1.0))
+ top = om.Problem()
+ top.model.add_subsystem('px', om.IndepVarComp('x', 1.0))
top.model.add_subsystem('comp', ImplCompTwoStates())
top.model.connect('px.x', 'comp.x')
- top.model.nonlinear_solver = NewtonSolver()
+ top.model.nonlinear_solver = om.NewtonSolver()
top.model.nonlinear_solver.options['maxiter'] = 10
- top.model.linear_solver = ScipyKrylov()
+ top.model.linear_solver = om.ScipyKrylov()
msg = "The 'line_search' attribute provides backwards compatibility with OpenMDAO 1.x ; " \
"use 'linesearch' instead."
with assert_warning(DeprecationWarning, msg):
- top.model.nonlinear_solver.line_search = ArmijoGoldsteinLS(bound_enforcement='vector')
+ top.model.nonlinear_solver.line_search = om.ArmijoGoldsteinLS(bound_enforcement='vector')
with assert_warning(DeprecationWarning, msg):
ls = top.model.nonlinear_solver.line_search
@@ -102,7 +99,7 @@ def test_line_search_deprecated(self):
ls.options['maxiter'] = 10
ls.options['alpha'] = 1.0
- top.setup(check=False)
+ top.setup()
# Test lower bound: should go to the lower bound and stall
top['px.x'] = 2.0
@@ -123,10 +120,11 @@ def test_sellar_derivs(self):
# Also, piggybacked testing that makes sure we only call apply_nonlinear
# on the head component behind the cycle break.
- prob = Problem()
- prob.model = SellarDerivatives(nonlinear_solver=NewtonSolver(), linear_solver=LinearBlockGS())
+ prob = om.Problem()
+ prob.model = SellarDerivatives(nonlinear_solver=om.NewtonSolver(),
+ linear_solver=om.LinearBlockGS())
- prob.setup(check=False)
+ prob.setup()
prob.set_solver_print(level=0)
prob.run_model()
@@ -146,9 +144,9 @@ def test_sellar_derivs(self):
def test_sellar_derivs_with_Lin_GS(self):
- prob = Problem(model=SellarDerivatives(nonlinear_solver=NewtonSolver()))
+ prob = om.Problem(model=SellarDerivatives(nonlinear_solver=om.NewtonSolver()))
- prob.setup(check=False)
+ prob.setup()
prob.set_solver_print(level=0)
prob.run_model()
@@ -161,10 +159,10 @@ def test_sellar_derivs_with_Lin_GS(self):
def test_sellar_state_connection(self):
# Sellar model closes loop with state connection instead of a cycle.
- prob = Problem(model=SellarStateConnection(nonlinear_solver=NewtonSolver()))
+ prob = om.Problem(model=SellarStateConnection(nonlinear_solver=om.NewtonSolver()))
prob.set_solver_print(level=0)
- prob.setup(check=False)
+ prob.setup()
prob.run_model()
assert_rel_error(self, prob['y1'], 25.58830273, .00001)
@@ -176,11 +174,11 @@ def test_sellar_state_connection(self):
def test_sellar_state_connection_fd_system(self):
# Sellar model closes loop with state connection instead of a cycle.
# This test is just fd.
- prob = Problem(model=SellarStateConnection(nonlinear_solver=NewtonSolver()))
+ prob = om.Problem(model=SellarStateConnection(nonlinear_solver=om.NewtonSolver()))
prob.model.approx_totals(method='fd')
- prob.setup(check=False)
+ prob.setup()
prob.set_solver_print(level=0)
prob.run_model()
@@ -192,18 +190,18 @@ def test_sellar_state_connection_fd_system(self):
def test_sellar_specify_linear_solver(self):
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('px', IndepVarComp('x', 1.0), promotes=['x'])
- model.add_subsystem('pz', IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
+ model.add_subsystem('px', om.IndepVarComp('x', 1.0), promotes=['x'])
+ model.add_subsystem('pz', om.IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
proms = ['x', 'z', 'y1', 'state_eq.y2_actual', 'state_eq.y2_command', 'd1.y2', 'd2.y2']
- sub = model.add_subsystem('sub', Group(), promotes=proms)
+ sub = model.add_subsystem('sub', om.Group(), promotes=proms)
- subgrp = sub.add_subsystem('state_eq_group', Group(),
+ subgrp = sub.add_subsystem('state_eq_group', om.Group(),
promotes=['state_eq.y2_actual', 'state_eq.y2_command'])
- subgrp.linear_solver = ScipyKrylov()
+ subgrp.linear_solver = om.ScipyKrylov()
subgrp.add_subsystem('state_eq', StateConnection())
sub.add_subsystem('d1', SellarDis1withDerivatives(), promotes=['x', 'z', 'y1'])
@@ -212,28 +210,28 @@ def test_sellar_specify_linear_solver(self):
model.connect('state_eq.y2_command', 'd1.y2')
model.connect('d2.y2', 'state_eq.y2_actual')
- model.add_subsystem('obj_cmp', ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
+ model.add_subsystem('obj_cmp', om.ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
z=np.array([0.0, 0.0]), x=0.0, y1=0.0, y2=0.0),
promotes=['x', 'z', 'y1', 'obj'])
model.connect('d2.y2', 'obj_cmp.y2')
- model.add_subsystem('con_cmp1', ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
- model.add_subsystem('con_cmp2', ExecComp('con2 = y2 - 24.0'), promotes=['con2'])
+ model.add_subsystem('con_cmp1', om.ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
+ model.add_subsystem('con_cmp2', om.ExecComp('con2 = y2 - 24.0'), promotes=['con2'])
model.connect('d2.y2', 'con_cmp2.y2')
- model.nonlinear_solver = NewtonSolver()
+ model.nonlinear_solver = om.NewtonSolver()
# Use bad settings for this one so that problem doesn't converge.
# That way, we test that we are really using Newton's Lin Solver
# instead.
- model.linear_solver = ScipyKrylov()
+ model.linear_solver = om.ScipyKrylov()
model.linear_solver.options['maxiter'] = 1
# The good solver
- model.nonlinear_solver.linear_solver = ScipyKrylov()
+ model.nonlinear_solver.linear_solver = om.ScipyKrylov()
prob.set_solver_print(level=0)
- prob.setup(check=False)
+ prob.setup()
prob.run_model()
assert_rel_error(self, prob['y1'], 25.58830273, .00001)
@@ -246,18 +244,18 @@ def test_sellar_specify_linear_solver(self):
def test_sellar_specify_linear_direct_solver(self):
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('px', IndepVarComp('x', 1.0), promotes=['x'])
- model.add_subsystem('pz', IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
+ model.add_subsystem('px', om.IndepVarComp('x', 1.0), promotes=['x'])
+ model.add_subsystem('pz', om.IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
proms = ['x', 'z', 'y1', 'state_eq.y2_actual', 'state_eq.y2_command', 'd1.y2', 'd2.y2']
- sub = model.add_subsystem('sub', Group(), promotes=proms)
+ sub = model.add_subsystem('sub', om.Group(), promotes=proms)
- subgrp = sub.add_subsystem('state_eq_group', Group(),
+ subgrp = sub.add_subsystem('state_eq_group', om.Group(),
promotes=['state_eq.y2_actual', 'state_eq.y2_command'])
- subgrp.linear_solver = ScipyKrylov()
+ subgrp.linear_solver = om.ScipyKrylov()
subgrp.add_subsystem('state_eq', StateConnection())
sub.add_subsystem('d1', SellarDis1withDerivatives(), promotes=['x', 'z', 'y1'])
@@ -266,28 +264,28 @@ def test_sellar_specify_linear_direct_solver(self):
model.connect('state_eq.y2_command', 'd1.y2')
model.connect('d2.y2', 'state_eq.y2_actual')
- model.add_subsystem('obj_cmp', ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
+ model.add_subsystem('obj_cmp', om.ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
z=np.array([0.0, 0.0]), x=0.0, y1=0.0, y2=0.0),
promotes=['x', 'z', 'y1', 'obj'])
model.connect('d2.y2', 'obj_cmp.y2')
- model.add_subsystem('con_cmp1', ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
- model.add_subsystem('con_cmp2', ExecComp('con2 = y2 - 24.0'), promotes=['con2'])
+ model.add_subsystem('con_cmp1', om.ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
+ model.add_subsystem('con_cmp2', om.ExecComp('con2 = y2 - 24.0'), promotes=['con2'])
model.connect('d2.y2', 'con_cmp2.y2')
- model.nonlinear_solver = NewtonSolver()
+ model.nonlinear_solver = om.NewtonSolver()
# Use bad settings for this one so that problem doesn't converge.
# That way, we test that we are really using Newton's Lin Solver
# instead.
- sub.linear_solver = ScipyKrylov()
+ sub.linear_solver = om.ScipyKrylov()
sub.linear_solver.options['maxiter'] = 1
# The good solver
- model.nonlinear_solver.linear_solver = DirectSolver()
+ model.nonlinear_solver.linear_solver = om.DirectSolver()
prob.set_solver_print(level=0)
- prob.setup(check=False)
+ prob.setup()
prob.run_model()
assert_rel_error(self, prob['y1'], 25.58830273, .00001)
@@ -298,23 +296,23 @@ def test_sellar_specify_linear_direct_solver(self):
self.assertEqual(model.linear_solver._iter_count, 0)
def test_solve_subsystems_basic(self):
- prob = Problem(model=DoubleSellar())
+ prob = om.Problem(model=DoubleSellar())
model = prob.model
g1 = model.g1
- g1.nonlinear_solver = NewtonSolver()
+ g1.nonlinear_solver = om.NewtonSolver()
g1.nonlinear_solver.options['rtol'] = 1.0e-5
- g1.linear_solver = DirectSolver(assemble_jac=True)
+ g1.linear_solver = om.DirectSolver(assemble_jac=True)
g1.options['assembled_jac_type'] = 'dense'
g2 = model.g2
- g2.nonlinear_solver = NewtonSolver()
+ g2.nonlinear_solver = om.NewtonSolver()
g2.nonlinear_solver.options['rtol'] = 1.0e-5
- g2.linear_solver = DirectSolver(assemble_jac=True)
+ g2.linear_solver = om.DirectSolver(assemble_jac=True)
g2.options['assembled_jac_type'] = 'dense'
- model.nonlinear_solver = NewtonSolver()
- model.linear_solver = ScipyKrylov(assemble_jac=True)
+ model.nonlinear_solver = om.NewtonSolver()
+ model.linear_solver = om.ScipyKrylov(assemble_jac=True)
model.options['assembled_jac_type'] = 'dense'
model.nonlinear_solver.options['solve_subsystems'] = True
@@ -328,21 +326,21 @@ def test_solve_subsystems_basic(self):
assert_rel_error(self, prob['g2.y2'], 0.80, .00001)
def test_solve_subsystems_basic_csc(self):
- prob = Problem(model=DoubleSellar())
+ prob = om.Problem(model=DoubleSellar())
model = prob.model
g1 = model.g1
- g1.nonlinear_solver = NewtonSolver(rtol=1.0e-5)
+ g1.nonlinear_solver = om.NewtonSolver(rtol=1.0e-5)
g1.options['assembled_jac_type'] = 'dense'
- g1.linear_solver = DirectSolver(assemble_jac=True)
+ g1.linear_solver = om.DirectSolver(assemble_jac=True)
g2 = model.g2
- g2.nonlinear_solver = NewtonSolver(rtol=1.0e-5)
- g2.linear_solver = DirectSolver(assemble_jac=True)
+ g2.nonlinear_solver = om.NewtonSolver(rtol=1.0e-5)
+ g2.linear_solver = om.DirectSolver(assemble_jac=True)
g2.options['assembled_jac_type'] = 'dense'
- model.nonlinear_solver = NewtonSolver(solve_subsystems=True)
- model.linear_solver = ScipyKrylov(assemble_jac=True)
+ model.nonlinear_solver = om.NewtonSolver(solve_subsystems=True)
+ model.linear_solver = om.ScipyKrylov(assemble_jac=True)
prob.setup()
prob.run_model()
@@ -353,19 +351,19 @@ def test_solve_subsystems_basic_csc(self):
assert_rel_error(self, prob['g2.y2'], 0.80, .00001)
def test_solve_subsystems_basic_dense_jac(self):
- prob = Problem(model=DoubleSellar())
+ prob = om.Problem(model=DoubleSellar())
model = prob.model
g1 = model.g1
- g1.nonlinear_solver = NewtonSolver(rtol=1.0e-5)
- g1.linear_solver = DirectSolver()
+ g1.nonlinear_solver = om.NewtonSolver(rtol=1.0e-5)
+ g1.linear_solver = om.DirectSolver()
g2 = model.g2
- g2.nonlinear_solver = NewtonSolver(rtol=1.0e-5)
- g2.linear_solver = DirectSolver()
+ g2.nonlinear_solver = om.NewtonSolver(rtol=1.0e-5)
+ g2.linear_solver = om.DirectSolver()
- model.nonlinear_solver = NewtonSolver(solve_subsystems=True)
- model.linear_solver = ScipyKrylov(assemble_jac=True)
+ model.nonlinear_solver = om.NewtonSolver(solve_subsystems=True)
+ model.linear_solver = om.ScipyKrylov(assemble_jac=True)
model.options['assembled_jac_type'] = 'dense'
prob.setup()
@@ -377,19 +375,19 @@ def test_solve_subsystems_basic_dense_jac(self):
assert_rel_error(self, prob['g2.y2'], 0.80, .00001)
def test_solve_subsystems_basic_dense_jac_scaling(self):
- prob = Problem(model=DoubleSellar(units=None, scaling=True))
+ prob = om.Problem(model=DoubleSellar(units=None, scaling=True))
model = prob.model
g1 = model.g1
- g1.nonlinear_solver = NewtonSolver(rtol=1.0e-5)
- g1.linear_solver = DirectSolver()
+ g1.nonlinear_solver = om.NewtonSolver(rtol=1.0e-5)
+ g1.linear_solver = om.DirectSolver()
g2 = model.g2
- g2.nonlinear_solver = NewtonSolver(rtol=1.0e-5)
- g2.linear_solver = DirectSolver()
+ g2.nonlinear_solver = om.NewtonSolver(rtol=1.0e-5)
+ g2.linear_solver = om.DirectSolver()
- model.nonlinear_solver = NewtonSolver(solve_subsystems=True)
- model.linear_solver = ScipyKrylov(assemble_jac=True)
+ model.nonlinear_solver = om.NewtonSolver(solve_subsystems=True)
+ model.linear_solver = om.ScipyKrylov(assemble_jac=True)
model.options['assembled_jac_type'] = 'dense'
prob.setup()
@@ -401,19 +399,19 @@ def test_solve_subsystems_basic_dense_jac_scaling(self):
assert_rel_error(self, prob['g2.y2'], 0.80, .00001)
def test_solve_subsystems_basic_dense_jac_units_scaling(self):
- prob = Problem(model=DoubleSellar(units=True, scaling=True))
+ prob = om.Problem(model=DoubleSellar(units=True, scaling=True))
model = prob.model
g1 = model.g1
- g1.nonlinear_solver = NewtonSolver(rtol=1.0e-5)
- g1.linear_solver = DirectSolver()
+ g1.nonlinear_solver = om.NewtonSolver(rtol=1.0e-5)
+ g1.linear_solver = om.DirectSolver()
g2 = model.g2
- g2.nonlinear_solver = NewtonSolver(rtol=1.0e-5)
- g2.linear_solver = DirectSolver()
+ g2.nonlinear_solver = om.NewtonSolver(rtol=1.0e-5)
+ g2.linear_solver = om.DirectSolver()
- model.nonlinear_solver = NewtonSolver(solve_subsystems=True)
- model.linear_solver = ScipyKrylov(assemble_jac=True)
+ model.nonlinear_solver = om.NewtonSolver(solve_subsystems=True)
+ model.linear_solver = om.ScipyKrylov(assemble_jac=True)
model.options['assembled_jac_type'] = 'dense'
prob.setup()
@@ -425,19 +423,19 @@ def test_solve_subsystems_basic_dense_jac_units_scaling(self):
assert_rel_error(self, prob['g2.y2'], 0.80, .00001)
def test_solve_subsystems_assembled_jac_top(self):
- prob = Problem(model=DoubleSellar())
+ prob = om.Problem(model=DoubleSellar())
model = prob.model
g1 = model.g1
- g1.nonlinear_solver = NewtonSolver(rtol=1.0e-5)
- g1.linear_solver = DirectSolver()
+ g1.nonlinear_solver = om.NewtonSolver(rtol=1.0e-5)
+ g1.linear_solver = om.DirectSolver()
g2 = model.g2
- g2.nonlinear_solver = NewtonSolver(rtol=1.0e-5)
- g2.linear_solver = DirectSolver()
+ g2.nonlinear_solver = om.NewtonSolver(rtol=1.0e-5)
+ g2.linear_solver = om.DirectSolver()
- model.nonlinear_solver = NewtonSolver(solve_subsystems=True)
- model.linear_solver = ScipyKrylov(assemble_jac=True)
+ model.nonlinear_solver = om.NewtonSolver(solve_subsystems=True)
+ model.linear_solver = om.ScipyKrylov(assemble_jac=True)
model.options['assembled_jac_type'] = 'dense'
prob.setup()
@@ -449,19 +447,19 @@ def test_solve_subsystems_assembled_jac_top(self):
assert_rel_error(self, prob['g2.y2'], 0.80, .00001)
def test_solve_subsystems_assembled_jac_top_csc(self):
- prob = Problem(model=DoubleSellar())
+ prob = om.Problem(model=DoubleSellar())
model = prob.model
g1 = model.g1
- g1.nonlinear_solver = NewtonSolver(rtol=1.0e-5)
- g1.linear_solver = DirectSolver()
+ g1.nonlinear_solver = om.NewtonSolver(rtol=1.0e-5)
+ g1.linear_solver = om.DirectSolver()
g2 = model.g2
- g2.nonlinear_solver = NewtonSolver(rtol=1.0e-5)
- g2.linear_solver = DirectSolver()
+ g2.nonlinear_solver = om.NewtonSolver(rtol=1.0e-5)
+ g2.linear_solver = om.DirectSolver()
- model.nonlinear_solver = NewtonSolver(solve_subsystems=True)
- model.linear_solver = ScipyKrylov(assemble_jac=True)
+ model.nonlinear_solver = om.NewtonSolver(solve_subsystems=True)
+ model.linear_solver = om.ScipyKrylov(assemble_jac=True)
prob.setup()
prob.run_model()
@@ -472,19 +470,19 @@ def test_solve_subsystems_assembled_jac_top_csc(self):
assert_rel_error(self, prob['g2.y2'], 0.80, .00001)
def test_solve_subsystems_assembled_jac_top_implicit(self):
- prob = Problem(model=DoubleSellarImplicit())
+ prob = om.Problem(model=DoubleSellarImplicit())
model = prob.model
g1 = model.g1
- g1.nonlinear_solver = NewtonSolver(rtol=1.0e-5)
- g1.linear_solver = DirectSolver()
+ g1.nonlinear_solver = om.NewtonSolver(rtol=1.0e-5)
+ g1.linear_solver = om.DirectSolver()
g2 = model.g2
- g2.nonlinear_solver = NewtonSolver(rtol=1.0e-5)
- g2.linear_solver = DirectSolver()
+ g2.nonlinear_solver = om.NewtonSolver(rtol=1.0e-5)
+ g2.linear_solver = om.DirectSolver()
- model.nonlinear_solver = NewtonSolver(solve_subsystems=True)
- model.linear_solver = ScipyKrylov(assemble_jac=True)
+ model.nonlinear_solver = om.NewtonSolver(solve_subsystems=True)
+ model.linear_solver = om.ScipyKrylov(assemble_jac=True)
model.options['assembled_jac_type'] = 'dense'
prob.setup()
@@ -496,19 +494,19 @@ def test_solve_subsystems_assembled_jac_top_implicit(self):
assert_rel_error(self, prob['g2.y2'], 0.80, .00001)
def test_solve_subsystems_assembled_jac_top_implicit_scaling(self):
- prob = Problem(model=DoubleSellarImplicit(scaling=True))
+ prob = om.Problem(model=DoubleSellarImplicit(scaling=True))
model = prob.model
g1 = model.g1
- g1.nonlinear_solver = NewtonSolver(rtol=1.0e-5)
- g1.linear_solver = DirectSolver()
+ g1.nonlinear_solver = om.NewtonSolver(rtol=1.0e-5)
+ g1.linear_solver = om.DirectSolver()
g2 = model.g2
- g2.nonlinear_solver = NewtonSolver(rtol=1.0e-5)
- g2.linear_solver = DirectSolver()
+ g2.nonlinear_solver = om.NewtonSolver(rtol=1.0e-5)
+ g2.linear_solver = om.DirectSolver()
- model.nonlinear_solver = NewtonSolver(solve_subsystems=True)
- model.linear_solver = ScipyKrylov(assemble_jac=True)
+ model.nonlinear_solver = om.NewtonSolver(solve_subsystems=True)
+ model.linear_solver = om.ScipyKrylov(assemble_jac=True)
model.options['assembled_jac_type'] = 'dense'
prob.setup()
@@ -520,19 +518,19 @@ def test_solve_subsystems_assembled_jac_top_implicit_scaling(self):
assert_rel_error(self, prob['g2.y2'], 0.80, .00001)
def test_solve_subsystems_assembled_jac_top_implicit_scaling_units(self):
- prob = Problem(model=DoubleSellarImplicit(units=True, scaling=True))
+ prob = om.Problem(model=DoubleSellarImplicit(units=True, scaling=True))
model = prob.model
g1 = model.g1
- g1.nonlinear_solver = NewtonSolver(rtol=1.0e-5)
- g1.linear_solver = DirectSolver()
+ g1.nonlinear_solver = om.NewtonSolver(rtol=1.0e-5)
+ g1.linear_solver = om.DirectSolver()
g2 = model.g2
- g2.nonlinear_solver = NewtonSolver(rtol=1.0e-5)
- g2.linear_solver = DirectSolver()
+ g2.nonlinear_solver = om.NewtonSolver(rtol=1.0e-5)
+ g2.linear_solver = om.DirectSolver()
- model.nonlinear_solver = NewtonSolver(solve_subsystems=True)
- model.linear_solver = ScipyKrylov(assemble_jac=True)
+ model.nonlinear_solver = om.NewtonSolver(solve_subsystems=True)
+ model.linear_solver = om.ScipyKrylov(assemble_jac=True)
model.options['assembled_jac_type'] = 'dense'
prob.setup()
@@ -544,20 +542,20 @@ def test_solve_subsystems_assembled_jac_top_implicit_scaling_units(self):
assert_rel_error(self, prob['g2.y2'], 0.80, .00001)
def test_solve_subsystems_assembled_jac_subgroup(self):
- prob = Problem(model=DoubleSellar())
+ prob = om.Problem(model=DoubleSellar())
model = prob.model
g1 = model.g1
- g1.nonlinear_solver = NewtonSolver(rtol=1.0e-5)
- g1.linear_solver = DirectSolver(assemble_jac=True)
+ g1.nonlinear_solver = om.NewtonSolver(rtol=1.0e-5)
+ g1.linear_solver = om.DirectSolver(assemble_jac=True)
model.options['assembled_jac_type'] = 'dense'
g2 = model.g2
- g2.nonlinear_solver = NewtonSolver(rtol=1.0e-5)
- g2.linear_solver = DirectSolver()
+ g2.nonlinear_solver = om.NewtonSolver(rtol=1.0e-5)
+ g2.linear_solver = om.DirectSolver()
- model.nonlinear_solver = NewtonSolver()
- model.linear_solver = ScipyKrylov()
+ model.nonlinear_solver = om.NewtonSolver()
+ model.linear_solver = om.ScipyKrylov()
prob.setup()
prob.run_model()
@@ -571,7 +569,7 @@ def test_solve_subsystems_internals(self):
# Here we test that this feature is doing what it should do by counting the
# number of calls in various places.
- class CountNewton(NewtonSolver):
+ class CountNewton(om.NewtonSolver):
""" This version of Newton also counts how many times it runs in total."""
def __init__(self, **kwargs):
@@ -582,7 +580,7 @@ def _single_iteration(self):
super(CountNewton, self)._single_iteration()
self.total_count += 1
- class CountDS(DirectSolver):
+ class CountDS(om.DirectSolver):
""" This version of Newton also counts how many times it linearizes"""
def __init__(self, **kwargs):
@@ -593,7 +591,7 @@ def _linearize(self):
super(CountDS, self)._linearize()
self.lin_count += 1
- prob = Problem(model=DoubleSellar())
+ prob = om.Problem(model=DoubleSellar())
model = prob.model
# each SubSellar group converges itself
@@ -605,11 +603,11 @@ def _linearize(self):
g2 = model.g2
g2.nonlinear_solver = CountNewton()
g2.nonlinear_solver.options['rtol'] = 1.0e-5
- g2.linear_solver = DirectSolver()
+ g2.linear_solver = om.DirectSolver()
# Converge the outer loop with Gauss Seidel, with a looser tolerance.
- model.nonlinear_solver = NewtonSolver()
- model.linear_solver = ScipyKrylov()
+ model.nonlinear_solver = om.NewtonSolver()
+ model.linear_solver = om.ScipyKrylov()
# Enfore behavior: max_sub_solves = 0 means we run once during init
@@ -626,7 +624,7 @@ def _linearize(self):
self.assertEqual(g2.nonlinear_solver.total_count, 2)
self.assertEqual(g1.linear_solver.lin_count, 2)
- prob = Problem(model=DoubleSellar())
+ prob = om.Problem(model=DoubleSellar())
model = prob.model
# each SubSellar group converges itself
@@ -638,11 +636,11 @@ def _linearize(self):
g2 = model.g2
g2.nonlinear_solver = CountNewton()
g2.nonlinear_solver.options['rtol'] = 1.0e-5
- g2.linear_solver = DirectSolver()
+ g2.linear_solver = om.DirectSolver()
# Converge the outer loop with Gauss Seidel, with a looser tolerance.
- model.nonlinear_solver = NewtonSolver()
- model.linear_solver = ScipyKrylov()
+ model.nonlinear_solver = om.NewtonSolver()
+ model.linear_solver = om.ScipyKrylov()
# Enforce Behavior: baseline
@@ -659,7 +657,7 @@ def _linearize(self):
self.assertEqual(g2.nonlinear_solver.total_count, 5)
self.assertEqual(g1.linear_solver.lin_count, 5)
- prob = Problem(model=DoubleSellar())
+ prob = om.Problem(model=DoubleSellar())
model = prob.model
# each SubSellar group converges itself
@@ -671,11 +669,11 @@ def _linearize(self):
g2 = model.g2
g2.nonlinear_solver = CountNewton()
g2.nonlinear_solver.options['rtol'] = 1.0e-5
- g2.linear_solver = DirectSolver()
+ g2.linear_solver = om.DirectSolver()
# Converge the outer loop with Gauss Seidel, with a looser tolerance.
- model.nonlinear_solver = NewtonSolver()
- model.linear_solver = ScipyKrylov()
+ model.nonlinear_solver = om.NewtonSolver()
+ model.linear_solver = om.ScipyKrylov()
# Enfore behavior: max_sub_solves = 1 means we run during init and first iteration of iter_execute
@@ -696,7 +694,7 @@ def test_maxiter_one(self):
# Fix bug when maxiter was set to 1.
# This bug caused linearize to run before apply in this case.
- class ImpComp(ImplicitComponent):
+ class ImpComp(om.ImplicitComponent):
def setup(self):
self.add_input('a', val=1.)
@@ -721,13 +719,13 @@ def linearize(self, inputs, outputs, jacobian):
if not self.applied:
raise RuntimeError("Bug! Linearize called before Apply!")
- prob = Problem()
+ prob = om.Problem()
root = prob.model
- root.add_subsystem('p1', IndepVarComp('a', 1.0))
+ root.add_subsystem('p1', om.IndepVarComp('a', 1.0))
root.add_subsystem('comp', ImpComp())
root.connect('p1.a', 'comp.a')
- root.nonlinear_solver = NewtonSolver()
+ root.nonlinear_solver = om.NewtonSolver()
root.nonlinear_solver.options['maxiter'] = 1
prob.set_solver_print(level=0)
@@ -737,17 +735,18 @@ def linearize(self, inputs, outputs, jacobian):
def test_err_on_maxiter(self):
# Raise AnalysisError when it fails to converge
- prob = Problem()
- nlsolver = NewtonSolver()
- prob.model = SellarDerivatives(nonlinear_solver=nlsolver, linear_solver=LinearBlockGS())
+ prob = om.Problem()
+ nlsolver = om.NewtonSolver()
+ prob.model = SellarDerivatives(nonlinear_solver=nlsolver,
+ linear_solver=om.LinearBlockGS())
nlsolver.options['err_on_maxiter'] = True
nlsolver.options['maxiter'] = 1
- prob.setup(check=False)
+ prob.setup()
prob.set_solver_print(level=0)
- with self.assertRaises(AnalysisError) as context:
+ with self.assertRaises(om.AnalysisError) as context:
prob.run_driver()
msg = "Solver 'NL: Newton' on system '' failed to converge in 1 iterations."
@@ -755,7 +754,7 @@ def test_err_on_maxiter(self):
def test_relevancy_for_newton(self):
- class TestImplCompSimple(ImplicitComponent):
+ class TestImplCompSimple(om.ImplicitComponent):
def setup(self):
self.add_input('a', val=1.)
@@ -773,12 +772,12 @@ def linearize(self, inputs, outputs, jacobian):
jacobian['x', 'a'] = -2 * inputs['a'] * outputs['x']**2
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', 3.0))
+ model.add_subsystem('p1', om.IndepVarComp('x', 3.0))
model.add_subsystem('icomp', TestImplCompSimple())
- model.add_subsystem('ecomp', ExecComp('y = x*p', p=1.0))
+ model.add_subsystem('ecomp', om.ExecComp('y = x*p', p=1.0))
model.connect('p1.x', 'ecomp.x')
model.connect('icomp.x', 'ecomp.p')
@@ -786,10 +785,10 @@ def linearize(self, inputs, outputs, jacobian):
model.add_design_var('p1.x', 3.0)
model.add_objective('ecomp.y')
- model.nonlinear_solver = NewtonSolver()
- model.linear_solver = ScipyKrylov()
+ model.nonlinear_solver = om.NewtonSolver()
+ model.linear_solver = om.ScipyKrylov()
- prob.setup(check=False)
+ prob.setup()
prob.run_model()
@@ -802,28 +801,28 @@ class TestNewtonFeatures(unittest.TestCase):
def test_feature_basic(self):
import numpy as np
- from openmdao.api import Problem, IndepVarComp, NewtonSolver, LinearBlockGS, ExecComp, DirectSolver
+ import openmdao.api as om
from openmdao.test_suite.components.sellar import SellarDis1withDerivatives, SellarDis2withDerivatives
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('px', IndepVarComp('x', 1.0), promotes=['x'])
- model.add_subsystem('pz', IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
+ model.add_subsystem('px', om.IndepVarComp('x', 1.0), promotes=['x'])
+ model.add_subsystem('pz', om.IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
model.add_subsystem('d1', SellarDis1withDerivatives(), promotes=['x', 'z', 'y1', 'y2'])
model.add_subsystem('d2', SellarDis2withDerivatives(), promotes=['z', 'y1', 'y2'])
- model.add_subsystem('obj_cmp', ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
- z=np.array([0.0, 0.0]), x=0.0),
+ model.add_subsystem('obj_cmp', om.ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
+ z=np.array([0.0, 0.0]), x=0.0),
promotes=['obj', 'x', 'z', 'y1', 'y2'])
- model.add_subsystem('con_cmp1', ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
- model.add_subsystem('con_cmp2', ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
+ model.add_subsystem('con_cmp1', om.ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
+ model.add_subsystem('con_cmp2', om.ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
- model.linear_solver = DirectSolver()
+ model.linear_solver = om.DirectSolver()
- model.nonlinear_solver = NewtonSolver()
+ model.nonlinear_solver = om.NewtonSolver()
prob.setup()
@@ -835,28 +834,28 @@ def test_feature_basic(self):
def test_feature_maxiter(self):
import numpy as np
- from openmdao.api import Problem, Group, IndepVarComp, NewtonSolver, LinearBlockGS, ExecComp, DirectSolver
+ import openmdao.api as om
from openmdao.test_suite.components.sellar import SellarDis1withDerivatives, SellarDis2withDerivatives
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('px', IndepVarComp('x', 1.0), promotes=['x'])
- model.add_subsystem('pz', IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
+ model.add_subsystem('px', om.IndepVarComp('x', 1.0), promotes=['x'])
+ model.add_subsystem('pz', om.IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
model.add_subsystem('d1', SellarDis1withDerivatives(), promotes=['x', 'z', 'y1', 'y2'])
model.add_subsystem('d2', SellarDis2withDerivatives(), promotes=['z', 'y1', 'y2'])
- model.add_subsystem('obj_cmp', ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
+ model.add_subsystem('obj_cmp', om.ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
z=np.array([0.0, 0.0]), x=0.0),
promotes=['obj', 'x', 'z', 'y1', 'y2'])
- model.add_subsystem('con_cmp1', ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
- model.add_subsystem('con_cmp2', ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
+ model.add_subsystem('con_cmp1', om.ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
+ model.add_subsystem('con_cmp2', om.ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
- model.linear_solver = DirectSolver()
+ model.linear_solver = om.DirectSolver()
- nlgbs = model.nonlinear_solver = NewtonSolver()
+ nlgbs = model.nonlinear_solver = om.NewtonSolver()
nlgbs.options['maxiter'] = 2
prob.setup()
@@ -869,28 +868,28 @@ def test_feature_maxiter(self):
def test_feature_rtol(self):
import numpy as np
- from openmdao.api import Problem, Group, IndepVarComp, NewtonSolver, LinearBlockGS, ExecComp, DirectSolver
+ import openmdao.api as om
from openmdao.test_suite.components.sellar import SellarDis1withDerivatives, SellarDis2withDerivatives
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('px', IndepVarComp('x', 1.0), promotes=['x'])
- model.add_subsystem('pz', IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
+ model.add_subsystem('px', om.IndepVarComp('x', 1.0), promotes=['x'])
+ model.add_subsystem('pz', om.IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
model.add_subsystem('d1', SellarDis1withDerivatives(), promotes=['x', 'z', 'y1', 'y2'])
model.add_subsystem('d2', SellarDis2withDerivatives(), promotes=['z', 'y1', 'y2'])
- model.add_subsystem('obj_cmp', ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
+ model.add_subsystem('obj_cmp', om.ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
z=np.array([0.0, 0.0]), x=0.0),
promotes=['obj', 'x', 'z', 'y1', 'y2'])
- model.add_subsystem('con_cmp1', ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
- model.add_subsystem('con_cmp2', ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
+ model.add_subsystem('con_cmp1', om.ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
+ model.add_subsystem('con_cmp2', om.ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
- model.linear_solver = DirectSolver()
+ model.linear_solver = om.DirectSolver()
- nlgbs = model.nonlinear_solver = NewtonSolver()
+ nlgbs = model.nonlinear_solver = om.NewtonSolver()
nlgbs.options['rtol'] = 1e-3
prob.setup()
@@ -903,28 +902,28 @@ def test_feature_rtol(self):
def test_feature_atol(self):
import numpy as np
- from openmdao.api import Problem, Group, IndepVarComp, NewtonSolver, LinearBlockGS, ExecComp, DirectSolver
+ import openmdao.api as om
from openmdao.test_suite.components.sellar import SellarDis1withDerivatives, SellarDis2withDerivatives
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('px', IndepVarComp('x', 1.0), promotes=['x'])
- model.add_subsystem('pz', IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
+ model.add_subsystem('px', om.IndepVarComp('x', 1.0), promotes=['x'])
+ model.add_subsystem('pz', om.IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
model.add_subsystem('d1', SellarDis1withDerivatives(), promotes=['x', 'z', 'y1', 'y2'])
model.add_subsystem('d2', SellarDis2withDerivatives(), promotes=['z', 'y1', 'y2'])
- model.add_subsystem('obj_cmp', ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
+ model.add_subsystem('obj_cmp', om.ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
z=np.array([0.0, 0.0]), x=0.0),
promotes=['obj', 'x', 'z', 'y1', 'y2'])
- model.add_subsystem('con_cmp1', ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
- model.add_subsystem('con_cmp2', ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
+ model.add_subsystem('con_cmp1', om.ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
+ model.add_subsystem('con_cmp2', om.ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
- model.linear_solver = DirectSolver()
+ model.linear_solver = om.DirectSolver()
- nlgbs = model.nonlinear_solver = NewtonSolver()
+ nlgbs = model.nonlinear_solver = om.NewtonSolver()
nlgbs.options['atol'] = 1e-4
prob.setup()
@@ -937,32 +936,31 @@ def test_feature_atol(self):
def test_feature_linear_solver(self):
import numpy as np
- from openmdao.api import Problem, Group, IndepVarComp, NewtonSolver, LinearBlockGS, \
- ExecComp, DirectSolver
+ import openmdao.api as om
from openmdao.test_suite.components.sellar import SellarDis1withDerivatives, \
SellarDis2withDerivatives
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('px', IndepVarComp('x', 1.0), promotes=['x'])
- model.add_subsystem('pz', IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
+ model.add_subsystem('px', om.IndepVarComp('x', 1.0), promotes=['x'])
+ model.add_subsystem('pz', om.IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
model.add_subsystem('d1', SellarDis1withDerivatives(), promotes=['x', 'z', 'y1', 'y2'])
model.add_subsystem('d2', SellarDis2withDerivatives(), promotes=['z', 'y1', 'y2'])
- model.add_subsystem('obj_cmp', ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
+ model.add_subsystem('obj_cmp', om.ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
z=np.array([0.0, 0.0]), x=0.0),
promotes=['obj', 'x', 'z', 'y1', 'y2'])
- model.add_subsystem('con_cmp1', ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
- model.add_subsystem('con_cmp2', ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
+ model.add_subsystem('con_cmp1', om.ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
+ model.add_subsystem('con_cmp2', om.ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
- model.linear_solver = LinearBlockGS()
+ model.linear_solver = om.LinearBlockGS()
- nlgbs = model.nonlinear_solver = NewtonSolver()
+ nlgbs = model.nonlinear_solver = om.NewtonSolver()
- nlgbs.linear_solver = DirectSolver()
+ nlgbs.linear_solver = om.DirectSolver()
prob.setup()
@@ -974,10 +972,10 @@ def test_feature_linear_solver(self):
def test_feature_max_sub_solves(self):
import numpy as np
- from openmdao.api import Problem, Group, IndepVarComp, NewtonSolver, LinearBlockGS, ExecComp, DirectSolver, ScipyKrylov
+ import openmdao.api as om
from openmdao.test_suite.components.double_sellar import SubSellar
- prob = Problem()
+ prob = om.Problem()
model = prob.model
model.add_subsystem('g1', SubSellar())
@@ -987,21 +985,21 @@ def test_feature_max_sub_solves(self):
model.connect('g2.y2', 'g1.x')
# Converge the outer loop with Gauss Seidel, with a looser tolerance.
- model.nonlinear_solver = NewtonSolver()
- model.linear_solver = DirectSolver()
+ model.nonlinear_solver = om.NewtonSolver()
+ model.linear_solver = om.DirectSolver()
g1 = model.g1
- g1.nonlinear_solver = NewtonSolver()
+ g1.nonlinear_solver = om.NewtonSolver()
g1.nonlinear_solver.options['rtol'] = 1.0e-5
- g1.linear_solver = DirectSolver()
+ g1.linear_solver = om.DirectSolver()
g2 = model.g2
- g2.nonlinear_solver = NewtonSolver()
+ g2.nonlinear_solver = om.NewtonSolver()
g2.nonlinear_solver.options['rtol'] = 1.0e-5
- g2.linear_solver = DirectSolver()
+ g2.linear_solver = om.DirectSolver()
- model.nonlinear_solver = NewtonSolver()
- model.linear_solver = ScipyKrylov()
+ model.nonlinear_solver = om.NewtonSolver()
+ model.linear_solver = om.ScipyKrylov()
model.nonlinear_solver.options['solve_subsystems'] = True
model.nonlinear_solver.options['max_sub_solves'] = 0
@@ -1012,29 +1010,28 @@ def test_feature_max_sub_solves(self):
def test_feature_err_on_maxiter(self):
import numpy as np
- from openmdao.api import Problem, Group, IndepVarComp, NewtonSolver, LinearBlockGS, \
- ExecComp, AnalysisError, DirectSolver
+ import openmdao.api as om
from openmdao.test_suite.components.sellar import SellarDis1withDerivatives, SellarDis2withDerivatives
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('px', IndepVarComp('x', 1.0), promotes=['x'])
- model.add_subsystem('pz', IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
+ model.add_subsystem('px', om.IndepVarComp('x', 1.0), promotes=['x'])
+ model.add_subsystem('pz', om.IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
model.add_subsystem('d1', SellarDis1withDerivatives(), promotes=['x', 'z', 'y1', 'y2'])
model.add_subsystem('d2', SellarDis2withDerivatives(), promotes=['z', 'y1', 'y2'])
- model.add_subsystem('obj_cmp', ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
+ model.add_subsystem('obj_cmp', om.ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
z=np.array([0.0, 0.0]), x=0.0),
promotes=['obj', 'x', 'z', 'y1', 'y2'])
- model.add_subsystem('con_cmp1', ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
- model.add_subsystem('con_cmp2', ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
+ model.add_subsystem('con_cmp1', om.ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
+ model.add_subsystem('con_cmp2', om.ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
- model.linear_solver = DirectSolver()
+ model.linear_solver = om.DirectSolver()
- nlgbs = model.nonlinear_solver = NewtonSolver()
+ nlgbs = model.nonlinear_solver = om.NewtonSolver()
nlgbs.options['maxiter'] = 1
nlgbs.options['err_on_maxiter'] = True
@@ -1042,28 +1039,28 @@ def test_feature_err_on_maxiter(self):
try:
prob.run_model()
- except AnalysisError:
+ except om.AnalysisError:
pass
def test_solve_subsystems_basic(self):
- from openmdao.api import Problem, NewtonSolver, DirectSolver, ScipyKrylov
+ import openmdao.api as om
from openmdao.test_suite.components.double_sellar import DoubleSellar
- prob = Problem(model=DoubleSellar())
+ prob = om.Problem(model=DoubleSellar())
model = prob.model
g1 = model.g1
- g1.nonlinear_solver = NewtonSolver()
+ g1.nonlinear_solver = om.NewtonSolver()
g1.nonlinear_solver.options['rtol'] = 1.0e-5
- g1.linear_solver = DirectSolver()
+ g1.linear_solver = om.DirectSolver()
g2 = model.g2
- g2.nonlinear_solver = NewtonSolver()
+ g2.nonlinear_solver = om.NewtonSolver()
g2.nonlinear_solver.options['rtol'] = 1.0e-5
- g2.linear_solver = DirectSolver()
+ g2.linear_solver = om.DirectSolver()
- model.nonlinear_solver = NewtonSolver()
- model.linear_solver = ScipyKrylov()
+ model.nonlinear_solver = om.NewtonSolver()
+ model.linear_solver = om.ScipyKrylov()
model.nonlinear_solver.options['solve_subsystems'] = True
diff --git a/openmdao/solvers/nonlinear/tests/test_nonlinear_block_gs.py b/openmdao/solvers/nonlinear/tests/test_nonlinear_block_gs.py
index 2143988663..353e5065a1 100644
--- a/openmdao/solvers/nonlinear/tests/test_nonlinear_block_gs.py
+++ b/openmdao/solvers/nonlinear/tests/test_nonlinear_block_gs.py
@@ -4,8 +4,7 @@
import numpy as np
-from openmdao.api import Problem, NonlinearBlockGS, Group, ScipyKrylov, IndepVarComp, \
- ExecComp, AnalysisError
+import openmdao.api as om
from openmdao.utils.assert_utils import assert_rel_error
from openmdao.test_suite.components.paraboloid import Paraboloid
from openmdao.test_suite.components.sellar import SellarDerivatives, \
@@ -17,26 +16,26 @@ class TestNLBGaussSeidel(unittest.TestCase):
def test_feature_set_options(self):
import numpy as np
- from openmdao.api import Problem, IndepVarComp, ExecComp, NonlinearBlockGS
+ import openmdao.api as om
from openmdao.test_suite.components.sellar import SellarDis1withDerivatives, SellarDis2withDerivatives
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('px', IndepVarComp('x', 1.0), promotes=['x'])
- model.add_subsystem('pz', IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
+ model.add_subsystem('px', om.IndepVarComp('x', 1.0), promotes=['x'])
+ model.add_subsystem('pz', om.IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
model.add_subsystem('d1', SellarDis1withDerivatives(), promotes=['x', 'z', 'y1', 'y2'])
model.add_subsystem('d2', SellarDis2withDerivatives(), promotes=['z', 'y1', 'y2'])
- model.add_subsystem('obj_cmp', ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
- z=np.array([0.0, 0.0]), x=0.0),
+ model.add_subsystem('obj_cmp', om.ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
+ z=np.array([0.0, 0.0]), x=0.0),
promotes=['obj', 'x', 'z', 'y1', 'y2'])
- model.add_subsystem('con_cmp1', ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
- model.add_subsystem('con_cmp2', ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
+ model.add_subsystem('con_cmp1', om.ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
+ model.add_subsystem('con_cmp2', om.ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
- nlgbs = model.nonlinear_solver = NonlinearBlockGS()
+ nlgbs = model.nonlinear_solver = om.NonlinearBlockGS()
nlgbs.options['maxiter'] = 20
nlgbs.options['atol'] = 1e-6
@@ -52,26 +51,26 @@ def test_feature_set_options(self):
def test_feature_basic(self):
import numpy as np
- from openmdao.api import Problem, IndepVarComp, ExecComp, NonlinearBlockGS
+ import openmdao.api as om
from openmdao.test_suite.components.sellar import SellarDis1withDerivatives, SellarDis2withDerivatives
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('px', IndepVarComp('x', 1.0), promotes=['x'])
- model.add_subsystem('pz', IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
+ model.add_subsystem('px', om.IndepVarComp('x', 1.0), promotes=['x'])
+ model.add_subsystem('pz', om.IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
model.add_subsystem('d1', SellarDis1withDerivatives(), promotes=['x', 'z', 'y1', 'y2'])
model.add_subsystem('d2', SellarDis2withDerivatives(), promotes=['z', 'y1', 'y2'])
- model.add_subsystem('obj_cmp', ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
- z=np.array([0.0, 0.0]), x=0.0),
+ model.add_subsystem('obj_cmp', om.ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
+ z=np.array([0.0, 0.0]), x=0.0),
promotes=['obj', 'x', 'z', 'y1', 'y2'])
- model.add_subsystem('con_cmp1', ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
- model.add_subsystem('con_cmp2', ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
+ model.add_subsystem('con_cmp1', om.ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
+ model.add_subsystem('con_cmp2', om.ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
- model.nonlinear_solver = NonlinearBlockGS()
+ model.nonlinear_solver = om.NonlinearBlockGS()
prob.setup()
@@ -83,26 +82,26 @@ def test_feature_basic(self):
def test_feature_maxiter(self):
import numpy as np
- from openmdao.api import Problem, IndepVarComp, ExecComp, NonlinearBlockGS
+ import openmdao.api as om
from openmdao.test_suite.components.sellar import SellarDis1withDerivatives, SellarDis2withDerivatives
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('px', IndepVarComp('x', 1.0), promotes=['x'])
- model.add_subsystem('pz', IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
+ model.add_subsystem('px', om.IndepVarComp('x', 1.0), promotes=['x'])
+ model.add_subsystem('pz', om.IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
model.add_subsystem('d1', SellarDis1withDerivatives(), promotes=['x', 'z', 'y1', 'y2'])
model.add_subsystem('d2', SellarDis2withDerivatives(), promotes=['z', 'y1', 'y2'])
- model.add_subsystem('obj_cmp', ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
- z=np.array([0.0, 0.0]), x=0.0),
+ model.add_subsystem('obj_cmp', om.ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
+ z=np.array([0.0, 0.0]), x=0.0),
promotes=['obj', 'x', 'z', 'y1', 'y2'])
- model.add_subsystem('con_cmp1', ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
- model.add_subsystem('con_cmp2', ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
+ model.add_subsystem('con_cmp1', om.ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
+ model.add_subsystem('con_cmp2', om.ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
- nlgbs = model.nonlinear_solver = NonlinearBlockGS()
+ nlgbs = model.nonlinear_solver = om.NonlinearBlockGS()
nlgbs.options['maxiter'] = 2
prob.setup()
@@ -115,26 +114,26 @@ def test_feature_maxiter(self):
def test_feature_rtol(self):
import numpy as np
- from openmdao.api import Problem, IndepVarComp, ExecComp, NonlinearBlockGS
+ import openmdao.api as om
from openmdao.test_suite.components.sellar import SellarDis1withDerivatives, SellarDis2withDerivatives, SellarDerivatives
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('px', IndepVarComp('x', 1.0), promotes=['x'])
- model.add_subsystem('pz', IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
+ model.add_subsystem('px', om.IndepVarComp('x', 1.0), promotes=['x'])
+ model.add_subsystem('pz', om.IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
model.add_subsystem('d1', SellarDis1withDerivatives(), promotes=['x', 'z', 'y1', 'y2'])
model.add_subsystem('d2', SellarDis2withDerivatives(), promotes=['z', 'y1', 'y2'])
- model.add_subsystem('obj_cmp', ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
- z=np.array([0.0, 0.0]), x=0.0),
+ model.add_subsystem('obj_cmp', om.ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
+ z=np.array([0.0, 0.0]), x=0.0),
promotes=['obj', 'x', 'z', 'y1', 'y2'])
- model.add_subsystem('con_cmp1', ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
- model.add_subsystem('con_cmp2', ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
+ model.add_subsystem('con_cmp1', om.ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
+ model.add_subsystem('con_cmp2', om.ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
- nlgbs = model.nonlinear_solver = NonlinearBlockGS()
+ nlgbs = model.nonlinear_solver = om.NonlinearBlockGS()
nlgbs.options['rtol'] = 1e-3
prob.setup()
@@ -147,26 +146,26 @@ def test_feature_rtol(self):
def test_feature_atol(self):
import numpy as np
- from openmdao.api import Problem, IndepVarComp, ExecComp, NonlinearBlockGS
+ import openmdao.api as om
from openmdao.test_suite.components.sellar import SellarDis1withDerivatives, SellarDis2withDerivatives
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('px', IndepVarComp('x', 1.0), promotes=['x'])
- model.add_subsystem('pz', IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
+ model.add_subsystem('px', om.IndepVarComp('x', 1.0), promotes=['x'])
+ model.add_subsystem('pz', om.IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
model.add_subsystem('d1', SellarDis1withDerivatives(), promotes=['x', 'z', 'y1', 'y2'])
model.add_subsystem('d2', SellarDis2withDerivatives(), promotes=['z', 'y1', 'y2'])
- model.add_subsystem('obj_cmp', ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
- z=np.array([0.0, 0.0]), x=0.0),
+ model.add_subsystem('obj_cmp', om.ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
+ z=np.array([0.0, 0.0]), x=0.0),
promotes=['obj', 'x', 'z', 'y1', 'y2'])
- model.add_subsystem('con_cmp1', ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
- model.add_subsystem('con_cmp2', ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
+ model.add_subsystem('con_cmp1', om.ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
+ model.add_subsystem('con_cmp2', om.ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
- nlgbs = model.nonlinear_solver = NonlinearBlockGS()
+ nlgbs = model.nonlinear_solver = om.NonlinearBlockGS()
nlgbs.options['atol'] = 1e-4
prob.setup()
@@ -179,25 +178,25 @@ def test_feature_atol(self):
def test_sellar(self):
# Basic sellar test.
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('px', IndepVarComp('x', 1.0), promotes=['x'])
- model.add_subsystem('pz', IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
+ model.add_subsystem('px', om.IndepVarComp('x', 1.0), promotes=['x'])
+ model.add_subsystem('pz', om.IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
model.add_subsystem('d1', SellarDis1withDerivatives(), promotes=['x', 'z', 'y1', 'y2'])
model.add_subsystem('d2', SellarDis2withDerivatives(), promotes=['z', 'y1', 'y2'])
- model.add_subsystem('obj_cmp', ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
- z=np.array([0.0, 0.0]), x=0.0),
+ model.add_subsystem('obj_cmp', om.ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
+ z=np.array([0.0, 0.0]), x=0.0),
promotes=['obj', 'x', 'z', 'y1', 'y2'])
- model.add_subsystem('con_cmp1', ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
- model.add_subsystem('con_cmp2', ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
+ model.add_subsystem('con_cmp1', om.ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
+ model.add_subsystem('con_cmp2', om.ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
- nlgbs = model.nonlinear_solver = NonlinearBlockGS()
+ nlgbs = model.nonlinear_solver = om.NonlinearBlockGS()
- prob.setup(check=False)
+ prob.setup()
prob.set_solver_print(level=0)
prob.run_model()
@@ -212,26 +211,26 @@ def test_sellar(self):
# With run_apply_linear, we execute the components more times.
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('px', IndepVarComp('x', 1.0), promotes=['x'])
- model.add_subsystem('pz', IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
+ model.add_subsystem('px', om.IndepVarComp('x', 1.0), promotes=['x'])
+ model.add_subsystem('pz', om.IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
model.add_subsystem('d1', SellarDis1withDerivatives(), promotes=['x', 'z', 'y1', 'y2'])
model.add_subsystem('d2', SellarDis2withDerivatives(), promotes=['z', 'y1', 'y2'])
- model.add_subsystem('obj_cmp', ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
- z=np.array([0.0, 0.0]), x=0.0),
+ model.add_subsystem('obj_cmp', om.ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
+ z=np.array([0.0, 0.0]), x=0.0),
promotes=['obj', 'x', 'z', 'y1', 'y2'])
- model.add_subsystem('con_cmp1', ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
- model.add_subsystem('con_cmp2', ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
+ model.add_subsystem('con_cmp1', om.ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
+ model.add_subsystem('con_cmp2', om.ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
- nlgbs = model.nonlinear_solver = NonlinearBlockGS()
+ nlgbs = model.nonlinear_solver = om.NonlinearBlockGS()
nlgbs.options['use_apply_nonlinear'] = True
- prob.setup(check=False)
+ prob.setup()
prob.set_solver_print(level=0)
prob.run_model()
@@ -247,32 +246,32 @@ def test_sellar(self):
def test_sellar_analysis_error(self):
# Tests Sellar behavior when AnalysisError is raised.
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('px', IndepVarComp('x', 1.0), promotes=['x'])
- model.add_subsystem('pz', IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
+ model.add_subsystem('px', om.IndepVarComp('x', 1.0), promotes=['x'])
+ model.add_subsystem('pz', om.IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
model.add_subsystem('d1', SellarDis1withDerivatives(), promotes=['x', 'z', 'y1', 'y2'])
model.add_subsystem('d2', SellarDis2withDerivatives(), promotes=['z', 'y1', 'y2'])
- model.add_subsystem('obj_cmp', ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
- z=np.array([0.0, 0.0]), x=0.0),
+ model.add_subsystem('obj_cmp', om.ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
+ z=np.array([0.0, 0.0]), x=0.0),
promotes=['obj', 'x', 'z', 'y1', 'y2'])
- model.add_subsystem('con_cmp1', ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
- model.add_subsystem('con_cmp2', ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
+ model.add_subsystem('con_cmp1', om.ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
+ model.add_subsystem('con_cmp2', om.ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
- nlgbs = model.nonlinear_solver = NonlinearBlockGS()
+ nlgbs = model.nonlinear_solver = om.NonlinearBlockGS()
nlgbs.options['maxiter'] = 2
nlgbs.options['err_on_maxiter'] = True
- prob.setup(check=False)
+ prob.setup()
prob.set_solver_print(level=0)
try:
prob.run_model()
- except AnalysisError as err:
+ except om.AnalysisError as err:
self.assertEqual(str(err), "Solver 'NL: NLBGS' on system '' failed to converge in 2 iterations.")
else:
self.fail("expected AnalysisError")
@@ -282,7 +281,7 @@ def test_sellar_group_nested(self):
# solver couples them together through variable x.
# This version has the indepvarcomps removed so we can connect them together.
- class SellarModified(Group):
+ class SellarModified(om.Group):
""" Group containing the Sellar MDA. This version uses the disciplines
with derivatives."""
@@ -292,12 +291,12 @@ def __init__(self):
self.add_subsystem('d1', SellarDis1withDerivatives(), promotes=['x', 'z', 'y1', 'y2'])
self.add_subsystem('d2', SellarDis2withDerivatives(), promotes=['z', 'y1', 'y2'])
- self.nonlinear_solver = NonlinearBlockGS()
- self.linear_solver = ScipyKrylov()
+ self.nonlinear_solver = om.NonlinearBlockGS()
+ self.linear_solver = om.ScipyKrylov()
- prob = Problem()
+ prob = om.Problem()
root = prob.model
- root.nonlinear_solver = NonlinearBlockGS()
+ root.nonlinear_solver = om.NonlinearBlockGS()
root.nonlinear_solver.options['maxiter'] = 20
root.add_subsystem('g1', SellarModified())
root.add_subsystem('g2', SellarModified())
@@ -305,7 +304,7 @@ def __init__(self):
root.connect('g1.y2', 'g2.x')
root.connect('g2.y2', 'g1.x')
- prob.setup(check=False)
+ prob.setup()
prob.set_solver_print(level=0)
prob.run_model()
@@ -317,9 +316,9 @@ def __init__(self):
def test_NLBGS_Aitken(self):
- prob = Problem(model=SellarDerivatives())
+ prob = om.Problem(model=SellarDerivatives())
model = prob.model
- model.nonlinear_solver = NonlinearBlockGS()
+ model.nonlinear_solver = om.NonlinearBlockGS()
prob.setup()
model.nonlinear_solver.options['use_aitken'] = True
@@ -331,7 +330,7 @@ def test_NLBGS_Aitken(self):
def test_NLBGS_Aitken_cs(self):
- prob = Problem(model=SellarDerivatives())
+ prob = om.Problem(model=SellarDerivatives())
model = prob.model
model.approx_totals(method='cs', step=1e-10)
@@ -352,7 +351,7 @@ def test_NLBGS_Aitken_cs(self):
def test_NLBGS_cs(self):
- prob = Problem(model=SellarDerivatives())
+ prob = om.Problem(model=SellarDerivatives())
model = prob.model
model.approx_totals(method='cs')
@@ -381,16 +380,16 @@ def compute(self, inputs, outputs):
super(ContrivedSellarDis1, self).compute(inputs, outputs)
outputs['highly_nonlinear'] = 10*np.sin(10*inputs['y2'])
- p = Problem()
+ p = om.Problem()
model = p.model
- model.add_subsystem('px', IndepVarComp('x', 1.0), promotes=['x'])
- model.add_subsystem('pz', IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
+ model.add_subsystem('px', om.IndepVarComp('x', 1.0), promotes=['x'])
+ model.add_subsystem('pz', om.IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
model.add_subsystem('d1', ContrivedSellarDis1(), promotes=['x', 'z', 'y1', 'y2'])
model.add_subsystem('d2', SellarDis2(), promotes=['z', 'y1', 'y2'])
- nlbgs = model.nonlinear_solver = NonlinearBlockGS()
+ nlbgs = model.nonlinear_solver = om.NonlinearBlockGS()
nlbgs.options['maxiter'] = 20
nlbgs.options['atol'] = 1e-6
diff --git a/openmdao/solvers/nonlinear/tests/test_nonlinear_block_jac.py b/openmdao/solvers/nonlinear/tests/test_nonlinear_block_jac.py
index 5d29e9dc8c..229d033e97 100644
--- a/openmdao/solvers/nonlinear/tests/test_nonlinear_block_jac.py
+++ b/openmdao/solvers/nonlinear/tests/test_nonlinear_block_jac.py
@@ -4,9 +4,7 @@
import numpy as np
-from openmdao.api import Problem, Group, IndepVarComp, ExecComp, LinearBlockGS, ExplicitComponent, \
- AnalysisError, ParallelGroup, ExecComp
-from openmdao.solvers.nonlinear.nonlinear_block_jac import NonlinearBlockJac
+import openmdao.api as om
from openmdao.test_suite.components.ae_tests import AEComp, AEDriver
from openmdao.test_suite.components.sellar import SellarDis1withDerivatives, SellarDis2withDerivatives
from openmdao.utils.assert_utils import assert_rel_error
@@ -23,27 +21,27 @@ class TestNLBlockJacobi(unittest.TestCase):
def test_feature_basic(self):
import numpy as np
- from openmdao.api import Problem, Group, IndepVarComp, ExecComp, NonlinearBlockJac, LinearBlockGS
+ import openmdao.api as om
from openmdao.test_suite.components.sellar import SellarDis1withDerivatives, SellarDis2withDerivatives
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('px', IndepVarComp('x', 1.0), promotes=['x'])
- model.add_subsystem('pz', IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
+ model.add_subsystem('px', om.IndepVarComp('x', 1.0), promotes=['x'])
+ model.add_subsystem('pz', om.IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
model.add_subsystem('d1', SellarDis1withDerivatives(), promotes=['x', 'z', 'y1', 'y2'])
model.add_subsystem('d2', SellarDis2withDerivatives(), promotes=['z', 'y1', 'y2'])
- model.add_subsystem('obj_cmp', ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
- z=np.array([0.0, 0.0]), x=0.0),
+ model.add_subsystem('obj_cmp', om.ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
+ z=np.array([0.0, 0.0]), x=0.0),
promotes=['obj', 'x', 'z', 'y1', 'y2'])
- model.add_subsystem('con_cmp1', ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
- model.add_subsystem('con_cmp2', ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
+ model.add_subsystem('con_cmp1', om.ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
+ model.add_subsystem('con_cmp2', om.ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
- model.linear_solver = LinearBlockGS()
- model.nonlinear_solver = NonlinearBlockJac()
+ model.linear_solver = om.LinearBlockGS()
+ model.nonlinear_solver = om.NonlinearBlockJac()
prob.setup()
@@ -55,28 +53,28 @@ def test_feature_basic(self):
def test_feature_maxiter(self):
import numpy as np
- from openmdao.api import Problem, Group, IndepVarComp, ExecComp, NonlinearBlockJac, LinearBlockGS
+ import openmdao.api as om
from openmdao.test_suite.components.sellar import SellarDis1withDerivatives, SellarDis2withDerivatives
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('px', IndepVarComp('x', 1.0), promotes=['x'])
- model.add_subsystem('pz', IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
+ model.add_subsystem('px', om.IndepVarComp('x', 1.0), promotes=['x'])
+ model.add_subsystem('pz', om.IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
model.add_subsystem('d1', SellarDis1withDerivatives(), promotes=['x', 'z', 'y1', 'y2'])
model.add_subsystem('d2', SellarDis2withDerivatives(), promotes=['z', 'y1', 'y2'])
- model.add_subsystem('obj_cmp', ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
- z=np.array([0.0, 0.0]), x=0.0),
+ model.add_subsystem('obj_cmp', om.ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
+ z=np.array([0.0, 0.0]), x=0.0),
promotes=['obj', 'x', 'z', 'y1', 'y2'])
- model.add_subsystem('con_cmp1', ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
- model.add_subsystem('con_cmp2', ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
+ model.add_subsystem('con_cmp1', om.ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
+ model.add_subsystem('con_cmp2', om.ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
- model.linear_solver = LinearBlockGS()
+ model.linear_solver = om.LinearBlockGS()
- nlgbs = model.nonlinear_solver = NonlinearBlockJac()
+ nlgbs = model.nonlinear_solver = om.NonlinearBlockJac()
nlgbs.options['maxiter'] = 4
prob.setup()
@@ -89,28 +87,28 @@ def test_feature_maxiter(self):
def test_feature_rtol(self):
import numpy as np
- from openmdao.api import Problem, Group, IndepVarComp, ExecComp, NonlinearBlockJac, LinearBlockGS
+ import openmdao.api as om
from openmdao.test_suite.components.sellar import SellarDis1withDerivatives, SellarDis2withDerivatives
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('px', IndepVarComp('x', 1.0), promotes=['x'])
- model.add_subsystem('pz', IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
+ model.add_subsystem('px', om.IndepVarComp('x', 1.0), promotes=['x'])
+ model.add_subsystem('pz', om.IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
model.add_subsystem('d1', SellarDis1withDerivatives(), promotes=['x', 'z', 'y1', 'y2'])
model.add_subsystem('d2', SellarDis2withDerivatives(), promotes=['z', 'y1', 'y2'])
- model.add_subsystem('obj_cmp', ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
- z=np.array([0.0, 0.0]), x=0.0),
+ model.add_subsystem('obj_cmp', om.ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
+ z=np.array([0.0, 0.0]), x=0.0),
promotes=['obj', 'x', 'z', 'y1', 'y2'])
- model.add_subsystem('con_cmp1', ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
- model.add_subsystem('con_cmp2', ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
+ model.add_subsystem('con_cmp1', om.ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
+ model.add_subsystem('con_cmp2', om.ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
- model.linear_solver = LinearBlockGS()
+ model.linear_solver = om.LinearBlockGS()
- nlgbs = model.nonlinear_solver = NonlinearBlockJac()
+ nlgbs = model.nonlinear_solver = om.NonlinearBlockJac()
nlgbs.options['rtol'] = 1e-3
prob.setup()
@@ -123,28 +121,28 @@ def test_feature_rtol(self):
def test_feature_atol(self):
import numpy as np
- from openmdao.api import Problem, Group, IndepVarComp, ExecComp, NonlinearBlockJac, LinearBlockGS
+ import openmdao.api as om
from openmdao.test_suite.components.sellar import SellarDis1withDerivatives, SellarDis2withDerivatives
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('px', IndepVarComp('x', 1.0), promotes=['x'])
- model.add_subsystem('pz', IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
+ model.add_subsystem('px', om.IndepVarComp('x', 1.0), promotes=['x'])
+ model.add_subsystem('pz', om.IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
model.add_subsystem('d1', SellarDis1withDerivatives(), promotes=['x', 'z', 'y1', 'y2'])
model.add_subsystem('d2', SellarDis2withDerivatives(), promotes=['z', 'y1', 'y2'])
- model.add_subsystem('obj_cmp', ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
- z=np.array([0.0, 0.0]), x=0.0),
+ model.add_subsystem('obj_cmp', om.ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
+ z=np.array([0.0, 0.0]), x=0.0),
promotes=['obj', 'x', 'z', 'y1', 'y2'])
- model.add_subsystem('con_cmp1', ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
- model.add_subsystem('con_cmp2', ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
+ model.add_subsystem('con_cmp1', om.ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
+ model.add_subsystem('con_cmp2', om.ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
- model.linear_solver = LinearBlockGS()
+ model.linear_solver = om.LinearBlockGS()
- nlgbs = model.nonlinear_solver = NonlinearBlockJac()
+ nlgbs = model.nonlinear_solver = om.NonlinearBlockJac()
nlgbs.options['atol'] = 1e-2
prob.setup()
@@ -162,18 +160,18 @@ class TestNonlinearBlockJacobiMPI(unittest.TestCase):
@unittest.skipUnless(MPI, "MPI is not active.")
def test_reraise_analylsis_error(self):
- prob = Problem()
- prob.model = model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', 0.5))
- model.add_subsystem('p2', IndepVarComp('x', 3.0))
- sub = model.add_subsystem('sub', ParallelGroup())
+ model.add_subsystem('p1', om.IndepVarComp('x', 0.5))
+ model.add_subsystem('p2', om.IndepVarComp('x', 3.0))
+ sub = model.add_subsystem('sub', om.ParallelGroup())
sub.add_subsystem('c1', AEComp())
sub.add_subsystem('c2', AEComp())
- sub.nonlinear_solver = NonlinearBlockJac()
+ sub.nonlinear_solver = om.NonlinearBlockJac()
- model.add_subsystem('obj', ExecComp(['val = x1 + x2']))
+ model.add_subsystem('obj', om.ExecComp(['val = x1 + x2']))
model.connect('p1.x', 'sub.c1.x')
model.connect('p2.x', 'sub.c2.x')
@@ -182,7 +180,7 @@ def test_reraise_analylsis_error(self):
prob.driver = AEDriver()
- prob.setup(check=False)
+ prob.setup()
handled = prob.run_driver()
self.assertTrue(handled)
diff --git a/openmdao/solvers/nonlinear/tests/test_nonlinear_runonce.py b/openmdao/solvers/nonlinear/tests/test_nonlinear_runonce.py
index 0ed985c5c6..7e54a0430a 100644
--- a/openmdao/solvers/nonlinear/tests/test_nonlinear_runonce.py
+++ b/openmdao/solvers/nonlinear/tests/test_nonlinear_runonce.py
@@ -2,9 +2,7 @@
import unittest
-from openmdao.api import Problem, ScipyKrylov, IndepVarComp, Group, ExplicitComponent, \
- AnalysisError, ParallelGroup, ExecComp
-from openmdao.solvers.nonlinear.nonlinear_runonce import NonlinearRunOnce
+import openmdao.api as om
from openmdao.test_suite.components.ae_tests import AEComp, AEDriver
from openmdao.test_suite.components.paraboloid import Paraboloid
from openmdao.test_suite.groups.parallel_groups import ConvergeDivergeGroups
@@ -21,15 +19,15 @@ class TestNonlinearRunOnceSolver(unittest.TestCase):
def test_converge_diverge_groups(self):
# Test derivatives for converge-diverge-groups topology.
- prob = Problem()
+ prob = om.Problem()
model = prob.model = ConvergeDivergeGroups()
- model.linear_solver = ScipyKrylov()
- model.nonlinear_solver = NonlinearRunOnce()
+ model.linear_solver = om.ScipyKrylov()
+ model.nonlinear_solver = om.NonlinearRunOnce()
- model.g1.nonlinear_solver = NonlinearRunOnce()
- model.g1.g2.nonlinear_solver = NonlinearRunOnce()
- model.g3.nonlinear_solver = NonlinearRunOnce()
+ model.g1.nonlinear_solver = om.NonlinearRunOnce()
+ model.g1.g2.nonlinear_solver = om.NonlinearRunOnce()
+ model.g3.nonlinear_solver = om.NonlinearRunOnce()
prob.set_solver_print(level=0)
prob.setup(check=False, mode='fwd')
@@ -40,7 +38,7 @@ def test_converge_diverge_groups(self):
def test_undeclared_options(self):
# Test that using options that should not exist in class cause an error
- solver = NonlinearRunOnce()
+ solver = om.NonlinearRunOnce()
msg = "\"Option '%s' cannot be set because it has not been declared.\""
@@ -51,17 +49,17 @@ def test_undeclared_options(self):
self.assertEqual(str(context.exception), msg % option)
def test_feature_solver(self):
- from openmdao.api import Problem, Group, NonlinearRunOnce, IndepVarComp
+ import openmdao.api as om
from openmdao.test_suite.components.paraboloid import Paraboloid
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', 0.0), promotes=['x'])
- model.add_subsystem('p2', IndepVarComp('y', 0.0), promotes=['y'])
+ model.add_subsystem('p1', om.IndepVarComp('x', 0.0), promotes=['x'])
+ model.add_subsystem('p2', om.IndepVarComp('y', 0.0), promotes=['y'])
model.add_subsystem('comp', Paraboloid(), promotes=['x', 'y', 'f_xy'])
- model.nonlinear_solver = NonlinearRunOnce()
+ model.nonlinear_solver = om.NonlinearRunOnce()
prob.setup(check=False, mode='fwd')
@@ -80,17 +78,17 @@ class TestNonlinearRunOnceSolverMPI(unittest.TestCase):
@unittest.skipUnless(MPI, "MPI is not active.")
def test_reraise_analylsis_error(self):
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', 0.5))
- model.add_subsystem('p2', IndepVarComp('x', 3.0))
- sub = model.add_subsystem('sub', ParallelGroup())
+ model.add_subsystem('p1', om.IndepVarComp('x', 0.5))
+ model.add_subsystem('p2', om.IndepVarComp('x', 3.0))
+ sub = model.add_subsystem('sub', om.ParallelGroup())
sub.add_subsystem('c1', AEComp())
sub.add_subsystem('c2', AEComp())
- model.add_subsystem('obj', ExecComp(['val = x1 + x2']))
+ model.add_subsystem('obj', om.ExecComp(['val = x1 + x2']))
model.connect('p1.x', 'sub.c1.x')
model.connect('p2.x', 'sub.c2.x')
@@ -99,7 +97,7 @@ def test_reraise_analylsis_error(self):
prob.driver = AEDriver()
- prob.setup(check=False)
+ prob.setup()
handled = prob.run_driver()
self.assertTrue(handled)
diff --git a/openmdao/solvers/tests/test_solver_debug_print.py b/openmdao/solvers/tests/test_solver_debug_print.py
index f6f6e00980..bfbaf6e8c5 100644
--- a/openmdao/solvers/tests/test_solver_debug_print.py
+++ b/openmdao/solvers/tests/test_solver_debug_print.py
@@ -15,14 +15,7 @@
import numpy as np
-from openmdao.api import Problem, IndepVarComp, ExecComp, Group, BalanceComp, AnalysisError
-
-from openmdao.solvers.linear.direct import DirectSolver
-from openmdao.solvers.nonlinear.broyden import BroydenSolver
-from openmdao.solvers.nonlinear.newton import NewtonSolver
-from openmdao.solvers.nonlinear.nonlinear_block_gs import NonlinearBlockGS
-from openmdao.solvers.nonlinear.nonlinear_block_jac import NonlinearBlockJac
-
+import openmdao.api as om
from openmdao.test_suite.scripts.circuit_analysis import Circuit
from openmdao.utils.assert_utils import assert_rel_error
@@ -35,10 +28,10 @@
from openmdao.utils.assert_utils import SkipParameterized as parameterized
nonlinear_solvers = [
- NonlinearBlockGS,
- NonlinearBlockJac,
- NewtonSolver,
- BroydenSolver
+ om.NonlinearBlockGS,
+ om.NonlinearBlockJac,
+ om.NewtonSolver,
+ om.BroydenSolver
]
@@ -98,11 +91,11 @@ def tearDown(self):
[solver.__name__, solver] for solver in nonlinear_solvers
])
def test_solver_debug_print(self, name, solver):
- p = Problem()
+ p = om.Problem()
model = p.model
- model.add_subsystem('ground', IndepVarComp('V', 0., units='V'))
- model.add_subsystem('source', IndepVarComp('I', 0.1, units='A'))
+ model.add_subsystem('ground', om.IndepVarComp('V', 0., units='V'))
+ model.add_subsystem('source', om.IndepVarComp('I', 0.1, units='A'))
model.add_subsystem('circuit', Circuit())
model.connect('source.I', 'circuit.I_in')
@@ -158,15 +151,16 @@ def test_solver_debug_print(self, name, solver):
def test_solver_debug_print_feature(self):
from distutils.version import LooseVersion
import numpy as np
- from openmdao.api import Problem, IndepVarComp, NewtonSolver, AnalysisError
+
+ import openmdao.api as om
from openmdao.test_suite.scripts.circuit_analysis import Circuit
from openmdao.utils.general_utils import printoptions
- p = Problem()
+ p = om.Problem()
model = p.model
- model.add_subsystem('ground', IndepVarComp('V', 0., units='V'))
- model.add_subsystem('source', IndepVarComp('I', 0.1, units='A'))
+ model.add_subsystem('ground', om.IndepVarComp('V', 0., units='V'))
+ model.add_subsystem('source', om.IndepVarComp('I', 0.1, units='A'))
model.add_subsystem('circuit', Circuit())
model.connect('source.I', 'circuit.I_in')
@@ -174,7 +168,7 @@ def test_solver_debug_print_feature(self):
p.setup()
- nl = model.circuit.nonlinear_solver = NewtonSolver()
+ nl = model.circuit.nonlinear_solver = om.NewtonSolver()
nl.options['iprint'] = 2
nl.options['debug_print'] = True
@@ -193,7 +187,7 @@ def test_solver_debug_print_feature(self):
# run the model
try:
p.run_model()
- except AnalysisError:
+ except om.AnalysisError:
pass
with open(self.filename, 'r') as f:
@@ -222,18 +216,18 @@ def tearDown(self):
pass
def test_debug_after_raised_error(self):
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- comp = IndepVarComp()
+ comp = om.IndepVarComp()
comp.add_output('dXdt:TAS', val=1.0)
comp.add_output('accel_target', val=2.0)
model.add_subsystem('des_vars', comp, promotes=['*'])
- teg = model.add_subsystem('thrust_equilibrium_group', subsys=Group())
- teg.add_subsystem('dynamics', ExecComp('z = 2.0*thrust'), promotes=['*'])
+ teg = model.add_subsystem('thrust_equilibrium_group', subsys=om.Group())
+ teg.add_subsystem('dynamics', om.ExecComp('z = 2.0*thrust'), promotes=['*'])
- thrust_bal = BalanceComp()
+ thrust_bal = om.BalanceComp()
thrust_bal.add_balance(name='thrust', val=1207.1, lhs_name='dXdt:TAS',
rhs_name='accel_target', eq_units='m/s**2', lower=-10.0, upper=10000.0)
@@ -241,15 +235,15 @@ def test_debug_after_raised_error(self):
promotes_inputs=['dXdt:TAS', 'accel_target'],
promotes_outputs=['thrust'])
- teg.linear_solver = DirectSolver()
+ teg.linear_solver = om.DirectSolver()
- teg.nonlinear_solver = NewtonSolver()
+ teg.nonlinear_solver = om.NewtonSolver()
teg.nonlinear_solver.options['solve_subsystems'] = True
teg.nonlinear_solver.options['max_sub_solves'] = 1
teg.nonlinear_solver.options['atol'] = 1e-4
teg.nonlinear_solver.options['debug_print'] = True
- prob.setup(check=False)
+ prob.setup()
prob.set_solver_print(level=0)
stdout = sys.stdout
diff --git a/openmdao/solvers/tests/test_solver_features.py b/openmdao/solvers/tests/test_solver_features.py
index 56ed8f63aa..c18ebf4d9a 100644
--- a/openmdao/solvers/tests/test_solver_features.py
+++ b/openmdao/solvers/tests/test_solver_features.py
@@ -2,12 +2,7 @@
import unittest
-from openmdao.api import Problem
-from openmdao.solvers.nonlinear.newton import NewtonSolver
-from openmdao.solvers.nonlinear.nonlinear_block_gs import NonlinearBlockGS
-from openmdao.solvers.linear.direct import DirectSolver
-from openmdao.solvers.linear.scipy_iter_solver import ScipyKrylov
-from openmdao.solvers.linear.linear_block_gs import LinearBlockGS
+import openmdao.api as om
from openmdao.utils.assert_utils import assert_rel_error
from openmdao.test_suite.components.sellar import SellarDerivatives
@@ -17,19 +12,19 @@
class TestSolverFeatures(unittest.TestCase):
def test_specify_solver(self):
- from openmdao.api import Problem, NewtonSolver, ScipyKrylov, DirectSolver
+ import openmdao.api as om
from openmdao.test_suite.components.sellar import SellarDerivatives
- prob = Problem()
+ prob = om.Problem()
model = prob.model = SellarDerivatives()
- model.nonlinear_solver = newton = NewtonSolver()
+ model.nonlinear_solver = newton = om.NewtonSolver()
# using a different linear solver for Newton with a looser tolerance
- newton.linear_solver = ScipyKrylov(atol=1e-4)
+ newton.linear_solver = om.ScipyKrylov(atol=1e-4)
# used for analytic derivatives
- model.linear_solver = DirectSolver()
+ model.linear_solver = om.DirectSolver()
prob.setup()
prob.run_model()
@@ -38,25 +33,25 @@ def test_specify_solver(self):
assert_rel_error(self, prob['y2'], 12.05848819, .00001)
def test_specify_subgroup_solvers(self):
- from openmdao.api import Problem, NewtonSolver, ScipyKrylov, DirectSolver, NonlinearBlockGS, LinearBlockGS
+ import openmdao.api as om
from openmdao.test_suite.components.double_sellar import DoubleSellar
- prob = Problem()
+ prob = om.Problem()
model = prob.model = DoubleSellar()
# each SubSellar group converges itself
g1 = model.g1
- g1.nonlinear_solver = NewtonSolver()
- g1.linear_solver = DirectSolver() # used for derivatives
+ g1.nonlinear_solver = om.NewtonSolver()
+ g1.linear_solver = om.DirectSolver() # used for derivatives
g2 = model.g2
- g2.nonlinear_solver = NewtonSolver()
- g2.linear_solver = DirectSolver()
+ g2.nonlinear_solver = om.NewtonSolver()
+ g2.linear_solver = om.DirectSolver()
# Converge the outer loop with Gauss Seidel, with a looser tolerance.
- model.nonlinear_solver = NonlinearBlockGS(rtol=1.0e-5)
- model.linear_solver = ScipyKrylov()
- model.linear_solver.precon = LinearBlockGS()
+ model.nonlinear_solver = om.NonlinearBlockGS(rtol=1.0e-5)
+ model.linear_solver = om.ScipyKrylov()
+ model.linear_solver.precon = om.LinearBlockGS()
prob.setup()
prob.run_model()
diff --git a/openmdao/solvers/tests/test_solver_iprint.py b/openmdao/solvers/tests/test_solver_iprint.py
index 28a9720150..9898ec426d 100644
--- a/openmdao/solvers/tests/test_solver_iprint.py
+++ b/openmdao/solvers/tests/test_solver_iprint.py
@@ -6,8 +6,7 @@
import numpy as np
-from openmdao.api import Problem, NewtonSolver, ScipyKrylov, Group, PETScVector, \
- IndepVarComp, NonlinearBlockGS, NonlinearBlockJac, LinearBlockGS
+import openmdao.api as om
from openmdao.test_suite.components.double_sellar import SubSellar
from openmdao.test_suite.components.sellar import SellarDerivatives
@@ -18,16 +17,16 @@
class TestSolverPrint(unittest.TestCase):
def test_feature_iprint_neg1(self):
- from openmdao.api import Problem, NewtonSolver, ScipyKrylov
+ import openmdao.api as om
from openmdao.test_suite.components.sellar import SellarDerivatives
- prob = Problem()
+ prob = om.Problem()
prob.model = SellarDerivatives()
prob.setup()
- newton = prob.model.nonlinear_solver = NewtonSolver()
- scipy = prob.model.linear_solver = ScipyKrylov()
+ newton = prob.model.nonlinear_solver = om.NewtonSolver()
+ scipy = prob.model.linear_solver = om.ScipyKrylov()
newton.options['maxiter'] = 2
@@ -40,16 +39,16 @@ def test_feature_iprint_neg1(self):
prob.run_model()
def test_feature_iprint_0(self):
- from openmdao.api import Problem, NewtonSolver, ScipyKrylov
+ import openmdao.api as om
from openmdao.test_suite.components.sellar import SellarDerivatives
- prob = Problem()
+ prob = om.Problem()
prob.model = SellarDerivatives()
prob.setup()
- newton = prob.model.nonlinear_solver = NewtonSolver()
- scipy = prob.model.linear_solver = ScipyKrylov()
+ newton = prob.model.nonlinear_solver = om.NewtonSolver()
+ scipy = prob.model.linear_solver = om.ScipyKrylov()
newton.options['maxiter'] = 1
@@ -62,16 +61,16 @@ def test_feature_iprint_0(self):
prob.run_model()
def test_feature_iprint_1(self):
- from openmdao.api import Problem, NewtonSolver, ScipyKrylov
+ import openmdao.api as om
from openmdao.test_suite.components.sellar import SellarDerivatives
- prob = Problem()
+ prob = om.Problem()
prob.model = SellarDerivatives()
prob.setup()
- newton = prob.model.nonlinear_solver = NewtonSolver()
- scipy = prob.model.linear_solver = ScipyKrylov()
+ newton = prob.model.nonlinear_solver = om.NewtonSolver()
+ scipy = prob.model.linear_solver = om.ScipyKrylov()
newton.options['maxiter'] = 20
@@ -83,16 +82,16 @@ def test_feature_iprint_1(self):
prob.run_model()
def test_feature_iprint_2(self):
- from openmdao.api import Problem, NewtonSolver, ScipyKrylov
+ import openmdao.api as om
from openmdao.test_suite.components.sellar import SellarDerivatives
- prob = Problem()
+ prob = om.Problem()
prob.model = SellarDerivatives()
prob.setup()
- newton = prob.model.nonlinear_solver = NewtonSolver()
- scipy = prob.model.linear_solver = ScipyKrylov()
+ newton = prob.model.nonlinear_solver = om.NewtonSolver()
+ scipy = prob.model.linear_solver = om.ScipyKrylov()
newton.options['maxiter'] = 20
@@ -105,13 +104,13 @@ def test_feature_iprint_2(self):
def test_hierarchy_iprint(self):
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('pz', IndepVarComp('z', np.array([5.0, 2.0])))
+ model.add_subsystem('pz', om.IndepVarComp('z', np.array([5.0, 2.0])))
- sub1 = model.add_subsystem('sub1', Group())
- sub2 = sub1.add_subsystem('sub2', Group())
+ sub1 = model.add_subsystem('sub1', om.Group())
+ sub2 = sub1.add_subsystem('sub2', om.Group())
g1 = sub2.add_subsystem('g1', SubSellar())
g2 = model.add_subsystem('g2', SubSellar())
@@ -119,35 +118,35 @@ def test_hierarchy_iprint(self):
model.connect('sub1.sub2.g1.y2', 'g2.x')
model.connect('g2.y2', 'sub1.sub2.g1.x')
- model.nonlinear_solver = NewtonSolver()
- model.linear_solver = ScipyKrylov()
+ model.nonlinear_solver = om.NewtonSolver()
+ model.linear_solver = om.ScipyKrylov()
model.nonlinear_solver.options['solve_subsystems'] = True
model.nonlinear_solver.options['max_sub_solves'] = 0
- g1.nonlinear_solver = NewtonSolver()
- g1.linear_solver = LinearBlockGS()
+ g1.nonlinear_solver = om.NewtonSolver()
+ g1.linear_solver = om.LinearBlockGS()
- g2.nonlinear_solver = NewtonSolver()
- g2.linear_solver = ScipyKrylov()
- g2.linear_solver.precon = LinearBlockGS()
+ g2.nonlinear_solver = om.NewtonSolver()
+ g2.linear_solver = om.ScipyKrylov()
+ g2.linear_solver.precon = om.LinearBlockGS()
g2.linear_solver.precon.options['maxiter'] = 2
prob.set_solver_print(level=2)
- prob.setup(check=False)
+ prob.setup()
output = run_model(prob)
# TODO: check output
def test_hierarchy_iprint2(self):
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('pz', IndepVarComp('z', np.array([5.0, 2.0])))
+ model.add_subsystem('pz', om.IndepVarComp('z', np.array([5.0, 2.0])))
- sub1 = model.add_subsystem('sub1', Group())
- sub2 = sub1.add_subsystem('sub2', Group())
+ sub1 = model.add_subsystem('sub1', om.Group())
+ sub2 = sub1.add_subsystem('sub2', om.Group())
g1 = sub2.add_subsystem('g1', SubSellar())
g2 = model.add_subsystem('g2', SubSellar())
@@ -155,26 +154,26 @@ def test_hierarchy_iprint2(self):
model.connect('sub1.sub2.g1.y2', 'g2.x')
model.connect('g2.y2', 'sub1.sub2.g1.x')
- model.nonlinear_solver = NonlinearBlockGS()
- g1.nonlinear_solver = NonlinearBlockGS()
- g2.nonlinear_solver = NonlinearBlockGS()
+ model.nonlinear_solver = om.NonlinearBlockGS()
+ g1.nonlinear_solver = om.NonlinearBlockGS()
+ g2.nonlinear_solver = om.NonlinearBlockGS()
prob.set_solver_print(level=2)
- prob.setup(check=False)
+ prob.setup()
output = run_model(prob)
# TODO: check output
def test_hierarchy_iprint3(self):
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('pz', IndepVarComp('z', np.array([5.0, 2.0])))
+ model.add_subsystem('pz', om.IndepVarComp('z', np.array([5.0, 2.0])))
- sub1 = model.add_subsystem('sub1', Group())
- sub2 = sub1.add_subsystem('sub2', Group())
+ sub1 = model.add_subsystem('sub1', om.Group())
+ sub2 = sub1.add_subsystem('sub2', om.Group())
g1 = sub2.add_subsystem('g1', SubSellar())
g2 = model.add_subsystem('g2', SubSellar())
@@ -182,15 +181,15 @@ def test_hierarchy_iprint3(self):
model.connect('sub1.sub2.g1.y2', 'g2.x')
model.connect('g2.y2', 'sub1.sub2.g1.x')
- model.nonlinear_solver = NonlinearBlockJac()
- sub1.nonlinear_solver = NonlinearBlockJac()
- sub2.nonlinear_solver = NonlinearBlockJac()
- g1.nonlinear_solver = NonlinearBlockJac()
- g2.nonlinear_solver = NonlinearBlockJac()
+ model.nonlinear_solver = om.NonlinearBlockJac()
+ sub1.nonlinear_solver = om.NonlinearBlockJac()
+ sub2.nonlinear_solver = om.NonlinearBlockJac()
+ g1.nonlinear_solver = om.NonlinearBlockJac()
+ g2.nonlinear_solver = om.NonlinearBlockJac()
prob.set_solver_print(level=2)
- prob.setup(check=False)
+ prob.setup()
output = run_model(prob)
# TODO: check output
@@ -198,16 +197,16 @@ def test_hierarchy_iprint3(self):
def test_feature_set_solver_print1(self):
import numpy as np
- from openmdao.api import Problem, Group, IndepVarComp, NewtonSolver, ScipyKrylov, LinearBlockGS
+ import openmdao.api as om
from openmdao.test_suite.components.double_sellar import SubSellar
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('pz', IndepVarComp('z', np.array([5.0, 2.0])))
+ model.add_subsystem('pz', om.IndepVarComp('z', np.array([5.0, 2.0])))
- sub1 = model.add_subsystem('sub1', Group())
- sub2 = sub1.add_subsystem('sub2', Group())
+ sub1 = model.add_subsystem('sub1', om.Group())
+ sub2 = sub1.add_subsystem('sub2', om.Group())
g1 = sub2.add_subsystem('g1', SubSellar())
g2 = model.add_subsystem('g2', SubSellar())
@@ -215,17 +214,17 @@ def test_feature_set_solver_print1(self):
model.connect('sub1.sub2.g1.y2', 'g2.x')
model.connect('g2.y2', 'sub1.sub2.g1.x')
- model.nonlinear_solver = NewtonSolver()
- model.linear_solver = ScipyKrylov()
+ model.nonlinear_solver = om.NewtonSolver()
+ model.linear_solver = om.ScipyKrylov()
model.nonlinear_solver.options['solve_subsystems'] = True
model.nonlinear_solver.options['max_sub_solves'] = 0
- g1.nonlinear_solver = NewtonSolver()
- g1.linear_solver = LinearBlockGS()
+ g1.nonlinear_solver = om.NewtonSolver()
+ g1.linear_solver = om.LinearBlockGS()
- g2.nonlinear_solver = NewtonSolver()
- g2.linear_solver = ScipyKrylov()
- g2.linear_solver.precon = LinearBlockGS()
+ g2.nonlinear_solver = om.NewtonSolver()
+ g2.linear_solver = om.ScipyKrylov()
+ g2.linear_solver.precon = om.LinearBlockGS()
g2.linear_solver.precon.options['maxiter'] = 2
prob.set_solver_print(level=2)
@@ -236,16 +235,16 @@ def test_feature_set_solver_print1(self):
def test_feature_set_solver_print2(self):
import numpy as np
- from openmdao.api import Problem, Group, IndepVarComp, NewtonSolver, ScipyKrylov, LinearBlockGS
+ import openmdao.api as om
from openmdao.test_suite.components.double_sellar import SubSellar
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('pz', IndepVarComp('z', np.array([5.0, 2.0])))
+ model.add_subsystem('pz', om.IndepVarComp('z', np.array([5.0, 2.0])))
- sub1 = model.add_subsystem('sub1', Group())
- sub2 = sub1.add_subsystem('sub2', Group())
+ sub1 = model.add_subsystem('sub1', om.Group())
+ sub2 = sub1.add_subsystem('sub2', om.Group())
g1 = sub2.add_subsystem('g1', SubSellar())
g2 = model.add_subsystem('g2', SubSellar())
@@ -253,17 +252,17 @@ def test_feature_set_solver_print2(self):
model.connect('sub1.sub2.g1.y2', 'g2.x')
model.connect('g2.y2', 'sub1.sub2.g1.x')
- model.nonlinear_solver = NewtonSolver()
- model.linear_solver = ScipyKrylov()
+ model.nonlinear_solver = om.NewtonSolver()
+ model.linear_solver = om.ScipyKrylov()
model.nonlinear_solver.options['solve_subsystems'] = True
model.nonlinear_solver.options['max_sub_solves'] = 0
- g1.nonlinear_solver = NewtonSolver()
- g1.linear_solver = LinearBlockGS()
+ g1.nonlinear_solver = om.NewtonSolver()
+ g1.linear_solver = om.LinearBlockGS()
- g2.nonlinear_solver = NewtonSolver()
- g2.linear_solver = ScipyKrylov()
- g2.linear_solver.precon = LinearBlockGS()
+ g2.nonlinear_solver = om.NewtonSolver()
+ g2.linear_solver = om.ScipyKrylov()
+ g2.linear_solver.precon = om.LinearBlockGS()
g2.linear_solver.precon.options['maxiter'] = 2
prob.set_solver_print(level=2)
@@ -275,16 +274,16 @@ def test_feature_set_solver_print2(self):
def test_feature_set_solver_print3(self):
import numpy as np
- from openmdao.api import Problem, Group, IndepVarComp, NewtonSolver, ScipyKrylov, LinearBlockGS
+ import openmdao.api as om
from openmdao.test_suite.components.double_sellar import SubSellar
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('pz', IndepVarComp('z', np.array([5.0, 2.0])))
+ model.add_subsystem('pz', om.IndepVarComp('z', np.array([5.0, 2.0])))
- sub1 = model.add_subsystem('sub1', Group())
- sub2 = sub1.add_subsystem('sub2', Group())
+ sub1 = model.add_subsystem('sub1', om.Group())
+ sub2 = sub1.add_subsystem('sub2', om.Group())
g1 = sub2.add_subsystem('g1', SubSellar())
g2 = model.add_subsystem('g2', SubSellar())
@@ -292,17 +291,17 @@ def test_feature_set_solver_print3(self):
model.connect('sub1.sub2.g1.y2', 'g2.x')
model.connect('g2.y2', 'sub1.sub2.g1.x')
- model.nonlinear_solver = NewtonSolver()
- model.linear_solver = ScipyKrylov()
+ model.nonlinear_solver = om.NewtonSolver()
+ model.linear_solver = om.ScipyKrylov()
model.nonlinear_solver.options['solve_subsystems'] = True
model.nonlinear_solver.options['max_sub_solves'] = 0
- g1.nonlinear_solver = NewtonSolver()
- g1.linear_solver = LinearBlockGS()
+ g1.nonlinear_solver = om.NewtonSolver()
+ g1.linear_solver = om.LinearBlockGS()
- g2.nonlinear_solver = NewtonSolver()
- g2.linear_solver = ScipyKrylov()
- g2.linear_solver.precon = LinearBlockGS()
+ g2.nonlinear_solver = om.NewtonSolver()
+ g2.linear_solver = om.ScipyKrylov()
+ g2.linear_solver.precon = om.LinearBlockGS()
g2.linear_solver.precon.options['maxiter'] = 2
prob.set_solver_print(level=0)
@@ -312,20 +311,20 @@ def test_feature_set_solver_print3(self):
prob.run_model()
-@unittest.skipUnless(PETScVector, "PETSc is required.")
+@unittest.skipUnless(om.PETScVector, "PETSc is required.")
class MPITests(unittest.TestCase):
N_PROCS = 2
@unittest.skipUnless(MPI, "MPI is not active.")
def test_hierarchy_iprint(self):
- prob = Problem()
+ prob = om.Problem()
model = prob.model
- model.add_subsystem('pz', IndepVarComp('z', np.array([5.0, 2.0])))
+ model.add_subsystem('pz', om.IndepVarComp('z', np.array([5.0, 2.0])))
- sub1 = model.add_subsystem('sub1', Group())
- sub2 = sub1.add_subsystem('sub2', Group())
+ sub1 = model.add_subsystem('sub1', om.Group())
+ sub2 = sub1.add_subsystem('sub2', om.Group())
g1 = sub2.add_subsystem('g1', SubSellar())
g2 = model.add_subsystem('g2', SubSellar())
@@ -333,22 +332,22 @@ def test_hierarchy_iprint(self):
model.connect('sub1.sub2.g1.y2', 'g2.x')
model.connect('g2.y2', 'sub1.sub2.g1.x')
- model.nonlinear_solver = NewtonSolver()
- model.linear_solver = ScipyKrylov()
+ model.nonlinear_solver = om.NewtonSolver()
+ model.linear_solver = om.ScipyKrylov()
model.nonlinear_solver.options['solve_subsystems'] = True
model.nonlinear_solver.options['max_sub_solves'] = 0
- g1.nonlinear_solver = NewtonSolver()
- g1.linear_solver = LinearBlockGS()
+ g1.nonlinear_solver = om.NewtonSolver()
+ g1.linear_solver = om.LinearBlockGS()
- g2.nonlinear_solver = NewtonSolver()
- g2.linear_solver = ScipyKrylov()
- g2.linear_solver.precon = LinearBlockGS()
+ g2.nonlinear_solver = om.NewtonSolver()
+ g2.linear_solver = om.ScipyKrylov()
+ g2.linear_solver.precon = om.LinearBlockGS()
g2.linear_solver.precon.options['maxiter'] = 2
prob.set_solver_print(level=2)
- prob.setup(check=False)
+ prob.setup()
# Conclude setup but don't run model.
prob.final_setup()
diff --git a/openmdao/solvers/tests/test_solver_parametric_suite.py b/openmdao/solvers/tests/test_solver_parametric_suite.py
index bc04ebefd2..d2e46cfcbb 100644
--- a/openmdao/solvers/tests/test_solver_parametric_suite.py
+++ b/openmdao/solvers/tests/test_solver_parametric_suite.py
@@ -55,7 +55,7 @@ def test_direct_solver_comp(self):
prob.model.linear_solver = DirectSolver(assemble_jac=jac in ('csc','dense'))
prob.set_solver_print(level=0)
- prob.setup(check=False)
+ prob.setup()
prob.run_model()
assert_rel_error(self, prob['y'], [-1., 1.])
@@ -80,7 +80,7 @@ def test_direct_solver_group(self):
"""
prob = Problem(model=TestImplicitGroup(lnSolverClass=DirectSolver))
- prob.setup(check=False)
+ prob.setup()
# Set this to False because we have matrix-free component(s).
prob.model.linear_solver.options['assemble_jac'] = False
diff --git a/openmdao/surrogate_models/tests/test_map.py b/openmdao/surrogate_models/tests/test_map.py
index 47d4bef662..acf4824880 100644
--- a/openmdao/surrogate_models/tests/test_map.py
+++ b/openmdao/surrogate_models/tests/test_map.py
@@ -29,7 +29,7 @@ def test_comp_map(self):
# add compressor map to problem
p = Problem()
p.model.add_subsystem('compmap', c)
- p.setup(check=False)
+ p.setup()
# train metamodel
Nc = np.array([0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 1.1])
diff --git a/openmdao/test_suite/components/ae_tests.py b/openmdao/test_suite/components/ae_tests.py
index 984fe90c2b..9fa52dec58 100644
--- a/openmdao/test_suite/components/ae_tests.py
+++ b/openmdao/test_suite/components/ae_tests.py
@@ -2,11 +2,11 @@
Some classes that are used to test Analysis Errors on multiple processes.
"""
-from openmdao.api import ExplicitComponent, AnalysisError
+import openmdao.api as om
from openmdao.core.driver import Driver
-class AEComp(ExplicitComponent):
+class AEComp(om.ExplicitComponent):
def setup(self):
self.add_input('x', val=0.0)
@@ -19,10 +19,11 @@ def compute(self, inputs, outputs):
x = inputs['x']
if x > 2.0:
- raise AnalysisError('Try again.')
+ raise om.AnalysisError('Try again.')
outputs['y'] = x*x + 2.0
+
class AEDriver(Driver):
"""
Handle an Analysis Error from below.
@@ -34,7 +35,7 @@ def run(self):
"""
try:
self._problem.model.run_solve_nonlinear()
- except AnalysisError:
+ except om.AnalysisError:
return True
return False
\ No newline at end of file
diff --git a/openmdao/test_suite/components/array_comp.py b/openmdao/test_suite/components/array_comp.py
index cfc347836c..ace654fbfb 100644
--- a/openmdao/test_suite/components/array_comp.py
+++ b/openmdao/test_suite/components/array_comp.py
@@ -1,7 +1,9 @@
import numpy as np
-from openmdao.api import ExplicitComponent
-class ArrayComp(ExplicitComponent):
+import openmdao.api as om
+
+
+class ArrayComp(om.ExplicitComponent):
def setup(self):
diff --git a/openmdao/test_suite/components/branin.py b/openmdao/test_suite/components/branin.py
index 2ba38b70f9..5050078ed3 100644
--- a/openmdao/test_suite/components/branin.py
+++ b/openmdao/test_suite/components/branin.py
@@ -16,10 +16,10 @@
"""
import numpy as np
-from openmdao.api import ExplicitComponent
+import openmdao.api as om
-class Branin(ExplicitComponent):
+class Branin(om.ExplicitComponent):
"""
The Branin test problem. This version is the standard version and
contains two continuous parameters.
@@ -74,7 +74,7 @@ def compute_partials(self, inputs, partials):
partials['f', 'x0'] = 2.0*a*(x1 - b*x0**2 + c*x0 - d)*(-2.*b*x0 + c) - e*(1.-f)*np.sin(x0)
-class BraninDiscrete(ExplicitComponent):
+class BraninDiscrete(om.ExplicitComponent):
"""
The Branin test problem. This version defines a Discrete Variable in OpenMDAO.
diff --git a/openmdao/test_suite/components/double_sellar.py b/openmdao/test_suite/components/double_sellar.py
index 4533946b2e..fc2334b91a 100644
--- a/openmdao/test_suite/components/double_sellar.py
+++ b/openmdao/test_suite/components/double_sellar.py
@@ -1,14 +1,12 @@
-from openmdao.core.group import Group
-from openmdao.solvers.nonlinear.newton import NewtonSolver
-from openmdao.solvers.linear.direct import DirectSolver
+import openmdao.api as om
+
from openmdao.test_suite.components.sellar import SellarDis1withDerivatives, SellarDis2withDerivatives
from openmdao.test_suite.components.sellar import SellarImplicitDis1
-
# TODO -- Need to convert these over to use `setup` after we have two setup
# phases split up and have the ability to change driver settings
-class SubSellar(Group):
+class SubSellar(om.Group):
def __init__(self, units=None, scaling=None, **kwargs):
super(SubSellar, self).__init__(**kwargs)
@@ -19,7 +17,7 @@ def __init__(self, units=None, scaling=None, **kwargs):
promotes=['z', 'y1', 'y2'])
-class DoubleSellar(Group):
+class DoubleSellar(om.Group):
def __init__(self, units=None, scaling=None, **kwargs):
super(DoubleSellar, self).__init__(**kwargs)
@@ -31,11 +29,11 @@ def __init__(self, units=None, scaling=None, **kwargs):
self.connect('g2.y2', 'g1.x')
# Converge the outer loop with Gauss Seidel, with a looser tolerance.
- self.nonlinear_solver = NewtonSolver()
- self.linear_solver = DirectSolver()
+ self.nonlinear_solver = om.NewtonSolver()
+ self.linear_solver = om.DirectSolver()
-class SubSellarImplicit(Group):
+class SubSellarImplicit(om.Group):
def __init__(self, units=None, scaling=None, **kwargs):
super(SubSellarImplicit, self).__init__(**kwargs)
@@ -46,7 +44,7 @@ def __init__(self, units=None, scaling=None, **kwargs):
promotes=['z', 'y1', 'y2'])
-class DoubleSellarImplicit(Group):
+class DoubleSellarImplicit(om.Group):
def __init__(self, units=None, scaling=None, **kwargs):
super(DoubleSellarImplicit, self).__init__(**kwargs)
@@ -58,5 +56,5 @@ def __init__(self, units=None, scaling=None, **kwargs):
self.connect('g2.y2', 'g1.x')
# Converge the outer loop with Gauss Seidel, with a looser tolerance.
- self.nonlinear_solver = NewtonSolver()
- self.linear_solver = DirectSolver()
+ self.nonlinear_solver = om.NewtonSolver()
+ self.linear_solver = om.DirectSolver()
diff --git a/openmdao/test_suite/components/expl_comp_array.py b/openmdao/test_suite/components/expl_comp_array.py
index 2fa9cd30f3..0bd7e811d9 100644
--- a/openmdao/test_suite/components/expl_comp_array.py
+++ b/openmdao/test_suite/components/expl_comp_array.py
@@ -4,10 +4,10 @@
import numpy as np
import scipy.sparse
-from openmdao.api import ExplicitComponent
+import openmdao.api as om
-class TestExplCompArray(ExplicitComponent):
+class TestExplCompArray(om.ExplicitComponent):
def initialize(self):
self.options.declare('thickness', default=1.)
diff --git a/openmdao/test_suite/components/impl_comp_array.py b/openmdao/test_suite/components/impl_comp_array.py
index 43c7ceaa16..db2b0ca74c 100644
--- a/openmdao/test_suite/components/impl_comp_array.py
+++ b/openmdao/test_suite/components/impl_comp_array.py
@@ -5,10 +5,10 @@
import numpy as np
import scipy.sparse
-from openmdao.api import ImplicitComponent
+import openmdao.api as om
-class TestImplCompArray(ImplicitComponent):
+class TestImplCompArray(om.ImplicitComponent):
def initialize(self):
self.mtx = np.array([
diff --git a/openmdao/test_suite/components/impl_comp_simple.py b/openmdao/test_suite/components/impl_comp_simple.py
index c109ed7ac8..f01596d815 100644
--- a/openmdao/test_suite/components/impl_comp_simple.py
+++ b/openmdao/test_suite/components/impl_comp_simple.py
@@ -5,10 +5,10 @@
import scipy.sparse
import scipy.optimize
-from openmdao.api import ImplicitComponent
+import openmdao.api as om
-class TestImplCompSimple(ImplicitComponent):
+class TestImplCompSimple(om.ImplicitComponent):
def setup(self):
self.add_input('a', val=1.)
diff --git a/openmdao/test_suite/components/implicit_newton_linesearch.py b/openmdao/test_suite/components/implicit_newton_linesearch.py
index dfa0bd0a3d..6f5a510dcb 100644
--- a/openmdao/test_suite/components/implicit_newton_linesearch.py
+++ b/openmdao/test_suite/components/implicit_newton_linesearch.py
@@ -1,13 +1,13 @@
"""Components used mainly for testing Newton and line searches."""
+from math import exp
import numpy as np
import unittest
-from math import exp
-from openmdao.api import ImplicitComponent
+import openmdao.api as om
-class ImplCompOneState(ImplicitComponent):
+class ImplCompOneState(om.ImplicitComponent):
"""
A Simple Implicit Component
@@ -44,7 +44,7 @@ def linearize(self, inputs, outputs, J):
J[('y', 'y')] = y + 2.0 - 32.0*y*exp(-16.0*y*y) - 10.0*exp(-5.0*y)
-class ImplCompTwoStates(ImplicitComponent):
+class ImplCompTwoStates(om.ImplicitComponent):
"""
A Simple Implicit Component with an additional output equation.
@@ -100,7 +100,7 @@ def linearize(self, inputs, outputs, jac):
jac[('z', 'x')] = outputs['z']
-class ImplCompTwoStatesArrays(ImplicitComponent):
+class ImplCompTwoStatesArrays(om.ImplicitComponent):
"""
A Simple Implicit Component with an additional output equation.
diff --git a/openmdao/test_suite/components/matmultcomp.py b/openmdao/test_suite/components/matmultcomp.py
index 59130ffdfa..caeb2bbeef 100644
--- a/openmdao/test_suite/components/matmultcomp.py
+++ b/openmdao/test_suite/components/matmultcomp.py
@@ -1,14 +1,15 @@
"""
A simple component used for derivative testing.
"""
-
from __future__ import division, print_function
import time
+
import numpy as np
-from openmdao.core.explicitcomponent import ExplicitComponent
+import openmdao.api as om
-class MatMultComp(ExplicitComponent):
+
+class MatMultComp(om.ExplicitComponent):
def __init__(self, mat, approx_method='exact', sleep_time=0.1, **kwargs):
super(MatMultComp, self).__init__(**kwargs)
self.mat = mat
@@ -30,7 +31,8 @@ def compute(self, inputs, outputs):
if __name__ == '__main__':
import sys
- from openmdao.api import Problem, IndepVarComp
+
+ import openmdao.api as om
from openmdao.utils.mpi import MPI
if len(sys.argv) > 1:
@@ -52,9 +54,9 @@ def compute(self, inputs, outputs):
print("mat shape:", mat.shape)
- p = Problem()
+ p = om.Problem()
model = p.model
- model.add_subsystem('indep', IndepVarComp('x', val=np.ones(mat.shape[1])))
+ model.add_subsystem('indep', om.IndepVarComp('x', val=np.ones(mat.shape[1])))
comp = model.add_subsystem('comp', MatMultComp(mat, approx_method='fd', num_par_fd=5))
model.connect('indep.x', 'comp.x')
diff --git a/openmdao/test_suite/components/misc_components.py b/openmdao/test_suite/components/misc_components.py
index ff4bf3b258..dc8ce5389f 100644
--- a/openmdao/test_suite/components/misc_components.py
+++ b/openmdao/test_suite/components/misc_components.py
@@ -9,10 +9,10 @@
import numpy as np
-from openmdao.api import ImplicitComponent
+import openmdao.api as om
-class Comp4LinearCacheTest(ImplicitComponent):
+class Comp4LinearCacheTest(om.ImplicitComponent):
"""
Component needed for testing cached linear solutions.
diff --git a/openmdao/test_suite/components/options_feature_array.py b/openmdao/test_suite/components/options_feature_array.py
index 08d8ed09e4..b309cee887 100644
--- a/openmdao/test_suite/components/options_feature_array.py
+++ b/openmdao/test_suite/components/options_feature_array.py
@@ -4,9 +4,10 @@
"""
import numpy as np
-from openmdao.api import ExplicitComponent
+import openmdao.api as om
-class ArrayMultiplyComp(ExplicitComponent):
+
+class ArrayMultiplyComp(om.ExplicitComponent):
def initialize(self):
self.options.declare('array', types=np.ndarray)
diff --git a/openmdao/test_suite/components/options_feature_function.py b/openmdao/test_suite/components/options_feature_function.py
index accec16593..7718212944 100644
--- a/openmdao/test_suite/components/options_feature_function.py
+++ b/openmdao/test_suite/components/options_feature_function.py
@@ -5,9 +5,10 @@
from types import FunctionType
-from openmdao.api import ExplicitComponent
+import openmdao.api as om
-class UnitaryFunctionComp(ExplicitComponent):
+
+class UnitaryFunctionComp(om.ExplicitComponent):
def initialize(self):
self.options.declare('func', types=FunctionType)
diff --git a/openmdao/test_suite/components/options_feature_lincomb.py b/openmdao/test_suite/components/options_feature_lincomb.py
index 86e5c592be..00214e9aec 100644
--- a/openmdao/test_suite/components/options_feature_lincomb.py
+++ b/openmdao/test_suite/components/options_feature_lincomb.py
@@ -4,9 +4,10 @@
"""
import numpy as np
-from openmdao.api import ExplicitComponent
+import openmdao.api as om
-class LinearCombinationComp(ExplicitComponent):
+
+class LinearCombinationComp(om.ExplicitComponent):
def initialize(self):
self.options.declare('a', default=1., types=np.ScalarType)
diff --git a/openmdao/test_suite/components/options_feature_vector.py b/openmdao/test_suite/components/options_feature_vector.py
index 7daf704d61..6ab8726182 100644
--- a/openmdao/test_suite/components/options_feature_vector.py
+++ b/openmdao/test_suite/components/options_feature_vector.py
@@ -4,9 +4,10 @@
"""
import numpy as np
-from openmdao.api import ExplicitComponent
+import openmdao.api as om
-class VectorDoublingComp(ExplicitComponent):
+
+class VectorDoublingComp(om.ExplicitComponent):
def initialize(self):
self.options.declare('size', types=int)
diff --git a/openmdao/test_suite/components/paraboloid.py b/openmdao/test_suite/components/paraboloid.py
index b799d99c42..6f437d2ad2 100644
--- a/openmdao/test_suite/components/paraboloid.py
+++ b/openmdao/test_suite/components/paraboloid.py
@@ -2,10 +2,11 @@
(x-3)^2 + xy + (y+4)^2 = 3
"""
from __future__ import division, print_function
-from openmdao.core.explicitcomponent import ExplicitComponent
+import openmdao.api as om
-class Paraboloid(ExplicitComponent):
+
+class Paraboloid(om.ExplicitComponent):
"""
Evaluates the equation f(x,y) = (x-3)^2 + xy + (y+4)^2 - 3.
"""
@@ -41,10 +42,9 @@ def compute_partials(self, inputs, partials):
if __name__ == "__main__":
- from openmdao.api import Problem, Group, ScipyOptimizeDriver, ExecComp, IndepVarComp
- model = Group()
- ivc = IndepVarComp()
+ model = om.Group()
+ ivc = om.IndepVarComp()
ivc.add_output('x', 3.0)
ivc.add_output('y', -4.0)
model.add_subsystem('des_vars', ivc)
@@ -53,8 +53,8 @@ def compute_partials(self, inputs, partials):
model.connect('des_vars.x', 'parab_comp.x')
model.connect('des_vars.y', 'parab_comp.y')
- prob = Problem(model)
- prob.driver = ScipyOptimizeDriver() # so 'openmdao cite' will report it for cite docs
+ prob = om.Problem(model)
+ prob.driver = om.ScipyOptimizeDriver() # so 'openmdao cite' will report it for cite docs
prob.setup()
prob.run_model()
print(prob['parab_comp.f_xy'])
diff --git a/openmdao/test_suite/components/paraboloid_feature.py b/openmdao/test_suite/components/paraboloid_feature.py
index 4076fd7e0e..b6edf8633b 100644
--- a/openmdao/test_suite/components/paraboloid_feature.py
+++ b/openmdao/test_suite/components/paraboloid_feature.py
@@ -2,10 +2,11 @@
Demonstration of a model using the Paraboloid component.
"""
from __future__ import division, print_function
-from openmdao.api import ExplicitComponent
+import openmdao.api as om
-class Paraboloid(ExplicitComponent):
+
+class Paraboloid(om.ExplicitComponent):
"""
Evaluates the equation f(x,y) = (x-3)^2 + xy + (y+4)^2 - 3.
"""
@@ -32,12 +33,9 @@ def compute(self, inputs, outputs):
if __name__ == "__main__":
- from openmdao.core.problem import Problem
- from openmdao.core.group import Group
- from openmdao.core.indepvarcomp import IndepVarComp
- model = Group()
- ivc = IndepVarComp()
+ model = om.Group()
+ ivc = om.IndepVarComp()
ivc.add_output('x', 3.0)
ivc.add_output('y', -4.0)
model.add_subsystem('des_vars', ivc)
@@ -46,7 +44,7 @@ def compute(self, inputs, outputs):
model.connect('des_vars.x', 'parab_comp.x')
model.connect('des_vars.y', 'parab_comp.y')
- prob = Problem(model)
+ prob = om.Problem(model)
prob.setup()
prob.run_model()
print(prob['parab_comp.f_xy'])
diff --git a/openmdao/test_suite/components/quad_implicit.py b/openmdao/test_suite/components/quad_implicit.py
index 40d6f5144d..1479b7d373 100644
--- a/openmdao/test_suite/components/quad_implicit.py
+++ b/openmdao/test_suite/components/quad_implicit.py
@@ -1,6 +1,7 @@
-from openmdao.api import ImplicitComponent
+import openmdao.api as om
-class QuadraticComp(ImplicitComponent):
+
+class QuadraticComp(om.ImplicitComponent):
"""
A Simple Implicit Component representing a Quadratic Equation.
diff --git a/openmdao/test_suite/components/sellar.py b/openmdao/test_suite/components/sellar.py
index 04348c211f..5b26e7ded4 100644
--- a/openmdao/test_suite/components/sellar.py
+++ b/openmdao/test_suite/components/sellar.py
@@ -7,23 +7,14 @@
Optimization for Multidisciplinary System Design," Proceedings References 79 of the 34th AIAA
Aerospace Sciences Meeting and Exhibit, Reno, NV, January 1996.
"""
+import inspect
import numpy as np
-import inspect
-
-from openmdao.components.exec_comp import ExecComp
-from openmdao.core.indepvarcomp import IndepVarComp
-from openmdao.core.explicitcomponent import ExplicitComponent
-from openmdao.core.implicitcomponent import ImplicitComponent
-from openmdao.core.group import Group
-from openmdao.core.problem import Problem
-from openmdao.solvers.nonlinear.nonlinear_block_gs import NonlinearBlockGS
-from openmdao.solvers.linear.scipy_iter_solver import ScipyKrylov
-from openmdao.solvers.nonlinear.newton import NewtonSolver
+import openmdao.api as om
-class SellarDis1(ExplicitComponent):
+class SellarDis1(om.ExplicitComponent):
"""
Component containing Discipline 1 -- no derivatives version.
"""
@@ -108,7 +99,7 @@ def _do_declares(self):
self.declare_partials(of='*', wrt='*', method='cs')
-class SellarDis2(ExplicitComponent):
+class SellarDis2(om.ExplicitComponent):
"""
Component containing Discipline 2 -- no derivatives version.
"""
@@ -199,19 +190,19 @@ def _do_declares(self):
self.declare_partials(of='*', wrt='*', method='cs')
-class SellarNoDerivatives(Group):
+class SellarNoDerivatives(om.Group):
"""
Group containing the Sellar MDA. This version uses the disciplines without derivatives.
"""
def initialize(self):
- self.options.declare('nonlinear_solver', default=NonlinearBlockGS,
+ self.options.declare('nonlinear_solver', default=om.NonlinearBlockGS,
desc='Nonlinear solver for Sellar MDA')
self.options.declare('nl_atol', default=None,
desc='User-specified atol for nonlinear solver.')
self.options.declare('nl_maxiter', default=None,
desc='Iteration limit for nonlinear solver.')
- self.options.declare('linear_solver', default=ScipyKrylov,
+ self.options.declare('linear_solver', default=om.ScipyKrylov,
desc='Linear solver')
self.options.declare('ln_atol', default=None,
desc='User-specified atol for linear solver.')
@@ -219,19 +210,19 @@ def initialize(self):
desc='Iteration limit for linear solver.')
def setup(self):
- self.add_subsystem('px', IndepVarComp('x', 1.0), promotes=['x'])
- self.add_subsystem('pz', IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
+ self.add_subsystem('px', om.IndepVarComp('x', 1.0), promotes=['x'])
+ self.add_subsystem('pz', om.IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
- cycle = self.add_subsystem('cycle', Group(), promotes=['x', 'z', 'y1', 'y2'])
+ cycle = self.add_subsystem('cycle', om.Group(), promotes=['x', 'z', 'y1', 'y2'])
cycle.add_subsystem('d1', SellarDis1(), promotes=['x', 'z', 'y1', 'y2'])
cycle.add_subsystem('d2', SellarDis2(), promotes=['z', 'y1', 'y2'])
- self.add_subsystem('obj_cmp', ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
- z=np.array([0.0, 0.0]), x=0.0),
+ self.add_subsystem('obj_cmp', om.ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
+ z=np.array([0.0, 0.0]), x=0.0),
promotes=['x', 'z', 'y1', 'y2', 'obj'])
- self.add_subsystem('con_cmp1', ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
- self.add_subsystem('con_cmp2', ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
+ self.add_subsystem('con_cmp1', om.ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
+ self.add_subsystem('con_cmp2', om.ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
nl = self.options['nonlinear_solver']
self.nonlinear_solver = nl() if inspect.isclass(nl) else nl
@@ -249,19 +240,19 @@ def configure(self):
self.cycle.linear_solver.options['maxiter'] = self.options['ln_maxiter']
-class SellarDerivatives(Group):
+class SellarDerivatives(om.Group):
"""
Group containing the Sellar MDA. This version uses the disciplines with derivatives.
"""
def initialize(self):
- self.options.declare('nonlinear_solver', default=NonlinearBlockGS,
+ self.options.declare('nonlinear_solver', default=om.NonlinearBlockGS,
desc='Nonlinear solver (class or instance) for Sellar MDA')
self.options.declare('nl_atol', default=None,
desc='User-specified atol for nonlinear solver.')
self.options.declare('nl_maxiter', default=None,
desc='Iteration limit for nonlinear solver.')
- self.options.declare('linear_solver', default=ScipyKrylov,
+ self.options.declare('linear_solver', default=om.ScipyKrylov,
desc='Linear solver (class or instance)')
self.options.declare('ln_atol', default=None,
desc='User-specified atol for linear solver.')
@@ -269,19 +260,19 @@ def initialize(self):
desc='Iteration limit for linear solver.')
def setup(self):
- self.add_subsystem('px', IndepVarComp('x', 1.0), promotes=['x'])
- self.add_subsystem('pz', IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
+ self.add_subsystem('px', om.IndepVarComp('x', 1.0), promotes=['x'])
+ self.add_subsystem('pz', om.IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
self.add_subsystem('d1', SellarDis1withDerivatives(), promotes=['x', 'z', 'y1', 'y2'])
self.add_subsystem('d2', SellarDis2withDerivatives(), promotes=['z', 'y1', 'y2'])
- self.add_subsystem('obj_cmp', ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)', obj=0.0,
- x=0.0, z=np.array([0.0, 0.0]), y1=0.0, y2=0.0),
+ self.add_subsystem('obj_cmp', om.ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)', obj=0.0,
+ x=0.0, z=np.array([0.0, 0.0]), y1=0.0, y2=0.0),
promotes=['obj', 'x', 'z', 'y1', 'y2'])
- self.add_subsystem('con_cmp1', ExecComp('con1 = 3.16 - y1', con1=0.0, y1=0.0),
+ self.add_subsystem('con_cmp1', om.ExecComp('con1 = 3.16 - y1', con1=0.0, y1=0.0),
promotes=['con1', 'y1'])
- self.add_subsystem('con_cmp2', ExecComp('con2 = y2 - 24.0', con2=0.0, y2=0.0),
+ self.add_subsystem('con_cmp2', om.ExecComp('con2 = y2 - 24.0', con2=0.0, y2=0.0),
promotes=['con2', 'y2'])
nl = self.options['nonlinear_solver']
@@ -299,46 +290,46 @@ def setup(self):
self.linear_solver.options['maxiter'] = self.options['ln_maxiter']
-class SellarDerivativesConnected(Group):
+class SellarDerivativesConnected(om.Group):
"""
Group containing the Sellar MDA. This version uses the disciplines with derivatives.
"""
def setup(self):
- self.add_subsystem('px', IndepVarComp('x', 1.0))
- self.add_subsystem('pz', IndepVarComp('z', np.array([5.0, 2.0])))
+ self.add_subsystem('px', om.IndepVarComp('x', 1.0))
+ self.add_subsystem('pz', om.IndepVarComp('z', np.array([5.0, 2.0])))
self.add_subsystem('d1', SellarDis1withDerivatives())
self.add_subsystem('d2', SellarDis2withDerivatives())
- self.add_subsystem('obj_cmp', ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
- z=np.array([0.0, 0.0]), x=0.0))
+ self.add_subsystem('obj_cmp', om.ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
+ z=np.array([0.0, 0.0]), x=0.0))
- self.add_subsystem('con_cmp1', ExecComp('con1 = 3.16 - y1'))
- self.add_subsystem('con_cmp2', ExecComp('con2 = y2 - 24.0'))
+ self.add_subsystem('con_cmp1', om.ExecComp('con1 = 3.16 - y1'))
+ self.add_subsystem('con_cmp2', om.ExecComp('con2 = y2 - 24.0'))
self.connect('px.x', ['d1.x', 'obj_cmp.x'])
self.connect('pz.z', ['d1.z', 'd2.z', 'obj_cmp.z'])
self.connect('d1.y1', ['d2.y1', 'obj_cmp.y1', 'con_cmp1.y1'])
self.connect('d2.y2', ['d1.y2', 'obj_cmp.y2', 'con_cmp2.y2'])
- self.nonlinear_solver = NonlinearBlockGS()
- self.linear_solver = ScipyKrylov()
+ self.nonlinear_solver = om.NonlinearBlockGS()
+ self.linear_solver = om.ScipyKrylov()
-class SellarDerivativesGrouped(Group):
+class SellarDerivativesGrouped(om.Group):
"""
Group containing the Sellar MDA. This version uses the disciplines with derivatives.
"""
def initialize(self):
- self.options.declare('nonlinear_solver', default=NonlinearBlockGS,
+ self.options.declare('nonlinear_solver', default=om.NonlinearBlockGS,
desc='Nonlinear solver (class or instance) for Sellar MDA')
self.options.declare('nl_atol', default=None,
desc='User-specified atol for nonlinear solver.')
self.options.declare('nl_maxiter', default=None,
desc='Iteration limit for nonlinear solver.')
- self.options.declare('linear_solver', default=ScipyKrylov,
+ self.options.declare('linear_solver', default=om.ScipyKrylov,
desc='Linear solver (class or instance)')
self.options.declare('ln_atol', default=None,
desc='User-specified atol for linear solver.')
@@ -346,19 +337,19 @@ def initialize(self):
desc='Iteration limit for linear solver.')
def setup(self):
- self.add_subsystem('px', IndepVarComp('x', 1.0), promotes=['x'])
- self.add_subsystem('pz', IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
+ self.add_subsystem('px', om.IndepVarComp('x', 1.0), promotes=['x'])
+ self.add_subsystem('pz', om.IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
- self.mda = mda = self.add_subsystem('mda', Group(), promotes=['x', 'z', 'y1', 'y2'])
+ self.mda = mda = self.add_subsystem('mda', om.Group(), promotes=['x', 'z', 'y1', 'y2'])
mda.add_subsystem('d1', SellarDis1withDerivatives(), promotes=['x', 'z', 'y1', 'y2'])
mda.add_subsystem('d2', SellarDis2withDerivatives(), promotes=['z', 'y1', 'y2'])
- self.add_subsystem('obj_cmp', ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
- z=np.array([0.0, 0.0]), x=0.0, y1=0.0, y2=0.0),
+ self.add_subsystem('obj_cmp', om.ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
+ z=np.array([0.0, 0.0]), x=0.0, y1=0.0, y2=0.0),
promotes=['obj', 'x', 'z', 'y1', 'y2'])
- self.add_subsystem('con_cmp1', ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
- self.add_subsystem('con_cmp2', ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
+ self.add_subsystem('con_cmp1', om.ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
+ self.add_subsystem('con_cmp2', om.ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
nl = self.options['nonlinear_solver']
self.nonlinear_solver = nl() if inspect.isclass(nl) else nl
@@ -375,11 +366,11 @@ def setup(self):
self.linear_solver.options['maxiter'] = self.options['ln_maxiter']
def configure(self):
- self.mda.linear_solver = ScipyKrylov()
- self.mda.nonlinear_solver = NonlinearBlockGS()
+ self.mda.linear_solver = om.ScipyKrylov()
+ self.mda.nonlinear_solver = om.NonlinearBlockGS()
-class StateConnection(ImplicitComponent):
+class StateConnection(om.ImplicitComponent):
"""
Define connection with an explicit equation.
"""
@@ -419,19 +410,19 @@ def linearize(self, inputs, outputs, J):
J[('y2_command', 'y2_actual')] = 1.0
-class SellarStateConnection(Group):
+class SellarStateConnection(om.Group):
"""
Group containing the Sellar MDA. This version uses the disciplines with derivatives.
"""
def initialize(self):
- self.options.declare('nonlinear_solver', default=NewtonSolver,
+ self.options.declare('nonlinear_solver', default=om.NewtonSolver,
desc='Nonlinear solver (class or instance) for Sellar MDA')
self.options.declare('nl_atol', default=None,
desc='User-specified atol for nonlinear solver.')
self.options.declare('nl_maxiter', default=None,
desc='Iteration limit for nonlinear solver.')
- self.options.declare('linear_solver', default=ScipyKrylov,
+ self.options.declare('linear_solver', default=om.ScipyKrylov,
desc='Linear solver (class or instance)')
self.options.declare('ln_atol', default=None,
desc='User-specified atol for linear solver.')
@@ -439,15 +430,15 @@ def initialize(self):
desc='Iteration limit for linear solver.')
def setup(self):
- self.add_subsystem('px', IndepVarComp('x', 1.0), promotes=['x'])
- self.add_subsystem('pz', IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
+ self.add_subsystem('px', om.IndepVarComp('x', 1.0), promotes=['x'])
+ self.add_subsystem('pz', om.IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
- sub = self.add_subsystem('sub', Group(),
+ sub = self.add_subsystem('sub', om.Group(),
promotes=['x', 'z', 'y1',
'state_eq.y2_actual', 'state_eq.y2_command',
'd1.y2', 'd2.y2'])
- subgrp = sub.add_subsystem('state_eq_group', Group(),
+ subgrp = sub.add_subsystem('state_eq_group', om.Group(),
promotes=['state_eq.y2_actual', 'state_eq.y2_command'])
subgrp.add_subsystem('state_eq', StateConnection())
@@ -457,13 +448,13 @@ def setup(self):
self.connect('state_eq.y2_command', 'd1.y2')
self.connect('d2.y2', 'state_eq.y2_actual')
- self.add_subsystem('obj_cmp', ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
- z=np.array([0.0, 0.0]), x=0.0, y1=0.0, y2=0.0),
+ self.add_subsystem('obj_cmp', om.ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
+ z=np.array([0.0, 0.0]), x=0.0, y1=0.0, y2=0.0),
promotes=['x', 'z', 'y1', 'obj'])
self.connect('d2.y2', 'obj_cmp.y2')
- self.add_subsystem('con_cmp1', ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
- self.add_subsystem('con_cmp2', ExecComp('con2 = y2 - 24.0'), promotes=['con2'])
+ self.add_subsystem('con_cmp1', om.ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
+ self.add_subsystem('con_cmp2', om.ExecComp('con2 = y2 - 24.0'), promotes=['con2'])
self.connect('d2.y2', 'con_cmp2.y2')
nl = self.options['nonlinear_solver']
@@ -481,11 +472,11 @@ def setup(self):
self.linear_solver.options['maxiter'] = self.options['ln_maxiter']
def configure(self):
- self.sub.linear_solver = ScipyKrylov()
- self.sub.state_eq_group.linear_solver = ScipyKrylov()
+ self.sub.linear_solver = om.ScipyKrylov()
+ self.sub.state_eq_group.linear_solver = om.ScipyKrylov()
-class SellarImplicitDis1(ImplicitComponent):
+class SellarImplicitDis1(om.ImplicitComponent):
"""
Component containing Discipline 1 -- no derivatives version.
"""
@@ -547,7 +538,7 @@ def linearize(self, inputs, outputs, J):
J['y1', 'y1'] = 1.0
-class SellarImplicitDis2(ImplicitComponent):
+class SellarImplicitDis2(om.ImplicitComponent):
"""
Component containing Discipline 2 -- implicit version.
"""
@@ -616,7 +607,7 @@ def linearize(self, inputs, outputs, J):
J['y2', 'y2'] = 1.0
-class SellarProblem(Problem):
+class SellarProblem(om.Problem):
"""
The Sellar problem with configurable model class.
"""
@@ -635,7 +626,7 @@ def __init__(self, model_class=SellarDerivatives, **kwargs):
self.set_solver_print(0)
-class SellarProblemWithArrays(Problem):
+class SellarProblemWithArrays(om.Problem):
"""
The Sellar problem with ndarray variable options
"""
diff --git a/openmdao/test_suite/components/sellar_feature.py b/openmdao/test_suite/components/sellar_feature.py
index 2843cb7345..7e02d2b365 100644
--- a/openmdao/test_suite/components/sellar_feature.py
+++ b/openmdao/test_suite/components/sellar_feature.py
@@ -7,15 +7,15 @@
Optimization for Multidisciplinary System Design," Proceedings References 79 of the 34th AIAA
Aerospace Sciences Meeting and Exhibit, Reno, NV, January 1996.
"""
-
import numpy as np
-from openmdao.api import Group, ExplicitComponent, ExecComp, IndepVarComp, \
- NonlinearBlockGS, ScipyKrylov, DirectSolver, EQConstraintComp, NewtonSolver
+
+import openmdao.api as om
from openmdao.test_suite.components.sellar import SellarDis1withDerivatives, \
SellarDis2withDerivatives
from openmdao.test_suite.components.double_sellar import SubSellar
-class SellarDis1(ExplicitComponent):
+
+class SellarDis1(om.ExplicitComponent):
"""
Component containing Discipline 1 -- no derivatives version.
"""
@@ -50,7 +50,7 @@ def compute(self, inputs, outputs):
outputs['y1'] = z1**2 + z2 + x1 - 0.2*y2
-class SellarDis2(ExplicitComponent):
+class SellarDis2(om.ExplicitComponent):
"""
Component containing Discipline 2 -- no derivatives version.
"""
@@ -87,57 +87,61 @@ def compute(self, inputs, outputs):
outputs['y2'] = y1**.5 + z1 + z2
-class SellarMDA(Group):
+class SellarMDA(om.Group):
"""
Group containing the Sellar MDA.
"""
def setup(self):
- indeps = self.add_subsystem('indeps', IndepVarComp(), promotes=['*'])
+ indeps = self.add_subsystem('indeps', om.IndepVarComp(), promotes=['*'])
indeps.add_output('x', 1.0)
indeps.add_output('z', np.array([5.0, 2.0]))
- cycle = self.add_subsystem('cycle', Group(), promotes=['*'])
- cycle.add_subsystem('d1', SellarDis1(), promotes_inputs=['x', 'z', 'y2'], promotes_outputs=['y1'])
- cycle.add_subsystem('d2', SellarDis2(), promotes_inputs=['z', 'y1'], promotes_outputs=['y2'])
+ cycle = self.add_subsystem('cycle', om.Group(), promotes=['*'])
+ cycle.add_subsystem('d1', SellarDis1(), promotes_inputs=['x', 'z', 'y2'],
+ promotes_outputs=['y1'])
+ cycle.add_subsystem('d2', SellarDis2(), promotes_inputs=['z', 'y1'],
+ promotes_outputs=['y2'])
# Nonlinear Block Gauss Seidel is a gradient free solver
- cycle.nonlinear_solver = NonlinearBlockGS()
+ cycle.nonlinear_solver = om.NonlinearBlockGS()
- self.add_subsystem('obj_cmp', ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
- z=np.array([0.0, 0.0]), x=0.0),
+ self.add_subsystem('obj_cmp', om.ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
+ z=np.array([0.0, 0.0]), x=0.0),
promotes=['x', 'z', 'y1', 'y2', 'obj'])
- self.add_subsystem('con_cmp1', ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
- self.add_subsystem('con_cmp2', ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
+ self.add_subsystem('con_cmp1', om.ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
+ self.add_subsystem('con_cmp2', om.ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
-class SellarMDALinearSolver(Group):
+class SellarMDALinearSolver(om.Group):
"""
Group containing the Sellar MDA.
"""
def setup(self):
- indeps = self.add_subsystem('indeps', IndepVarComp(), promotes=['*'])
+ indeps = self.add_subsystem('indeps', om.IndepVarComp(), promotes=['*'])
indeps.add_output('x', 1.0)
indeps.add_output('z', np.array([5.0, 2.0]))
- cycle = self.add_subsystem('cycle', Group(), promotes=['*'])
- d1 = cycle.add_subsystem('d1', SellarDis1(), promotes_inputs=['x', 'z', 'y2'], promotes_outputs=['y1'])
- d2 = cycle.add_subsystem('d2', SellarDis2(), promotes_inputs=['z', 'y1'], promotes_outputs=['y2'])
+ cycle = self.add_subsystem('cycle', om.Group(), promotes=['*'])
+ d1 = cycle.add_subsystem('d1', SellarDis1(), promotes_inputs=['x', 'z', 'y2'],
+ promotes_outputs=['y1'])
+ d2 = cycle.add_subsystem('d2', SellarDis2(), promotes_inputs=['z', 'y1'],
+ promotes_outputs=['y2'])
- cycle.nonlinear_solver = NonlinearBlockGS()
- cycle.linear_solver = DirectSolver()
+ cycle.nonlinear_solver = om.NonlinearBlockGS()
+ cycle.linear_solver = om.DirectSolver()
- self.add_subsystem('obj_cmp', ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
+ self.add_subsystem('obj_cmp', om.ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
z=np.array([0.0, 0.0]), x=0.0),
promotes=['x', 'z', 'y1', 'y2', 'obj'])
- self.add_subsystem('con_cmp1', ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
- self.add_subsystem('con_cmp2', ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
+ self.add_subsystem('con_cmp1', om.ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
+ self.add_subsystem('con_cmp2', om.ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
-class SellarDis1CS(ExplicitComponent):
+class SellarDis1CS(om.ExplicitComponent):
"""
Component containing Discipline 1 -- no derivatives version.
Uses Complex Step
@@ -173,7 +177,7 @@ def compute(self, inputs, outputs):
outputs['y1'] = z1**2 + z2 + x1 - 0.2*y2
-class SellarDis2CS(ExplicitComponent):
+class SellarDis2CS(om.ExplicitComponent):
"""
Component containing Discipline 2 -- no derivatives version.
Uses Complex Step
@@ -211,37 +215,37 @@ def compute(self, inputs, outputs):
outputs['y2'] = y1**.5 + z1 + z2
-class SellarNoDerivativesCS(Group):
+class SellarNoDerivativesCS(om.Group):
"""
Group containing the Sellar MDA. This version uses the disciplines without derivatives.
"""
def setup(self):
- self.add_subsystem('px', IndepVarComp('x', 1.0), promotes=['x'])
- self.add_subsystem('pz', IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
+ self.add_subsystem('px', om.IndepVarComp('x', 1.0), promotes=['x'])
+ self.add_subsystem('pz', om.IndepVarComp('z', np.array([5.0, 2.0])), promotes=['z'])
- cycle = self.add_subsystem('cycle', Group(), promotes=['x', 'z', 'y1', 'y2'])
+ cycle = self.add_subsystem('cycle', om.Group(), promotes=['x', 'z', 'y1', 'y2'])
d1 = cycle.add_subsystem('d1', SellarDis1CS(), promotes=['x', 'z', 'y1', 'y2'])
d2 = cycle.add_subsystem('d2', SellarDis2CS(), promotes=['z', 'y1', 'y2'])
- self.add_subsystem('obj_cmp', ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
- z=np.array([0.0, 0.0]), x=0.0),
+ self.add_subsystem('obj_cmp', om.ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
+ z=np.array([0.0, 0.0]), x=0.0),
promotes=['x', 'z', 'y1', 'y2', 'obj'])
- self.add_subsystem('con_cmp1', ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
- self.add_subsystem('con_cmp2', ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
+ self.add_subsystem('con_cmp1', om.ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
+ self.add_subsystem('con_cmp2', om.ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
- self.nonlinear_solver = NonlinearBlockGS()
- self.linear_solver = ScipyKrylov()
+ self.nonlinear_solver = om.NonlinearBlockGS()
+ self.linear_solver = om.ScipyKrylov()
-class SellarIDF(Group):
+class SellarIDF(om.Group):
"""
Individual Design Feasible (IDF) architecture for the Sellar problem.
"""
def setup(self):
# construct the Sellar model with `y1` and `y2` as independent variables
- dv = IndepVarComp()
+ dv = om.IndepVarComp()
dv.add_output('x', 5.)
dv.add_output('y1', 5.)
dv.add_output('y2', 5.)
@@ -251,11 +255,11 @@ def setup(self):
self.add_subsystem('d1', SellarDis1withDerivatives())
self.add_subsystem('d2', SellarDis2withDerivatives())
- self.add_subsystem('obj_cmp', ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
+ self.add_subsystem('obj_cmp', om.ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
x=0., z=np.array([0., 0.])))
- self.add_subsystem('con_cmp1', ExecComp('con1 = 3.16 - y1'))
- self.add_subsystem('con_cmp2', ExecComp('con2 = y2 - 24.0'))
+ self.add_subsystem('con_cmp1', om.ExecComp('con1 = 3.16 - y1'))
+ self.add_subsystem('con_cmp2', om.ExecComp('con2 = y2 - 24.0'))
self.connect('dv.x', ['d1.x', 'obj_cmp.x'])
self.connect('dv.y1', ['d2.y1', 'obj_cmp.y1', 'con_cmp1.y1'])
@@ -265,7 +269,7 @@ def setup(self):
# rather than create a cycle by connecting d1.y1 to d2.y1 and d2.y2 to d1.y2
# we will constrain y1 and y2 to be equal for the two disciplines
- equal = EQConstraintComp()
+ equal = om.EQConstraintComp()
self.add_subsystem('equal', equal)
equal.add_eq_output('y1', add_constraint=True)
diff --git a/openmdao/test_suite/components/simple_comps.py b/openmdao/test_suite/components/simple_comps.py
index f50f0904c6..1a518513e5 100644
--- a/openmdao/test_suite/components/simple_comps.py
+++ b/openmdao/test_suite/components/simple_comps.py
@@ -2,10 +2,10 @@
import numpy as np
-from openmdao.api import ExplicitComponent
+import openmdao.api as om
-class DoubleArrayComp(ExplicitComponent):
+class DoubleArrayComp(om.ExplicitComponent):
"""
A fairly simple array component.
"""
@@ -51,7 +51,7 @@ def compute_partials(self, inputs, partials):
partials[('y2', 'x2')] = self.JJ[2:4, 2:4]
-class NonSquareArrayComp(ExplicitComponent):
+class NonSquareArrayComp(om.ExplicitComponent):
"""
A fairly simple array component.
"""
@@ -97,7 +97,7 @@ def compute_partials(self, inputs, partials):
partials[('y2', 'x2')] = self.JJ[3:4, 2:4]
-class TestExplCompDeprecated(ExplicitComponent):
+class TestExplCompDeprecated(om.ExplicitComponent):
"""
A component that adds variables in the __init__ function.
"""
diff --git a/openmdao/test_suite/components/three_bar_truss.py b/openmdao/test_suite/components/three_bar_truss.py
index 233605e9ff..2094bbe28e 100644
--- a/openmdao/test_suite/components/three_bar_truss.py
+++ b/openmdao/test_suite/components/three_bar_truss.py
@@ -10,7 +10,7 @@
import numpy as np
-from openmdao.core.explicitcomponent import ExplicitComponent
+import openmdao.api as om
def stress_calc(A, E):
@@ -64,7 +64,7 @@ def stress_calc(A, E):
return sigma
-class ThreeBarTruss(ExplicitComponent):
+class ThreeBarTruss(om.ExplicitComponent):
"""
3 Bar truss problem with 3 continuous design variables and 3 discrete
material choices. Material chosen as follows:
@@ -156,7 +156,7 @@ def compute(self, inputs, outputs):
outputs['stress'] = (np.abs(sigma)/sigma_y)
-class ThreeBarTrussVector(ExplicitComponent):
+class ThreeBarTrussVector(om.ExplicitComponent):
"""
3 Bar truss problem with 3 continuous design variables and 3 discrete
material choices. Material chosen as follows:
diff --git a/openmdao/test_suite/components/unit_conv.py b/openmdao/test_suite/components/unit_conv.py
index f5561cc3e7..93224a1679 100644
--- a/openmdao/test_suite/components/unit_conv.py
+++ b/openmdao/test_suite/components/unit_conv.py
@@ -2,10 +2,10 @@
import numpy as np
-from openmdao.api import ExplicitComponent, Group, IndepVarComp
+import openmdao.api as om
-class SrcComp(ExplicitComponent):
+class SrcComp(om.ExplicitComponent):
"""Source provides degrees Celsius."""
def setup(self):
@@ -37,7 +37,7 @@ def compute_partials(self, inputs, partials):
pass
-class TgtCompF(ExplicitComponent):
+class TgtCompF(om.ExplicitComponent):
"""Target expressed in degrees F."""
def setup(self):
@@ -69,7 +69,7 @@ def compute_partials(self, inputs, partials):
pass
-class TgtCompC(ExplicitComponent):
+class TgtCompC(om.ExplicitComponent):
"""Target expressed in degrees Celsius."""
def setup(self):
@@ -101,7 +101,7 @@ def compute_partials(self, inputs, partials):
pass
-class TgtCompK(ExplicitComponent):
+class TgtCompK(om.ExplicitComponent):
"""Target expressed in degrees Kelvin."""
def setup(self):
@@ -133,7 +133,7 @@ def compute_partials(self, inputs, partials):
pass
-class TgtCompFMulti(ExplicitComponent):
+class TgtCompFMulti(om.ExplicitComponent):
"""Contains some extra inputs that might trip things up."""
def setup(self):
@@ -163,7 +163,7 @@ def compute_partials(self, inputs, J):
J['x3_', 'x2_'] = 0.0
-class UnitConvGroup(Group):
+class UnitConvGroup(om.Group):
"""Group containing a degC source that feeds into three targets with
units degF, degC, and degK respectively. Good for testing unit
conversion."""
@@ -171,7 +171,7 @@ class UnitConvGroup(Group):
def __init__(self, **kwargs):
super(UnitConvGroup, self).__init__(**kwargs)
- self.add_subsystem('px1', IndepVarComp('x1', 100.0))
+ self.add_subsystem('px1', om.IndepVarComp('x1', 100.0))
self.add_subsystem('src', SrcComp())
self.add_subsystem('tgtF', TgtCompF())
self.add_subsystem('tgtC', TgtCompC())
@@ -183,7 +183,7 @@ def __init__(self, **kwargs):
self.connect('src.x2', 'tgtK.x2')
-class UnitConvGroupImplicitConns(Group):
+class UnitConvGroupImplicitConns(om.Group):
""" Group containing a defF source that feeds into three targets with
units degF, degC, and degK respectively. Good for testing unit
conversion.
@@ -194,7 +194,7 @@ class UnitConvGroupImplicitConns(Group):
def __init__(self):
super(UnitConvGroupImplicitConns, self).__init__()
- self.add_subsystem('px1', IndepVarComp('x1', 100.0), promotes_outputs=['x1'])
+ self.add_subsystem('px1', om.IndepVarComp('x1', 100.0), promotes_outputs=['x1'])
self.add_subsystem('src', SrcComp(), promotes_inputs=['x1'], promotes_outputs=['x2'])
self.add_subsystem('tgtF', TgtCompF(), promotes_inputs=['x2'])
self.add_subsystem('tgtC', TgtCompC(), promotes_inputs=['x2'])
diff --git a/openmdao/test_suite/groups/cycle_group.py b/openmdao/test_suite/groups/cycle_group.py
index 26e7d31c49..3e4006cfb9 100644
--- a/openmdao/test_suite/groups/cycle_group.py
+++ b/openmdao/test_suite/groups/cycle_group.py
@@ -28,12 +28,13 @@
from __future__ import print_function, division
from six.moves import range
+
import numpy as np
-from openmdao.api import IndepVarComp
-from openmdao.test_suite.groups.parametric_group import ParametericTestGroup
+import openmdao.api as om
from openmdao.test_suite.components.cycle_comps import PSI, \
ExplicitCycleComp, ExplicitFirstComp, ExplicitLastComp
+from openmdao.test_suite.groups.parametric_group import ParametericTestGroup
class CycleGroup(ParametericTestGroup):
@@ -118,8 +119,8 @@ def _generate_components(self, conn_type, first_class, middle_class, last_class,
'num_comp': self.options['num_comp']
}
- self.add_subsystem('psi_comp', IndepVarComp('psi', PSI))
- indep_var_comp = self.add_subsystem('x0_comp', IndepVarComp())
+ self.add_subsystem('psi_comp', om.IndepVarComp('psi', PSI))
+ indep_var_comp = self.add_subsystem('x0_comp', om.IndepVarComp())
for i in range(num_var):
indep_var_comp.add_output('x_{0}'.format(i), np.ones(var_shape))
diff --git a/openmdao/test_suite/groups/implicit_group.py b/openmdao/test_suite/groups/implicit_group.py
index a1eed8feb1..6559ca2e32 100644
--- a/openmdao/test_suite/groups/implicit_group.py
+++ b/openmdao/test_suite/groups/implicit_group.py
@@ -2,11 +2,10 @@
from __future__ import division, print_function
-from openmdao.api import Group, ImplicitComponent
-from openmdao.api import LinearBlockGS, NonlinearBlockGS
+import openmdao.api as om
-class Comp(ImplicitComponent):
+class Comp(om.ImplicitComponent):
def setup(self):
self.add_input('a')
@@ -74,13 +73,13 @@ def solve_linear(self, d_outputs, d_residuals, mode):
out_vec[var] = in_vec[var]
-class TestImplicitGroup(Group):
+class TestImplicitGroup(om.Group):
"""
A `Group` with two interconnected
s.
"""
- def __init__(self, lnSolverClass=LinearBlockGS,
- nlSolverClass=NonlinearBlockGS):
+ def __init__(self, lnSolverClass=om.LinearBlockGS,
+ nlSolverClass=om.NonlinearBlockGS):
super(TestImplicitGroup, self).__init__()
diff --git a/openmdao/test_suite/groups/parallel_groups.py b/openmdao/test_suite/groups/parallel_groups.py
index 5870ca6050..ea5b489f77 100644
--- a/openmdao/test_suite/groups/parallel_groups.py
+++ b/openmdao/test_suite/groups/parallel_groups.py
@@ -2,13 +2,9 @@
from __future__ import division, print_function
-from openmdao.core.group import Group
-from openmdao.core.parallel_group import ParallelGroup
-from openmdao.core.indepvarcomp import IndepVarComp
-from openmdao.components.exec_comp import ExecComp
+import openmdao.api as om
-
-class FanOut(Group):
+class FanOut(om.Group):
"""
Topology where one comp broadcasts an output to two target
components.
@@ -17,17 +13,17 @@ class FanOut(Group):
def __init__(self):
super(FanOut, self).__init__()
- self.add_subsystem('p', IndepVarComp('x', 1.0))
- self.add_subsystem('comp1', ExecComp(['y=3.0*x']))
- self.add_subsystem('comp2', ExecComp(['y=-2.0*x']))
- self.add_subsystem('comp3', ExecComp(['y=5.0*x']))
+ self.add_subsystem('p', om.IndepVarComp('x', 1.0))
+ self.add_subsystem('comp1', om.ExecComp(['y=3.0*x']))
+ self.add_subsystem('comp2', om.ExecComp(['y=-2.0*x']))
+ self.add_subsystem('comp3', om.ExecComp(['y=5.0*x']))
self.connect("p.x", "comp1.x")
self.connect("comp1.y", "comp2.x")
self.connect("comp1.y", "comp3.x")
-class FanOutGrouped(Group):
+class FanOutGrouped(om.Group):
"""
Topology where one component broadcasts an output to two target
components.
@@ -36,15 +32,15 @@ class FanOutGrouped(Group):
def __init__(self):
super(FanOutGrouped, self).__init__()
- self.add_subsystem('iv', IndepVarComp('x', 1.0))
- self.add_subsystem('c1', ExecComp(['y=3.0*x']))
+ self.add_subsystem('iv', om.IndepVarComp('x', 1.0))
+ self.add_subsystem('c1', om.ExecComp(['y=3.0*x']))
- self.sub = self.add_subsystem('sub', ParallelGroup())
- self.sub.add_subsystem('c2', ExecComp(['y=-2.0*x']))
- self.sub.add_subsystem('c3', ExecComp(['y=5.0*x']))
+ self.sub = self.add_subsystem('sub', om.ParallelGroup())
+ self.sub.add_subsystem('c2', om.ExecComp(['y=-2.0*x']))
+ self.sub.add_subsystem('c3', om.ExecComp(['y=5.0*x']))
- self.add_subsystem('c2', ExecComp(['y=x']))
- self.add_subsystem('c3', ExecComp(['y=x']))
+ self.add_subsystem('c2', om.ExecComp(['y=x']))
+ self.add_subsystem('c3', om.ExecComp(['y=x']))
self.connect('iv.x', 'c1.x')
@@ -55,7 +51,7 @@ def __init__(self):
self.connect('sub.c3.y', 'c3.x')
-class FanIn(Group):
+class FanIn(om.Group):
"""
Topology where two comps feed a single comp.
"""
@@ -63,11 +59,11 @@ class FanIn(Group):
def __init__(self):
super(FanIn, self).__init__()
- self.add_subsystem('p1', IndepVarComp('x1', 1.0))
- self.add_subsystem('p2', IndepVarComp('x2', 1.0))
- self.add_subsystem('comp1', ExecComp(['y=-2.0*x']))
- self.add_subsystem('comp2', ExecComp(['y=5.0*x']))
- self.add_subsystem('comp3', ExecComp(['y=3.0*x1+7.0*x2']))
+ self.add_subsystem('p1', om.IndepVarComp('x1', 1.0))
+ self.add_subsystem('p2', om.IndepVarComp('x2', 1.0))
+ self.add_subsystem('comp1', om.ExecComp(['y=-2.0*x']))
+ self.add_subsystem('comp2', om.ExecComp(['y=5.0*x']))
+ self.add_subsystem('comp3', om.ExecComp(['y=3.0*x1+7.0*x2']))
self.connect("comp1.y", "comp3.x1")
self.connect("comp2.y", "comp3.x2")
@@ -75,7 +71,7 @@ def __init__(self):
self.connect("p2.x2", "comp2.x")
-class FanInGrouped(Group):
+class FanInGrouped(om.Group):
"""
Topology where two components in a Group feed a single component
outside of that Group.
@@ -84,16 +80,16 @@ class FanInGrouped(Group):
def __init__(self):
super(FanInGrouped, self).__init__()
- iv = self.add_subsystem('iv', IndepVarComp())
+ iv = self.add_subsystem('iv', om.IndepVarComp())
iv.add_output('x1', 1.0)
iv.add_output('x2', 1.0)
iv.add_output('x3', 1.0)
- self.sub = self.add_subsystem('sub', ParallelGroup())
- self.sub.add_subsystem('c1', ExecComp(['y=-2.0*x']))
- self.sub.add_subsystem('c2', ExecComp(['y=5.0*x']))
+ self.sub = self.add_subsystem('sub', om.ParallelGroup())
+ self.sub.add_subsystem('c1', om.ExecComp(['y=-2.0*x']))
+ self.sub.add_subsystem('c2', om.ExecComp(['y=5.0*x']))
- self.add_subsystem('c3', ExecComp(['y=3.0*x1+7.0*x2']))
+ self.add_subsystem('c3', om.ExecComp(['y=3.0*x1+7.0*x2']))
self.connect("sub.c1.y", "c3.x1")
self.connect("sub.c2.y", "c3.x2")
@@ -101,7 +97,8 @@ def __init__(self):
self.connect("iv.x1", "sub.c1.x")
self.connect("iv.x2", "sub.c2.x")
-class FanInGrouped2(Group):
+
+class FanInGrouped2(om.Group):
"""
Topology where two components in a Group feed a single component
outside of that Group. This is slightly different than FanInGrouped
@@ -113,14 +110,14 @@ class FanInGrouped2(Group):
def __init__(self):
super(FanInGrouped2, self).__init__()
- p1 = self.add_subsystem('p1', IndepVarComp('x', 1.0))
- p2 = self.add_subsystem('p2', IndepVarComp('x', 1.0))
+ p1 = self.add_subsystem('p1', om.IndepVarComp('x', 1.0))
+ p2 = self.add_subsystem('p2', om.IndepVarComp('x', 1.0))
- self.sub = self.add_subsystem('sub', ParallelGroup())
- self.sub.add_subsystem('c1', ExecComp(['y=-2.0*x']))
- self.sub.add_subsystem('c2', ExecComp(['y=5.0*x']))
+ self.sub = self.add_subsystem('sub', om.ParallelGroup())
+ self.sub.add_subsystem('c1', om.ExecComp(['y=-2.0*x']))
+ self.sub.add_subsystem('c2', om.ExecComp(['y=5.0*x']))
- self.add_subsystem('c3', ExecComp(['y=3.0*x1+7.0*x2']))
+ self.add_subsystem('c3', om.ExecComp(['y=3.0*x1+7.0*x2']))
self.connect("sub.c1.y", "c3.x1")
self.connect("sub.c2.y", "c3.x2")
@@ -129,7 +126,7 @@ def __init__(self):
self.connect("p2.x", "sub.c2.x")
-class DiamondFlat(Group):
+class DiamondFlat(om.Group):
"""
Topology: one - two - one.
@@ -138,20 +135,18 @@ class DiamondFlat(Group):
def __init__(self):
super(DiamondFlat, self).__init__()
- self.add_subsystem('iv', IndepVarComp('x', 2.0))
+ self.add_subsystem('iv', om.IndepVarComp('x', 2.0))
- self.add_subsystem('c1', ExecComp([
- 'y1 = 2.0*x1**2',
- 'y2 = 3.0*x1'
- ]))
+ self.add_subsystem('c1', om.ExecComp(['y1 = 2.0*x1**2',
+ 'y2 = 3.0*x1'
+ ]))
- self.add_subsystem('c2', ExecComp('y1 = 0.5*x1'))
- self.add_subsystem('c3', ExecComp('y1 = 3.5*x1'))
+ self.add_subsystem('c2', om.ExecComp('y1 = 0.5*x1'))
+ self.add_subsystem('c3', om.ExecComp('y1 = 3.5*x1'))
- self.add_subsystem('c4', ExecComp([
- 'y1 = x1 + 2.0*x2',
- 'y2 = 3.0*x1 - 5.0*x2'
- ]))
+ self.add_subsystem('c4', om.ExecComp(['y1 = x1 + 2.0*x2',
+ 'y2 = 3.0*x1 - 5.0*x2'
+ ]))
# make connections
self.connect('iv.x', 'c1.x1')
@@ -161,7 +156,7 @@ def __init__(self):
self.connect('c3.y1', 'c4.x2')
-class Diamond(Group):
+class Diamond(om.Group):
"""
Topology: one - two - one.
"""
@@ -169,21 +164,19 @@ class Diamond(Group):
def __init__(self):
super(Diamond, self).__init__()
- self.add_subsystem('iv', IndepVarComp('x', 2.0))
+ self.add_subsystem('iv', om.IndepVarComp('x', 2.0))
- self.add_subsystem('c1', ExecComp([
- 'y1 = 2.0*x1**2',
- 'y2 = 3.0*x1'
- ]))
+ self.add_subsystem('c1', om.ExecComp(['y1 = 2.0*x1**2',
+ 'y2 = 3.0*x1'
+ ]))
- sub = self.add_subsystem('sub', ParallelGroup())
- sub.add_subsystem('c2', ExecComp('y1 = 0.5*x1'))
- sub.add_subsystem('c3', ExecComp('y1 = 3.5*x1'))
+ sub = self.add_subsystem('sub', om.ParallelGroup())
+ sub.add_subsystem('c2', om.ExecComp('y1 = 0.5*x1'))
+ sub.add_subsystem('c3', om.ExecComp('y1 = 3.5*x1'))
- self.add_subsystem('c4', ExecComp([
- 'y1 = x1 + 2.0*x2',
- 'y2 = 3.0*x1 - 5.0*x2'
- ]))
+ self.add_subsystem('c4', om.ExecComp(['y1 = x1 + 2.0*x2',
+ 'y2 = 3.0*x1 - 5.0*x2'
+ ]))
# make connections
self.connect('iv.x', 'c1.x1')
@@ -195,7 +188,7 @@ def __init__(self):
self.connect('sub.c3.y1', 'c4.x2')
-class ConvergeDivergeFlat(Group):
+class ConvergeDivergeFlat(om.Group):
"""
Topology one - two - one - two - one. This model was critical in
testing parallel reverse scatters. This version is perfectly flat.
@@ -204,24 +197,22 @@ class ConvergeDivergeFlat(Group):
def __init__(self):
super(ConvergeDivergeFlat, self).__init__()
- self.add_subsystem('iv', IndepVarComp('x', 2.0))
+ self.add_subsystem('iv', om.IndepVarComp('x', 2.0))
- self.add_subsystem('c1', ExecComp([
- 'y1 = 2.0*x1**2',
- 'y2 = 3.0*x1'
- ]))
+ self.add_subsystem('c1', om.ExecComp(['y1 = 2.0*x1**2',
+ 'y2 = 3.0*x1'
+ ]))
- self.add_subsystem('c2', ExecComp('y1 = 0.5*x1'))
- self.add_subsystem('c3', ExecComp('y1 = 3.5*x1'))
+ self.add_subsystem('c2', om.ExecComp('y1 = 0.5*x1'))
+ self.add_subsystem('c3', om.ExecComp('y1 = 3.5*x1'))
- self.add_subsystem('c4', ExecComp([
- 'y1 = x1 + 2.0*x2',
- 'y2 = 3.0*x1 - 5.0*x2'
- ]))
+ self.add_subsystem('c4', om.ExecComp(['y1 = x1 + 2.0*x2',
+ 'y2 = 3.0*x1 - 5.0*x2'
+ ]))
- self.add_subsystem('c5', ExecComp('y1 = 0.8*x1'))
- self.add_subsystem('c6', ExecComp('y1 = 0.5*x1'))
- self.add_subsystem('c7', ExecComp('y1 = x1 + 3.0*x2'))
+ self.add_subsystem('c5', om.ExecComp('y1 = 0.8*x1'))
+ self.add_subsystem('c6', om.ExecComp('y1 = 0.5*x1'))
+ self.add_subsystem('c7', om.ExecComp('y1 = x1 + 3.0*x2'))
# make connections
self.connect('iv.x', 'c1.x1')
@@ -239,7 +230,7 @@ def __init__(self):
self.connect('c6.y1', 'c7.x2')
-class ConvergeDiverge(Group):
+class ConvergeDiverge(om.Group):
"""
Topology: one - two - one - two - one.
@@ -249,27 +240,25 @@ class ConvergeDiverge(Group):
def __init__(self):
super(ConvergeDiverge, self).__init__()
- self.add_subsystem('iv', IndepVarComp('x', 2.0))
+ self.add_subsystem('iv', om.IndepVarComp('x', 2.0))
- self.add_subsystem('c1', ExecComp([
- 'y1 = 2.0*x1**2',
- 'y2 = 3.0*x1'
- ]))
+ self.add_subsystem('c1', om.ExecComp(['y1 = 2.0*x1**2',
+ 'y2 = 3.0*x1'
+ ]))
- g1 = self.add_subsystem('g1', ParallelGroup())
- g1.add_subsystem('c2', ExecComp('y1 = 0.5*x1'))
- g1.add_subsystem('c3', ExecComp('y1 = 3.5*x1'))
+ g1 = self.add_subsystem('g1', om.ParallelGroup())
+ g1.add_subsystem('c2', om.ExecComp('y1 = 0.5*x1'))
+ g1.add_subsystem('c3', om.ExecComp('y1 = 3.5*x1'))
- self.add_subsystem('c4', ExecComp([
- 'y1 = x1 + 2.0*x2',
- 'y2 = 3.0*x1 - 5.0*x2'
- ]))
+ self.add_subsystem('c4', om.ExecComp(['y1 = x1 + 2.0*x2',
+ 'y2 = 3.0*x1 - 5.0*x2'
+ ]))
- g2 = self.add_subsystem('g2', ParallelGroup())
- g2.add_subsystem('c5', ExecComp('y1 = 0.8*x1'))
- g2.add_subsystem('c6', ExecComp('y1 = 0.5*x1'))
+ g2 = self.add_subsystem('g2', om.ParallelGroup())
+ g2.add_subsystem('c5', om.ExecComp('y1 = 0.8*x1'))
+ g2.add_subsystem('c6', om.ExecComp('y1 = 0.5*x1'))
- self.add_subsystem('c7', ExecComp('y1 = x1 + 3.0*x2'))
+ self.add_subsystem('c7', om.ExecComp('y1 = x1 + 3.0*x2'))
# make connections
self.connect('iv.x', 'c1.x1')
@@ -287,7 +276,7 @@ def __init__(self):
self.connect('g2.c6.y1', 'c7.x2')
-class ConvergeDivergeGroups(Group):
+class ConvergeDivergeGroups(om.Group):
"""
Topology: one - two - one - two - one.
@@ -298,28 +287,26 @@ class ConvergeDivergeGroups(Group):
def __init__(self):
super(ConvergeDivergeGroups, self).__init__()
- self.add_subsystem('iv', IndepVarComp('x', 2.0))
+ self.add_subsystem('iv', om.IndepVarComp('x', 2.0))
- g1 = self.add_subsystem('g1', ParallelGroup())
- g1.add_subsystem('c1', ExecComp([
- 'y1 = 2.0*x1**2',
- 'y2 = 3.0*x1'
- ]))
+ g1 = self.add_subsystem('g1', om.ParallelGroup())
+ g1.add_subsystem('c1', om.ExecComp(['y1 = 2.0*x1**2',
+ 'y2 = 3.0*x1'
+ ]))
- g2 = g1.add_subsystem('g2', ParallelGroup())
- g2.add_subsystem('c2', ExecComp('y1 = 0.5*x1'))
- g2.add_subsystem('c3', ExecComp('y1 = 3.5*x1'))
+ g2 = g1.add_subsystem('g2', om.ParallelGroup())
+ g2.add_subsystem('c2', om.ExecComp('y1 = 0.5*x1'))
+ g2.add_subsystem('c3', om.ExecComp('y1 = 3.5*x1'))
- g1.add_subsystem('c4', ExecComp([
- 'y1 = x1 + 2.0*x2',
- 'y2 = 3.0*x1 - 5.0*x2'
- ]))
+ g1.add_subsystem('c4', om.ExecComp(['y1 = x1 + 2.0*x2',
+ 'y2 = 3.0*x1 - 5.0*x2'
+ ]))
- g3 = self.add_subsystem('g3', ParallelGroup())
- g3.add_subsystem('c5', ExecComp('y1 = 0.8*x1'))
- g3.add_subsystem('c6', ExecComp('y1 = 0.5*x1'))
+ g3 = self.add_subsystem('g3', om.ParallelGroup())
+ g3.add_subsystem('c5', om.ExecComp('y1 = 0.8*x1'))
+ g3.add_subsystem('c6', om.ExecComp('y1 = 0.5*x1'))
- self.add_subsystem('c7', ExecComp('y1 = x1 + 3.0*x2'))
+ self.add_subsystem('c7', om.ExecComp('y1 = x1 + 3.0*x2'))
# make connections
self.connect('iv.x', 'g1.c1.x1')
@@ -337,25 +324,25 @@ def __init__(self):
self.connect('g3.c6.y1', 'c7.x2')
-class FanInSubbedIDVC(Group):
+class FanInSubbedIDVC(om.Group):
"""
Classic Fan In with indepvarcomps buried below the parallel group, and a summation
component.
"""
def setup(self):
- sub = self.add_subsystem('sub', ParallelGroup())
- sub1 = sub.add_subsystem('sub1', Group())
- sub2 = sub.add_subsystem('sub2', Group())
-
- sub1.add_subsystem('p1', IndepVarComp('x', 3.0))
- sub2.add_subsystem('p2', IndepVarComp('x', 5.0))
- sub1.add_subsystem('c1', ExecComp(['y = 2.0*x']))
- sub2.add_subsystem('c2', ExecComp(['y = 4.0*x']))
+ sub = self.add_subsystem('sub', om.ParallelGroup())
+ sub1 = sub.add_subsystem('sub1', om.Group())
+ sub2 = sub.add_subsystem('sub2', om.Group())
+
+ sub1.add_subsystem('p1', om.IndepVarComp('x', 3.0))
+ sub2.add_subsystem('p2', om.IndepVarComp('x', 5.0))
+ sub1.add_subsystem('c1', om.ExecComp(['y = 2.0*x']))
+ sub2.add_subsystem('c2', om.ExecComp(['y = 4.0*x']))
sub1.connect('p1.x', 'c1.x')
sub2.connect('p2.x', 'c2.x')
- self.add_subsystem('sum', ExecComp(['y = z1 + z2']))
+ self.add_subsystem('sum',om. ExecComp(['y = z1 + z2']))
self.connect('sub.sub1.c1.y', 'sum.z1')
self.connect('sub.sub2.c2.y', 'sum.z2')
diff --git a/openmdao/test_suite/groups/sin_fitter.py b/openmdao/test_suite/groups/sin_fitter.py
index 5d36fa29ed..2e1ceed3f7 100644
--- a/openmdao/test_suite/groups/sin_fitter.py
+++ b/openmdao/test_suite/groups/sin_fitter.py
@@ -3,11 +3,11 @@
"""
from __future__ import print_function, division, absolute_import
+from six.moves import range
import numpy as np
-from six.moves import range
-from openmdao.api import Problem, Group, IndepVarComp, ExplicitComponent
+import openmdao.api as om
def lgl(n, tol=np.finfo(float).eps):
@@ -155,7 +155,7 @@ def lagrange_matrices(x_disc, x_interp):
return Li, Di
-class LGLFit(ExplicitComponent):
+class LGLFit(om.ExplicitComponent):
"""
Given values at discretization nodes, provide interpolated values at midpoint nodes and
an approximation of arclength.
@@ -187,7 +187,7 @@ def compute(self, inputs, outputs):
outputs['yp_lgl'] = np.dot(self.D_lgl, inputs['y_lgl'])/np.pi
-class DefectComp(ExplicitComponent):
+class DefectComp(om.ExplicitComponent):
def initialize(self):
self.options.declare(name='num_nodes', types=int)
@@ -207,7 +207,7 @@ def compute(self, inputs, outputs):
outputs['defect'] = inputs['y_truth'] - inputs['y_approx']
-class ArcLengthFunction(ExplicitComponent):
+class ArcLengthFunction(om.ExplicitComponent):
def initialize(self):
self.options.declare(name='num_nodes', types=int)
@@ -229,7 +229,7 @@ def compute_partials(self, inputs, partials):
partials['f_arclength', 'yp_lgl'] = inputs['yp_lgl'] / np.sqrt(1 + inputs['yp_lgl']**2)
-class ArcLengthQuadrature(ExplicitComponent):
+class ArcLengthQuadrature(om.ExplicitComponent):
"""
Computes the arclength of a polynomial segment whose values are given at the LGL nodes.
"""
@@ -262,7 +262,7 @@ def compute(self, inputs, outputs):
outputs['arclength'] = outputs['arclength']*np.pi
-class SineFitter(Group):
+class SineFitter(om.Group):
def setup(self):
@@ -272,16 +272,15 @@ def setup(self):
# Step 1: Make an indep var comp that provides the approximated values at the LGL nodes.
- self.add_subsystem('y_lgl_ivc', IndepVarComp('y_lgl', val=np.zeros(n), desc='values at LGL nodes'),
- promotes_outputs=['y_lgl'])
+ ivc = om.IndepVarComp('y_lgl', val=np.zeros(n), desc='values at LGL nodes')
+ self.add_subsystem('y_lgl_ivc', ivc, promotes_outputs=['y_lgl'])
# Step 2: Make an indep var comp that provides the 'truth' values at the midpoint nodes.
x_lgl, _ = lgl(n)
x_lgl = x_lgl * np.pi # put x_lgl on [-pi, pi]
x_mid = (x_lgl[1:] + x_lgl[:-1])/2.0 # midpoints on [-pi, pi]
- self.add_subsystem('truth', IndepVarComp('y_mid',
- val=np.sin(x_mid),
- desc='truth values at midpoint nodes'))
+ self.add_subsystem('truth', om.IndepVarComp('y_mid', val=np.sin(x_mid),
+ desc='truth values at midpoint nodes'))
# Step 3: Make a polynomial fitting component
self.add_subsystem('lgl_fit', LGLFit(num_nodes=n))
diff --git a/openmdao/test_suite/scripts/beam_opt.py b/openmdao/test_suite/scripts/beam_opt.py
index bcc9eac8dc..b24e88b956 100644
--- a/openmdao/test_suite/scripts/beam_opt.py
+++ b/openmdao/test_suite/scripts/beam_opt.py
@@ -1,7 +1,6 @@
import numpy as np
-from openmdao.api import Problem, ScipyOptimizeDriver
-
+import openmdao.api as om
from openmdao.test_suite.test_examples.beam_optimization.beam_group import BeamGroup
if __name__ == '__main__':
@@ -13,8 +12,8 @@
num_elements = 50
- prob = Problem(model=BeamGroup(E=E, L=L, b=b, volume=volume, num_elements=num_elements),
- driver=ScipyOptimizeDriver(optimizer='SLSQP', tol=1e-9, disp=True))
+ prob = om.Problem(model=BeamGroup(E=E, L=L, b=b, volume=volume, num_elements=num_elements),
+ driver=om.ScipyOptimizeDriver(optimizer='SLSQP', tol=1e-9, disp=True))
prob.setup()
prob.run_driver()
diff --git a/openmdao/test_suite/scripts/circle_opt.py b/openmdao/test_suite/scripts/circle_opt.py
index f4d967416a..beb680a3e1 100644
--- a/openmdao/test_suite/scripts/circle_opt.py
+++ b/openmdao/test_suite/scripts/circle_opt.py
@@ -16,7 +16,7 @@ def setup(self):
indeps.add_output('x', np.array([ 0.55994437, -0.95923447, 0.21798656, -0.02158783, 0.62183717,
0.04007379, 0.46044942, -0.10129622, 0.27720413, -0.37107886]))
indeps.add_output('y', np.array([ 0.52577864, 0.30894559, 0.8420792 , 0.35039912, -0.67290778,
- -0.86236787, -0.97500023, 0.47739414, 0.51174103, 0.10052582]))
+ -0.86236787, -0.97500023, 0.47739414, 0.51174103, 0.10052582]))
indeps.add_output('r', .7)
self.add_subsystem('arctan_yox', om.ExecComp('g=arctan(y/x)', vectorize=True,
@@ -68,8 +68,8 @@ def setup(self):
if __name__ == '__main__':
- p = om.Problem(model=CircleOpt(), driver=om.ScipyOptimizeDriver(optimizer='SLSQP', disp=False))
- p.setup(mode='fwd')
- p.run_driver()
+ p = om.Problem(model=CircleOpt(), driver=om.ScipyOptimizeDriver(optimizer='SLSQP', disp=False))
+ p.setup(mode='fwd')
+ p.run_driver()
- print(p['circle.area'], np.pi)
+ print(p['circle.area'], np.pi)
diff --git a/openmdao/test_suite/scripts/circuit.py b/openmdao/test_suite/scripts/circuit.py
index 7760626182..f54c4044e3 100644
--- a/openmdao/test_suite/scripts/circuit.py
+++ b/openmdao/test_suite/scripts/circuit.py
@@ -1,8 +1,7 @@
-from openmdao.api import Group, NewtonSolver, DirectSolver, Problem, IndepVarComp
-
+import openmdao.api as om
from openmdao.test_suite.scripts.circuit_analysis import Resistor, Diode, Node
-class Circuit(Group):
+class Circuit(om.Group):
def setup(self):
self.add_subsystem('n1', Node(n_in=1, n_out=2), promotes_inputs=[('I_in:0', 'I_in')])
@@ -20,16 +19,16 @@ def setup(self):
self.connect('R2.I', 'n2.I_in:0')
self.connect('D1.I', 'n2.I_out:0')
- self.nonlinear_solver = NewtonSolver()
+ self.nonlinear_solver = om.NewtonSolver()
self.nonlinear_solver.options['iprint'] = 2
self.nonlinear_solver.options['maxiter'] = 20
- self.linear_solver = DirectSolver()
+ self.linear_solver = om.DirectSolver()
-p = Problem()
+p = om.Problem()
model = p.model
-model.add_subsystem('ground', IndepVarComp('V', 0., units='V'))
-model.add_subsystem('source', IndepVarComp('I', 0.1, units='A'))
+model.add_subsystem('ground', om.IndepVarComp('V', 0., units='V'))
+model.add_subsystem('source', om.IndepVarComp('I', 0.1, units='A'))
model.add_subsystem('circuit', Circuit())
model.connect('source.I', 'circuit.I_in')
@@ -39,7 +38,7 @@ def setup(self):
model.add_design_var('source.I')
model.add_objective('circuit.D1.I')
-p.setup(check=False)
+p.setup()
# set some initial guesses
p['circuit.n1.V'] = 10.
diff --git a/openmdao/test_suite/scripts/circuit_analysis.py b/openmdao/test_suite/scripts/circuit_analysis.py
index fd629a5798..ce4d4183ff 100644
--- a/openmdao/test_suite/scripts/circuit_analysis.py
+++ b/openmdao/test_suite/scripts/circuit_analysis.py
@@ -1,14 +1,13 @@
from __future__ import print_function, division, absolute_import
-import numpy as np
-
import unittest
-from openmdao.api import ExplicitComponent, ImplicitComponent, Group, NewtonSolver, DirectSolver
+import numpy as np
+import openmdao.api as om
from openmdao.utils.assert_utils import assert_rel_error
-class Resistor(ExplicitComponent):
+class Resistor(om.ExplicitComponent):
"""Computes current across a resistor using Ohm's law."""
def initialize(self):
@@ -27,7 +26,7 @@ def compute(self, inputs, outputs):
outputs['I'] = deltaV / self.options['R']
-class Diode(ExplicitComponent):
+class Diode(om.ExplicitComponent):
"""Computes current across a diode using the Shockley diode equation."""
def initialize(self):
@@ -49,7 +48,7 @@ def compute(self, inputs, outputs):
outputs['I'] = Is * (np.exp(deltaV / Vt) - 1)
-class Node(ImplicitComponent):
+class Node(om.ImplicitComponent):
"""Computes voltage residual across a node based on incoming and outgoing current."""
def initialize(self):
@@ -80,7 +79,7 @@ def apply_nonlinear(self, inputs, outputs, residuals):
# note: This is defined twice in the file. Once so you can import it, and once inside a test that gets included in the docs.
-class Circuit(Group):
+class Circuit(om.Group):
def setup(self):
self.add_subsystem('n1', Node(n_in=1, n_out=2), promotes_inputs=[('I_in:0', 'I_in')])
@@ -98,29 +97,29 @@ def setup(self):
self.connect('R2.I', 'n2.I_in:0')
self.connect('D1.I', 'n2.I_out:0')
- self.nonlinear_solver = NewtonSolver()
+ self.nonlinear_solver = om.NewtonSolver()
self.nonlinear_solver.options['iprint'] = 2
self.nonlinear_solver.options['maxiter'] = 20
- self.linear_solver = DirectSolver()
+ self.linear_solver = om.DirectSolver()
if __name__ == "__main__":
- from openmdao.api import ArmijoGoldsteinLS, Problem, IndepVarComp, BalanceComp, ExecComp
- from openmdao.api import NewtonSolver, DirectSolver, NonlinearRunOnce, LinearRunOnce
+ import openmdao.api as om
- p = Problem()
+ p = om.Problem()
model = p.model
- model.add_subsystem('ground', IndepVarComp('V', 0., units='V'))
+ model.add_subsystem('ground', om.IndepVarComp('V', 0., units='V'))
# replacing the fixed current source with a BalanceComp to represent a fixed Voltage source
# model.add_subsystem('source', IndepVarComp('I', 0.1, units='A'))
- model.add_subsystem('batt', IndepVarComp('V', 1.5, units='V'))
- bal = model.add_subsystem('batt_balance', BalanceComp())
+ model.add_subsystem('batt', om.IndepVarComp('V', 1.5, units='V'))
+ bal = model.add_subsystem('batt_balance', om.BalanceComp())
bal.add_balance('I', units='A', eq_units='V')
model.add_subsystem('circuit', Circuit())
- model.add_subsystem('batt_deltaV', ExecComp('dV = V1 - V2', V1={'units':'V'}, V2={'units':'V'}, dV={'units':'V'}))
+ model.add_subsystem('batt_deltaV', om.ExecComp('dV = V1 - V2', V1={'units':'V'},
+ V2={'units':'V'}, dV={'units':'V'}))
# current into the circuit is now the output state from the batt_balance comp
model.connect('batt_balance.I', 'circuit.I_in')
@@ -139,16 +138,16 @@ def setup(self):
# change the circuit solver to RunOnce because we're
# going to converge at the top level of the model with newton instead
- p.model.circuit.nonlinear_solver = NonlinearRunOnce()
- p.model.circuit.linear_solver = LinearRunOnce()
+ p.model.circuit.nonlinear_solver = om.NonlinearRunOnce()
+ p.model.circuit.linear_solver = om.LinearRunOnce()
# Put Newton at the top so it can also converge the new BalanceComp residual
- newton = p.model.nonlinear_solver = NewtonSolver()
- p.model.linear_solver = DirectSolver()
+ newton = p.model.nonlinear_solver = om.NewtonSolver()
+ p.model.linear_solver = om.DirectSolver()
newton.options['iprint'] = 2
newton.options['maxiter'] = 20
newton.options['solve_subsystems'] = True
- newton.linesearch = ArmijoGoldsteinLS()
+ newton.linesearch = om.ArmijoGoldsteinLS()
newton.linesearch.options['maxiter'] = 10
newton.linesearch.options['iprint'] = 2
diff --git a/openmdao/test_suite/scripts/circuit_with_unconnected_input.py b/openmdao/test_suite/scripts/circuit_with_unconnected_input.py
index bbb3eb826b..dc7fdafd4b 100644
--- a/openmdao/test_suite/scripts/circuit_with_unconnected_input.py
+++ b/openmdao/test_suite/scripts/circuit_with_unconnected_input.py
@@ -1,8 +1,8 @@
-from openmdao.api import Group, NewtonSolver, DirectSolver, Problem, IndepVarComp
+import openmdao.api as om
from openmdao.error_checking.check_config import check_config
from openmdao.test_suite.scripts.circuit_analysis import Resistor, Diode, Node
-class Circuit(Group):
+class Circuit(om.Group):
def setup(self):
self.add_subsystem('n1', Node(n_in=1, n_out=2), promotes_inputs=[('I_in:0', 'I_in')])
@@ -21,16 +21,16 @@ def setup(self):
# self.connect('D1.I', 'n2.I_out:0') # commented out so there is an unconnected input
# example for docs for the N2 diagram
- self.nonlinear_solver = NewtonSolver()
+ self.nonlinear_solver = om.NewtonSolver()
self.nonlinear_solver.options['iprint'] = 2
self.nonlinear_solver.options['maxiter'] = 20
- self.linear_solver = DirectSolver()
+ self.linear_solver = om.DirectSolver()
-p = Problem()
+p = om.Problem()
model = p.model
-model.add_subsystem('ground', IndepVarComp('V', 0., units='V'))
-model.add_subsystem('source', IndepVarComp('I', 0.1, units='A'))
+model.add_subsystem('ground', om.IndepVarComp('V', 0., units='V'))
+model.add_subsystem('source', om.IndepVarComp('I', 0.1, units='A'))
model.add_subsystem('circuit', Circuit())
model.connect('source.I', 'circuit.I_in')
diff --git a/openmdao/test_suite/scripts/multipoint_beam_opt.py b/openmdao/test_suite/scripts/multipoint_beam_opt.py
index d4ff9e9811..c4cdacd27b 100644
--- a/openmdao/test_suite/scripts/multipoint_beam_opt.py
+++ b/openmdao/test_suite/scripts/multipoint_beam_opt.py
@@ -2,7 +2,8 @@
from __future__ import print_function, division, absolute_import
import numpy as np
-from openmdao.api import Problem, ScipyOptimizeDriver
+
+import openmdao.api as om
from openmdao.test_suite.test_examples.beam_optimization.beam_group import BeamGroup
from openmdao.test_suite.test_examples.beam_optimization.multipoint_beam_group import MultipointBeamGroup
@@ -23,11 +24,11 @@
num_elements = 50
num_load_cases = 2
- prob = Problem(model=MultipointBeamGroup(E=E, L=L, b=b, volume=volume,
- num_elements=num_elements, num_cp=num_cp,
- num_load_cases=num_load_cases))
+ prob = om.Problem(model=MultipointBeamGroup(E=E, L=L, b=b, volume=volume,
+ num_elements=num_elements, num_cp=num_cp,
+ num_load_cases=num_load_cases))
- prob.driver = ScipyOptimizeDriver()
+ prob.driver = om.ScipyOptimizeDriver()
prob.driver.options['optimizer'] = 'SLSQP'
prob.driver.options['tol'] = 1e-9
prob.driver.options['disp'] = True
diff --git a/openmdao/test_suite/scripts/sellar.py b/openmdao/test_suite/scripts/sellar.py
index 01155149b2..fcbb657428 100644
--- a/openmdao/test_suite/scripts/sellar.py
+++ b/openmdao/test_suite/scripts/sellar.py
@@ -1,16 +1,17 @@
import numpy as np
-from openmdao.api import Problem, Group, IndepVarComp, ExecComp, NonlinearBlockGS, ScipyOptimizeDriver
+
+import openmdao.api as om
from openmdao.test_suite.components.sellar import SellarDis1, SellarDis2
-class SellarMDAConnect(Group):
+class SellarMDAConnect(om.Group):
def setup(self):
- indeps = self.add_subsystem('indeps', IndepVarComp())
+ indeps = self.add_subsystem('indeps', om.IndepVarComp())
indeps.add_output('x', 1.0)
indeps.add_output('z', np.array([5.0, 2.0]))
- cycle = self.add_subsystem('cycle', Group())
+ cycle = self.add_subsystem('cycle', om.Group())
cycle.add_subsystem('d1', SellarDis1())
cycle.add_subsystem('d2', SellarDis2())
cycle.connect('d1.y1', 'd2.y1')
@@ -21,13 +22,13 @@ def setup(self):
#cycle.connect('d2.y2', 'd1.y2')
# Nonlinear Block Gauss Seidel is a gradient free solver
- cycle.nonlinear_solver = NonlinearBlockGS()
+ cycle.nonlinear_solver = om.NonlinearBlockGS()
- self.add_subsystem('obj_cmp', ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
- z=np.array([0.0, 0.0]), x=0.0))
+ self.add_subsystem('obj_cmp', om.ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
+ z=np.array([0.0, 0.0]), x=0.0))
- self.add_subsystem('con_cmp1', ExecComp('con1 = 3.16 - y1'))
- self.add_subsystem('con_cmp2', ExecComp('con2 = y2 - 24.0'))
+ self.add_subsystem('con_cmp1', om.ExecComp('con1 = 3.16 - y1'))
+ self.add_subsystem('con_cmp2', om.ExecComp('con2 = y2 - 24.0'))
self.connect('indeps.x', ['cycle.d1.x', 'obj_cmp.x'])
self.connect('indeps.z', ['cycle.d1.z', 'cycle.d2.z', 'obj_cmp.z'])
@@ -35,11 +36,11 @@ def setup(self):
self.connect('cycle.d2.y2', ['obj_cmp.y2', 'con_cmp2.y2'])
-prob = Problem()
+prob = om.Problem()
prob.model = SellarMDAConnect()
-prob.driver = ScipyOptimizeDriver()
+prob.driver = om.ScipyOptimizeDriver()
prob.driver.options['optimizer'] = 'SLSQP'
# prob.driver.options['maxiter'] = 100
prob.driver.options['tol'] = 1e-8
diff --git a/openmdao/test_suite/test_examples/basic_opt_paraboloid.py b/openmdao/test_suite/test_examples/basic_opt_paraboloid.py
index a1f0029ac0..dada62509b 100644
--- a/openmdao/test_suite/test_examples/basic_opt_paraboloid.py
+++ b/openmdao/test_suite/test_examples/basic_opt_paraboloid.py
@@ -3,22 +3,20 @@
import unittest
from openmdao.utils.assert_utils import assert_rel_error
-
-from openmdao.api import Problem, ScipyOptimizeDriver, ExecComp, IndepVarComp
-
from openmdao.test_suite.components.paraboloid import Paraboloid
+
class BasicOptParaboloid(unittest.TestCase):
def test_unconstrainted(self):
- from openmdao.api import Problem, ScipyOptimizeDriver, IndepVarComp
+ import openmdao.api as om
# We'll use the component that was defined in the last tutorial
from openmdao.test_suite.components.paraboloid import Paraboloid
# build the model
- prob = Problem()
- indeps = prob.model.add_subsystem('indeps', IndepVarComp())
+ prob = om.Problem()
+ indeps = prob.model.add_subsystem('indeps', om.IndepVarComp())
indeps.add_output('x', 3.0)
indeps.add_output('y', -4.0)
@@ -28,7 +26,7 @@ def test_unconstrainted(self):
prob.model.connect('indeps.y', 'paraboloid.y')
# setup the optimization
- prob.driver = ScipyOptimizeDriver()
+ prob.driver = om.ScipyOptimizeDriver()
prob.driver.options['optimizer'] = 'COBYLA'
prob.model.add_design_var('indeps.x', lower=-50, upper=50)
@@ -47,27 +45,27 @@ def test_unconstrainted(self):
def test_constrained(self):
- from openmdao.api import Problem, ScipyOptimizeDriver, ExecComp, IndepVarComp
+ import openmdao.api as om
# We'll use the component that was defined in the last tutorial
from openmdao.test_suite.components.paraboloid import Paraboloid
# build the model
- prob = Problem()
- indeps = prob.model.add_subsystem('indeps', IndepVarComp())
+ prob = om.Problem()
+ indeps = prob.model.add_subsystem('indeps', om.IndepVarComp())
indeps.add_output('x', 3.0)
indeps.add_output('y', -4.0)
prob.model.add_subsystem('parab', Paraboloid())
# define the component whose output will be constrained
- prob.model.add_subsystem('const', ExecComp('g = x + y'))
+ prob.model.add_subsystem('const', om.ExecComp('g = x + y'))
prob.model.connect('indeps.x', ['parab.x', 'const.x'])
prob.model.connect('indeps.y', ['parab.y', 'const.y'])
# setup the optimization
- prob.driver = ScipyOptimizeDriver()
+ prob.driver = om.ScipyOptimizeDriver()
prob.driver.options['optimizer'] = 'COBYLA'
prob.model.add_design_var('indeps.x', lower=-50, upper=50)
diff --git a/openmdao/test_suite/test_examples/beam_optimization/beam_group.py b/openmdao/test_suite/test_examples/beam_optimization/beam_group.py
index c8c7257b78..3032b27d67 100644
--- a/openmdao/test_suite/test_examples/beam_optimization/beam_group.py
+++ b/openmdao/test_suite/test_examples/beam_optimization/beam_group.py
@@ -1,7 +1,7 @@
from __future__ import division
import numpy as np
-from openmdao.api import Group, IndepVarComp
+import openmdao.api as om
from openmdao.test_suite.test_examples.beam_optimization.components.moment_comp import MomentOfInertiaComp
from openmdao.test_suite.test_examples.beam_optimization.components.local_stiffness_matrix_comp import LocalStiffnessMatrixComp
@@ -11,7 +11,7 @@
from openmdao.test_suite.test_examples.beam_optimization.components.volume_comp import VolumeComp
-class BeamGroup(Group):
+class BeamGroup(om.Group):
def initialize(self):
self.options.declare('E')
@@ -31,7 +31,7 @@ def setup(self):
force_vector = np.zeros(2 * num_nodes)
force_vector[-2] = -1.
- inputs_comp = IndepVarComp()
+ inputs_comp = om.IndepVarComp()
inputs_comp.add_output('h', shape=num_elements)
self.add_subsystem('inputs_comp', inputs_comp)
diff --git a/openmdao/test_suite/test_examples/beam_optimization/components/compliance_comp.py b/openmdao/test_suite/test_examples/beam_optimization/components/compliance_comp.py
index b3b28d2243..2d08fb3d45 100644
--- a/openmdao/test_suite/test_examples/beam_optimization/components/compliance_comp.py
+++ b/openmdao/test_suite/test_examples/beam_optimization/components/compliance_comp.py
@@ -3,10 +3,10 @@
import numpy as np
-from openmdao.api import ExplicitComponent
+import openmdao.api as om
-class ComplianceComp(ExplicitComponent):
+class ComplianceComp(om.ExplicitComponent):
def initialize(self):
self.options.declare('num_elements', types=int)
@@ -29,7 +29,7 @@ def compute(self, inputs, outputs):
outputs['compliance'] = np.dot(force_vector, inputs['displacements'])
-class MultiComplianceComp(ExplicitComponent):
+class MultiComplianceComp(om.ExplicitComponent):
def initialize(self):
self.options.declare('num_elements', types=int)
diff --git a/openmdao/test_suite/test_examples/beam_optimization/components/displacements_comp.py b/openmdao/test_suite/test_examples/beam_optimization/components/displacements_comp.py
index d6a1b8bac3..1dd6cee299 100644
--- a/openmdao/test_suite/test_examples/beam_optimization/components/displacements_comp.py
+++ b/openmdao/test_suite/test_examples/beam_optimization/components/displacements_comp.py
@@ -3,10 +3,10 @@
import numpy as np
-from openmdao.api import ExplicitComponent
+import openmdao.api as om
-class DisplacementsComp(ExplicitComponent):
+class DisplacementsComp(om.ExplicitComponent):
def initialize(self):
self.options.declare('num_elements', types=int)
@@ -29,7 +29,7 @@ def compute(self, inputs, outputs):
outputs['displacements'] = inputs['d'][:2 * num_nodes]
-class MultiDisplacementsComp(ExplicitComponent):
+class MultiDisplacementsComp(om.ExplicitComponent):
def initialize(self):
self.options.declare('num_elements', types=int)
diff --git a/openmdao/test_suite/test_examples/beam_optimization/components/local_stiffness_matrix_comp.py b/openmdao/test_suite/test_examples/beam_optimization/components/local_stiffness_matrix_comp.py
index 998d15c759..52d63d6398 100644
--- a/openmdao/test_suite/test_examples/beam_optimization/components/local_stiffness_matrix_comp.py
+++ b/openmdao/test_suite/test_examples/beam_optimization/components/local_stiffness_matrix_comp.py
@@ -1,9 +1,10 @@
from __future__ import division
import numpy as np
-from openmdao.api import ExplicitComponent
+import openmdao.api as om
-class LocalStiffnessMatrixComp(ExplicitComponent):
+
+class LocalStiffnessMatrixComp(om.ExplicitComponent):
def initialize(self):
self.options.declare('num_elements', types=int)
diff --git a/openmdao/test_suite/test_examples/beam_optimization/components/moment_comp.py b/openmdao/test_suite/test_examples/beam_optimization/components/moment_comp.py
index 8270800216..b3950a8ff4 100644
--- a/openmdao/test_suite/test_examples/beam_optimization/components/moment_comp.py
+++ b/openmdao/test_suite/test_examples/beam_optimization/components/moment_comp.py
@@ -1,9 +1,11 @@
from __future__ import division
+
import numpy as np
-from openmdao.api import ExplicitComponent
+
+import openmdao.api as om
-class MomentOfInertiaComp(ExplicitComponent):
+class MomentOfInertiaComp(om.ExplicitComponent):
def initialize(self):
self.options.declare('num_elements', types=int)
diff --git a/openmdao/test_suite/test_examples/beam_optimization/components/states_comp.py b/openmdao/test_suite/test_examples/beam_optimization/components/states_comp.py
index 181e656a22..784439271e 100644
--- a/openmdao/test_suite/test_examples/beam_optimization/components/states_comp.py
+++ b/openmdao/test_suite/test_examples/beam_optimization/components/states_comp.py
@@ -5,10 +5,10 @@
from scipy.sparse import coo_matrix
from scipy.sparse.linalg import splu
-from openmdao.api import ImplicitComponent
+import openmdao.api as om
-class StatesComp(ImplicitComponent):
+class StatesComp(om.ImplicitComponent):
def initialize(self):
self.options.declare('num_elements', types=int)
@@ -120,7 +120,7 @@ def assemble_CSC_K(self, inputs):
return coo_matrix((data, (rows, cols)), shape=(n_K, n_K)).tocsc()
-class MultiStatesComp(ImplicitComponent):
+class MultiStatesComp(om.ImplicitComponent):
def initialize(self):
self.options.declare('num_elements', types=int)
diff --git a/openmdao/test_suite/test_examples/beam_optimization/components/stress_comp.py b/openmdao/test_suite/test_examples/beam_optimization/components/stress_comp.py
index 846f8887d7..e95a14c745 100644
--- a/openmdao/test_suite/test_examples/beam_optimization/components/stress_comp.py
+++ b/openmdao/test_suite/test_examples/beam_optimization/components/stress_comp.py
@@ -10,10 +10,10 @@
import numpy as np
-from openmdao.api import ExplicitComponent
+import openmdao.api as om
-class MultiStressComp(ExplicitComponent):
+class MultiStressComp(om.ExplicitComponent):
def initialize(self):
self.options.declare('num_elements', types=int)
diff --git a/openmdao/test_suite/test_examples/beam_optimization/components/volume_comp.py b/openmdao/test_suite/test_examples/beam_optimization/components/volume_comp.py
index d8ff827ef3..c3f3d4a7be 100644
--- a/openmdao/test_suite/test_examples/beam_optimization/components/volume_comp.py
+++ b/openmdao/test_suite/test_examples/beam_optimization/components/volume_comp.py
@@ -1,9 +1,10 @@
from __future__ import division
import numpy as np
-from openmdao.api import ExplicitComponent
+import openmdao.api as om
-class VolumeComp(ExplicitComponent):
+
+class VolumeComp(om.ExplicitComponent):
def initialize(self):
self.options.declare('num_elements', types=int)
diff --git a/openmdao/test_suite/test_examples/beam_optimization/multipoint_beam_group.py b/openmdao/test_suite/test_examples/beam_optimization/multipoint_beam_group.py
index 14cfd51bb1..c44fab79ef 100644
--- a/openmdao/test_suite/test_examples/beam_optimization/multipoint_beam_group.py
+++ b/openmdao/test_suite/test_examples/beam_optimization/multipoint_beam_group.py
@@ -8,8 +8,7 @@
import numpy as np
-from openmdao.api import Group, IndepVarComp, ParallelGroup, ExecComp
-from openmdao.components.bsplines_comp import BsplinesComp
+import openmdao.api as om
from openmdao.test_suite.test_examples.beam_optimization.components.compliance_comp import MultiComplianceComp
from openmdao.test_suite.test_examples.beam_optimization.components.displacements_comp import MultiDisplacementsComp
@@ -51,7 +50,7 @@ def divide_cases(ncases, nprocs):
return data
-class MultipointBeamGroup(Group):
+class MultipointBeamGroup(om.Group):
def initialize(self):
self.options.declare('E')
@@ -72,12 +71,12 @@ def setup(self):
num_cp = self.options['num_cp']
num_load_cases = self.options['num_load_cases']
- inputs_comp = IndepVarComp()
+ inputs_comp = om.IndepVarComp()
inputs_comp.add_output('h_cp', shape=num_cp)
self.add_subsystem('inputs_comp', inputs_comp)
- comp = BsplinesComp(num_control_points=num_cp, num_points=num_elements, in_name='h_cp',
- out_name='h')
+ comp = om.BsplinesComp(num_control_points=num_cp, num_points=num_elements,
+ in_name='h_cp', out_name='h')
self.add_subsystem('interp', comp)
I_comp = MomentOfInertiaComp(num_elements=num_elements, b=b)
@@ -87,7 +86,7 @@ def setup(self):
self.add_subsystem('local_stiffness_matrix_comp', comp)
# Parallel Subsystem for load cases.
- par = self.add_subsystem('parallel', ParallelGroup())
+ par = self.add_subsystem('parallel', om.ParallelGroup())
# Determine how to split cases up over the available procs.
nprocs = self.comm.size
@@ -98,7 +97,7 @@ def setup(self):
num_rhs = len(this_proc)
name = 'sub_%d' % j
- sub = par.add_subsystem(name, Group())
+ sub = par.add_subsystem(name, om.Group())
# Load is a sinusoidal distributed force of varying spatial frequency.
force_vector = np.zeros((2 * num_nodes, num_rhs))
@@ -139,7 +138,7 @@ def setup(self):
comp = VolumeComp(num_elements=num_elements, b=b, L=L)
self.add_subsystem('volume_comp', comp)
- comp = ExecComp(['obj = ' + ' + '.join(['compliance_%d' % i for i in range(num_load_cases)])])
+ comp = om.ExecComp(['obj = ' + ' + '.join(['compliance_%d' % i for i in range(num_load_cases)])])
self.add_subsystem('obj_sum', comp)
for j, src in enumerate(obj_srcs):
diff --git a/openmdao/test_suite/test_examples/beam_optimization/multipoint_beam_stress.py b/openmdao/test_suite/test_examples/beam_optimization/multipoint_beam_stress.py
index 42869d0e93..35854523f9 100644
--- a/openmdao/test_suite/test_examples/beam_optimization/multipoint_beam_stress.py
+++ b/openmdao/test_suite/test_examples/beam_optimization/multipoint_beam_stress.py
@@ -9,9 +9,7 @@
import numpy as np
-from openmdao.api import Group, IndepVarComp, ParallelGroup, ExecComp
-from openmdao.components.bsplines_comp import BsplinesComp
-from openmdao.components.ks_comp import KSComp
+import openmdao.api as om
from openmdao.test_suite.test_examples.beam_optimization.components.displacements_comp import MultiDisplacementsComp
from openmdao.test_suite.test_examples.beam_optimization.components.local_stiffness_matrix_comp import LocalStiffnessMatrixComp
@@ -53,7 +51,7 @@ def divide_cases(ncases, nprocs):
return data
-class MultipointBeamGroup(Group):
+class MultipointBeamGroup(om.Group):
"""
System setup for minimization of volume (i.e., mass) subject to KS aggregated bending stress constraints.
"""
@@ -81,12 +79,12 @@ def setup(self):
num_load_cases = self.options['num_load_cases']
parallel_derivs = self.options['parallel_derivs']
- inputs_comp = IndepVarComp()
+ inputs_comp = om.IndepVarComp()
inputs_comp.add_output('h_cp', shape=num_cp)
self.add_subsystem('inputs_comp', inputs_comp)
- comp = BsplinesComp(num_control_points=num_cp, num_points=num_elements, in_name='h_cp',
- out_name='h')
+ comp = om.BsplinesComp(num_control_points=num_cp, num_points=num_elements, in_name='h_cp',
+ out_name='h')
self.add_subsystem('interp', comp)
I_comp = MomentOfInertiaComp(num_elements=num_elements, b=b)
@@ -96,7 +94,7 @@ def setup(self):
self.add_subsystem('local_stiffness_matrix_comp', comp)
# Parallel Subsystem for load cases.
- par = self.add_subsystem('parallel', ParallelGroup())
+ par = self.add_subsystem('parallel', om.ParallelGroup())
# Determine how to split cases up over the available procs.
nprocs = self.comm.size
@@ -106,7 +104,7 @@ def setup(self):
num_rhs = len(this_proc)
name = 'sub_%d' % j
- sub = par.add_subsystem(name, Group())
+ sub = par.add_subsystem(name, om.Group())
# Load is a sinusoidal distributed force of varying spatial frequency.
force_vector = np.zeros((2 * num_nodes, num_rhs))
@@ -142,7 +140,7 @@ def setup(self):
'displacements_comp.displacements_%d' % k,
'stress_comp.displacements_%d' % k)
- comp = KSComp(width=num_elements)
+ comp = om.KSComp(width=num_elements)
comp.options['upper'] = max_bending
sub.add_subsystem('KS_%d' % k, comp)
diff --git a/openmdao/test_suite/test_examples/beam_optimization/test_beam_optimization.py b/openmdao/test_suite/test_examples/beam_optimization/test_beam_optimization.py
index 66afad4117..ed5fd1861b 100644
--- a/openmdao/test_suite/test_examples/beam_optimization/test_beam_optimization.py
+++ b/openmdao/test_suite/test_examples/beam_optimization/test_beam_optimization.py
@@ -4,7 +4,7 @@
from openmdao.utils.assert_utils import assert_rel_error
-from openmdao.api import Problem, ScipyOptimizeDriver
+import openmdao.api as om
from openmdao.test_suite.test_examples.beam_optimization.beam_group import BeamGroup
from openmdao.test_suite.test_examples.beam_optimization.multipoint_beam_group import MultipointBeamGroup
@@ -19,8 +19,7 @@ class TestCase(unittest.TestCase):
def test(self):
import numpy as np
- from openmdao.api import Problem, ScipyOptimizeDriver
-
+ import openmdao.api as om
from openmdao.test_suite.test_examples.beam_optimization.beam_group import BeamGroup
E = 1.
@@ -30,9 +29,9 @@ def test(self):
num_elements = 50
- prob = Problem(model=BeamGroup(E=E, L=L, b=b, volume=volume, num_elements=num_elements))
+ prob = om.Problem(model=BeamGroup(E=E, L=L, b=b, volume=volume, num_elements=num_elements))
- prob.driver = ScipyOptimizeDriver()
+ prob.driver = om.ScipyOptimizeDriver()
prob.driver.options['optimizer'] = 'SLSQP'
prob.driver.options['tol'] = 1e-9
prob.driver.options['disp'] = True
@@ -55,8 +54,7 @@ def test(self):
def test_multipoint(self):
import numpy as np
- from openmdao.api import Problem, ScipyOptimizeDriver
-
+ import openmdao.api as om
from openmdao.test_suite.test_examples.beam_optimization.multipoint_beam_group import MultipointBeamGroup
E = 1.
@@ -68,11 +66,13 @@ def test_multipoint(self):
num_elements = 50
num_load_cases = 2
- prob = Problem(model=MultipointBeamGroup(E=E, L=L, b=b, volume=volume,
- num_elements=num_elements, num_cp=num_cp,
- num_load_cases=num_load_cases))
+ model = MultipointBeamGroup(E=E, L=L, b=b, volume=volume,
+ num_elements=num_elements, num_cp=num_cp,
+ num_load_cases=num_load_cases)
- prob.driver = ScipyOptimizeDriver()
+ prob = om.Problem(model=model)
+
+ prob.driver = om.ScipyOptimizeDriver()
prob.driver.options['optimizer'] = 'SLSQP'
prob.driver.options['tol'] = 1e-9
prob.driver.options['disp'] = True
@@ -95,8 +95,7 @@ def test_multipoint(self):
def test_multipoint_stress(self):
import numpy as np
- from openmdao.api import Problem, ScipyOptimizeDriver
-
+ import openmdao.api as om
from openmdao.test_suite.test_examples.beam_optimization.multipoint_beam_stress import MultipointBeamGroup
E = 1.
@@ -109,11 +108,13 @@ def test_multipoint_stress(self):
num_elements = 25
num_load_cases = 2
- prob = Problem(model=MultipointBeamGroup(E=E, L=L, b=b, volume=volume, max_bending = max_bending,
- num_elements=num_elements, num_cp=num_cp,
- num_load_cases=num_load_cases))
+ model = MultipointBeamGroup(E=E, L=L, b=b, volume=volume, max_bending = max_bending,
+ num_elements=num_elements, num_cp=num_cp,
+ num_load_cases=num_load_cases)
- prob.driver = ScipyOptimizeDriver()
+ prob = om.Problem(model=model)
+
+ prob.driver = om.ScipyOptimizeDriver()
prob.driver.options['optimizer'] = 'SLSQP'
prob.driver.options['tol'] = 1e-9
prob.driver.options['disp'] = True
@@ -138,8 +139,7 @@ class TestParallelGroups(unittest.TestCase):
def test_multipoint(self):
import numpy as np
- from openmdao.api import Problem, ScipyOptimizeDriver
-
+ import openmdao.api as om
from openmdao.test_suite.test_examples.beam_optimization.multipoint_beam_group import MultipointBeamGroup
E = 1.
@@ -151,11 +151,13 @@ def test_multipoint(self):
num_elements = 50
num_load_cases = 2
- prob = Problem(model=MultipointBeamGroup(E=E, L=L, b=b, volume=volume,
- num_elements=num_elements, num_cp=num_cp,
- num_load_cases=num_load_cases))
+ model = MultipointBeamGroup(E=E, L=L, b=b, volume=volume,
+ num_elements=num_elements, num_cp=num_cp,
+ num_load_cases=num_load_cases)
+
+ prob = om.Problem(model=model)
- prob.driver = ScipyOptimizeDriver()
+ prob.driver = om.ScipyOptimizeDriver()
prob.driver.options['optimizer'] = 'SLSQP'
prob.driver.options['tol'] = 1e-9
prob.driver.options['disp'] = True
diff --git a/openmdao/test_suite/test_examples/test_betz_limit.py b/openmdao/test_suite/test_examples/test_betz_limit.py
index af11897602..37ebeb6480 100644
--- a/openmdao/test_suite/test_examples/test_betz_limit.py
+++ b/openmdao/test_suite/test_examples/test_betz_limit.py
@@ -5,12 +5,12 @@
import scipy
+import openmdao.api as om
from openmdao.utils.assert_utils import assert_rel_error
-from openmdao.api import Problem, ScipyOptimizeDriver, IndepVarComp, ExplicitComponent
# duplicate definition here so it can be included in docs by itself
-class ActuatorDisc(ExplicitComponent):
+class ActuatorDisc(om.ExplicitComponent):
"""Simple wind turbine model based on actuator disc theory"""
def setup(self):
@@ -90,14 +90,15 @@ def compute_partials(self, inputs, J):
J['power', 'rho'] = 2.0 * a_times_area * Vu ** 3 * (one_minus_a)**2
J['power', 'Vu'] = 6.0 * Area * Vu**2 * a * rho * one_minus_a**2
+
class TestBetzLimit(unittest.TestCase):
def test_betz(self):
from distutils.version import LooseVersion
import scipy
- from openmdao.api import Problem, ScipyOptimizeDriver, IndepVarComp, ExplicitComponent
+ import openmdao.api as om
- class ActuatorDisc(ExplicitComponent):
+ class ActuatorDisc(om.ExplicitComponent):
"""Simple wind turbine model based on actuator disc theory"""
def setup(self):
@@ -180,8 +181,8 @@ def compute_partials(self, inputs, J):
# build the model
- prob = Problem()
- indeps = prob.model.add_subsystem('indeps', IndepVarComp(), promotes=['*'])
+ prob = om.Problem()
+ indeps = prob.model.add_subsystem('indeps', om.IndepVarComp(), promotes=['*'])
indeps.add_output('a', .5)
indeps.add_output('Area', 10.0, units='m**2')
indeps.add_output('rho', 1.225, units='kg/m**3')
@@ -191,7 +192,7 @@ def compute_partials(self, inputs, J):
promotes_inputs=['a', 'Area', 'rho', 'Vu'])
# setup the optimization
- prob.driver = ScipyOptimizeDriver()
+ prob.driver = om.ScipyOptimizeDriver()
prob.driver.options['optimizer'] = 'SLSQP'
prob.model.add_design_var('a', lower=0., upper=1.)
@@ -213,16 +214,15 @@ def compute_partials(self, inputs, J):
raise unittest.SkipTest(msg)
def test_betz_derivatives(self):
- from openmdao.api import Problem, IndepVarComp
+ import openmdao.api as om
from openmdao.test_suite.test_examples.test_betz_limit import ActuatorDisc
- prob = Problem()
+ prob = om.Problem()
prob.model.add_subsystem('a_disk', ActuatorDisc())
prob.setup()
-
prob.check_partials(compact_print=True)
diff --git a/openmdao/test_suite/test_examples/test_circuit_analysis.py b/openmdao/test_suite/test_examples/test_circuit_analysis.py
index 357d2ec4cd..bee1cb4700 100644
--- a/openmdao/test_suite/test_examples/test_circuit_analysis.py
+++ b/openmdao/test_suite/test_examples/test_circuit_analysis.py
@@ -3,7 +3,7 @@
import unittest
-from openmdao.api import ExplicitComponent, ImplicitComponent, Group, NewtonSolver, DirectSolver
+import openmdao.api as om
from openmdao.utils.assert_utils import assert_rel_error
@@ -11,11 +11,10 @@ class TestCircuit(unittest.TestCase):
def test_circuit_plain_newton_assembled(self):
- from openmdao.api import Group, NewtonSolver, DirectSolver, Problem, IndepVarComp
-
+ import openmdao.api as om
from openmdao.test_suite.scripts.circuit_analysis import Resistor, Diode, Node
- class Circuit(Group):
+ class Circuit(om.Group):
def setup(self):
self.add_subsystem('n1', Node(n_in=1, n_out=2), promotes_inputs=[('I_in:0', 'I_in')])
@@ -33,20 +32,20 @@ def setup(self):
self.connect('R2.I', 'n2.I_in:0')
self.connect('D1.I', 'n2.I_out:0')
- self.nonlinear_solver = NewtonSolver()
+ self.nonlinear_solver = om.NewtonSolver()
self.nonlinear_solver.options['iprint'] = 2
self.nonlinear_solver.options['maxiter'] = 20
##################################################################
# Assemble at the group level. Default assembled jac type is 'csc'
##################################################################
self.options['assembled_jac_type'] = 'csc'
- self.linear_solver = DirectSolver(assemble_jac=True)
+ self.linear_solver = om.DirectSolver(assemble_jac=True)
- p = Problem()
+ p = om.Problem()
model = p.model
- model.add_subsystem('ground', IndepVarComp('V', 0., units='V'))
- model.add_subsystem('source', IndepVarComp('I', 0.1, units='A'))
+ model.add_subsystem('ground', om.IndepVarComp('V', 0., units='V'))
+ model.add_subsystem('source', om.IndepVarComp('I', 0.1, units='A'))
model.add_subsystem('circuit', Circuit())
model.connect('source.I', 'circuit.I_in')
@@ -71,11 +70,10 @@ def setup(self):
def test_circuit_plain_newton(self):
- from openmdao.api import Group, NewtonSolver, DirectSolver, Problem, IndepVarComp
-
+ import openmdao.api as om
from openmdao.test_suite.scripts.circuit_analysis import Resistor, Diode, Node
- class Circuit(Group):
+ class Circuit(om.Group):
def setup(self):
self.add_subsystem('n1', Node(n_in=1, n_out=2), promotes_inputs=[('I_in:0', 'I_in')])
@@ -93,16 +91,16 @@ def setup(self):
self.connect('R2.I', 'n2.I_in:0')
self.connect('D1.I', 'n2.I_out:0')
- self.nonlinear_solver = NewtonSolver()
+ self.nonlinear_solver = om.NewtonSolver()
self.nonlinear_solver.options['iprint'] = 2
self.nonlinear_solver.options['maxiter'] = 20
- self.linear_solver = DirectSolver()
+ self.linear_solver = om.DirectSolver()
- p = Problem()
+ p = om.Problem()
model = p.model
- model.add_subsystem('ground', IndepVarComp('V', 0., units='V'))
- model.add_subsystem('source', IndepVarComp('I', 0.1, units='A'))
+ model.add_subsystem('ground', om.IndepVarComp('V', 0., units='V'))
+ model.add_subsystem('source', om.IndepVarComp('I', 0.1, units='A'))
model.add_subsystem('circuit', Circuit())
model.connect('source.I', 'circuit.I_in')
@@ -127,15 +125,14 @@ def setup(self):
def test_circuit_plain_newton_many_iter(self):
- from openmdao.api import Problem, IndepVarComp
-
+ import openmdao.api as om
from openmdao.test_suite.scripts.circuit_analysis import Circuit
- p = Problem()
+ p = om.Problem()
model = p.model
- model.add_subsystem('ground', IndepVarComp('V', 0., units='V'))
- model.add_subsystem('source', IndepVarComp('I', 0.1, units='A'))
+ model.add_subsystem('ground', om.IndepVarComp('V', 0., units='V'))
+ model.add_subsystem('source', om.IndepVarComp('I', 0.1, units='A'))
model.add_subsystem('circuit', Circuit())
model.connect('source.I', 'circuit.I_in')
@@ -160,15 +157,14 @@ def test_circuit_plain_newton_many_iter(self):
assert_rel_error(self, p['circuit.R1.I'] + p['circuit.D1.I'], 0.09987447, 1e-6)
def test_circuit_advanced_newton(self):
- from openmdao.api import ArmijoGoldsteinLS, Problem, IndepVarComp
-
+ import openmdao.api as om
from openmdao.test_suite.scripts.circuit_analysis import Circuit
- p = Problem()
+ p = om.Problem()
model = p.model
- model.add_subsystem('ground', IndepVarComp('V', 0., units='V'))
- model.add_subsystem('source', IndepVarComp('I', 0.1, units='A'))
+ model.add_subsystem('ground', om.IndepVarComp('V', 0., units='V'))
+ model.add_subsystem('source', om.IndepVarComp('I', 0.1, units='A'))
model.add_subsystem('circuit', Circuit())
model.connect('source.I', 'circuit.I_in')
@@ -181,7 +177,7 @@ def test_circuit_advanced_newton(self):
newton.options['iprint'] = 2
newton.options['maxiter'] = 10
newton.options['solve_subsystems'] = True
- newton.linesearch = ArmijoGoldsteinLS()
+ newton.linesearch = om.ArmijoGoldsteinLS()
newton.linesearch.options['maxiter'] = 10
newton.linesearch.options['iprint'] = 2
@@ -201,24 +197,23 @@ def test_circuit_advanced_newton(self):
assert_rel_error(self, p['circuit.R1.I'] + p['circuit.D1.I'], .1, 1e-6)
def test_circuit_voltage_source(self):
- from openmdao.api import ArmijoGoldsteinLS, Problem, IndepVarComp, BalanceComp, ExecComp
- from openmdao.api import NewtonSolver, DirectSolver, NonlinearRunOnce, LinearRunOnce
-
+ import openmdao.api as om
from openmdao.test_suite.scripts.circuit_analysis import Circuit
- p = Problem()
+ p = om.Problem()
model = p.model
- model.add_subsystem('ground', IndepVarComp('V', 0., units='V'))
+ model.add_subsystem('ground', om.IndepVarComp('V', 0., units='V'))
# replacing the fixed current source with a BalanceComp to represent a fixed Voltage source
- # model.add_subsystem('source', IndepVarComp('I', 0.1, units='A'))
- model.add_subsystem('batt', IndepVarComp('V', 1.5, units='V'))
- bal = model.add_subsystem('batt_balance', BalanceComp())
+ # model.add_subsystem('source', om.IndepVarComp('I', 0.1, units='A'))
+ model.add_subsystem('batt', om.IndepVarComp('V', 1.5, units='V'))
+ bal = model.add_subsystem('batt_balance', om.BalanceComp())
bal.add_balance('I', units='A', eq_units='V')
model.add_subsystem('circuit', Circuit())
- model.add_subsystem('batt_deltaV', ExecComp('dV = V1 - V2', V1={'units':'V'}, V2={'units':'V'}, dV={'units':'V'}))
+ model.add_subsystem('batt_deltaV', om.ExecComp('dV = V1 - V2', V1={'units':'V'},
+ V2={'units':'V'}, dV={'units':'V'}))
# current into the circuit is now the output state from the batt_balance comp
model.connect('batt_balance.I', 'circuit.I_in')
@@ -237,16 +232,16 @@ def test_circuit_voltage_source(self):
# change the circuit solver to RunOnce because we're
# going to converge at the top level of the model with newton instead
- p.model.circuit.nonlinear_solver = NonlinearRunOnce()
- p.model.circuit.linear_solver = LinearRunOnce()
+ p.model.circuit.nonlinear_solver = om.NonlinearRunOnce()
+ p.model.circuit.linear_solver = om.LinearRunOnce()
# Put Newton at the top so it can also converge the new BalanceComp residual
- newton = p.model.nonlinear_solver = NewtonSolver()
- p.model.linear_solver = DirectSolver()
+ newton = p.model.nonlinear_solver = om.NewtonSolver()
+ p.model.linear_solver = om.DirectSolver()
newton.options['iprint'] = 2
newton.options['maxiter'] = 20
newton.options['solve_subsystems'] = True
- newton.linesearch = ArmijoGoldsteinLS()
+ newton.linesearch = om.ArmijoGoldsteinLS()
newton.linesearch.options['maxiter'] = 10
newton.linesearch.options['iprint'] = 2
diff --git a/openmdao/test_suite/test_examples/test_circuit_analysis_derivs.py b/openmdao/test_suite/test_examples/test_circuit_analysis_derivs.py
index cd6fedf462..429452128d 100644
--- a/openmdao/test_suite/test_examples/test_circuit_analysis_derivs.py
+++ b/openmdao/test_suite/test_examples/test_circuit_analysis_derivs.py
@@ -1,11 +1,9 @@
import unittest
-from openmdao.utils.assert_utils import assert_rel_error
-
import numpy as np
-from openmdao.api import ExplicitComponent, ImplicitComponent, NewtonSolver, DirectSolver, ArmijoGoldsteinLS
-from openmdao.api import IndepVarComp, Problem, Group
+import openmdao.api as om
+from openmdao.utils.assert_utils import assert_rel_error
class TestNonlinearCircuit(unittest.TestCase):
@@ -13,10 +11,9 @@ class TestNonlinearCircuit(unittest.TestCase):
def test_nonlinear_circuit_analysis(self):
import numpy as np
- from openmdao.api import ExplicitComponent, ImplicitComponent, NewtonSolver, DirectSolver, ArmijoGoldsteinLS
- from openmdao.api import IndepVarComp, Problem, Group
+ import openmdao.api as om
- class Resistor(ExplicitComponent):
+ class Resistor(om.ExplicitComponent):
"""Computes current across a resistor using Ohm's law."""
def initialize(self):
@@ -36,7 +33,7 @@ def compute(self, inputs, outputs):
deltaV = inputs['V_in'] - inputs['V_out']
outputs['I'] = deltaV / self.options['R']
- class Diode(ExplicitComponent):
+ class Diode(om.ExplicitComponent):
"""Computes current across a diode using the Shockley diode equation."""
def initialize(self):
@@ -67,7 +64,7 @@ def compute_partials(self, inputs, J):
J['I', 'V_in'] = I/Vt
J['I', 'V_out'] = -I/Vt
- class Node(ImplicitComponent):
+ class Node(om.ImplicitComponent):
"""Computes voltage residual across a node based on incoming and outgoing current."""
def initialize(self):
@@ -97,7 +94,7 @@ def apply_nonlinear(self, inputs, outputs, residuals):
for i_conn in range(self.options['n_out']):
residuals['V'] -= inputs['I_out:{}'.format(i_conn)]
- class Circuit(Group):
+ class Circuit(om.Group):
def setup(self):
self.add_subsystem('n1', Node(n_in=1, n_out=2), promotes_inputs=[('I_in:0', 'I_in')])
@@ -115,22 +112,22 @@ def setup(self):
self.connect('R2.I', 'n2.I_in:0')
self.connect('D1.I', 'n2.I_out:0')
- self.nonlinear_solver = NewtonSolver()
- self.linear_solver = DirectSolver()
+ self.nonlinear_solver = om.NewtonSolver()
+ self.linear_solver = om.DirectSolver()
self.nonlinear_solver.options['iprint'] = 2
self.nonlinear_solver.options['maxiter'] = 10
self.nonlinear_solver.options['solve_subsystems'] = True
- self.nonlinear_solver.linesearch = ArmijoGoldsteinLS()
+ self.nonlinear_solver.linesearch = om.ArmijoGoldsteinLS()
self.nonlinear_solver.linesearch.options['maxiter'] = 10
self.nonlinear_solver.linesearch.options['iprint'] = 2
- p = Problem()
+ p = om.Problem()
model = p.model
- model.add_subsystem('ground', IndepVarComp('V', 0., units='V'))
- model.add_subsystem('source', IndepVarComp('I', 0.1, units='A'))
+ model.add_subsystem('ground', om.IndepVarComp('V', 0., units='V'))
+ model.add_subsystem('source', om.IndepVarComp('I', 0.1, units='A'))
model.add_subsystem('circuit', Circuit())
model.connect('source.I', 'circuit.I_in')
diff --git a/openmdao/test_suite/test_examples/test_hohmann_transfer.py b/openmdao/test_suite/test_examples/test_hohmann_transfer.py
index 1d3c3a8136..1b5bbdcad7 100644
--- a/openmdao/test_suite/test_examples/test_hohmann_transfer.py
+++ b/openmdao/test_suite/test_examples/test_hohmann_transfer.py
@@ -3,15 +3,14 @@
Low Earth Orbit (LEO) to Geostationary Orbit (GEO)
"""
from __future__ import print_function, division, absolute_import
-
import unittest
import numpy as np
-from openmdao.api import Problem, Group, ExplicitComponent, IndepVarComp, \
- ExecComp, ScipyOptimizeDriver
+
+import openmdao.api as om
-class VCircComp(ExplicitComponent):
+class VCircComp(om.ExplicitComponent):
"""
Computes the circular orbit velocity given a radius and gravitational
parameter.
@@ -54,7 +53,7 @@ def compute_partials(self, inputs, partials):
partials['vcirc', 'r'] = -0.5 * mu / (vcirc * r ** 2)
-class DeltaVComp(ExplicitComponent):
+class DeltaVComp(om.ExplicitComponent):
"""
Compute the delta-V performed given the magnitude of two velocities
and the angle between them.
@@ -95,7 +94,7 @@ def compute_partials(self, inputs, partials):
partials['delta_v', 'dinc'] = 0.5 / delta_v * (2 * v1 * v2 * np.sin(dinc))
-class TransferOrbitComp(ExplicitComponent):
+class TransferOrbitComp(om.ExplicitComponent):
def initialize(self):
pass
@@ -131,14 +130,14 @@ def compute(self, inputs, outputs):
class TestHohmannTransfer(unittest.TestCase):
def test_dv_at_apogee(self):
- from openmdao.api import Problem, Group, IndepVarComp, ExecComp, ScipyOptimizeDriver
+ import openmdao.api as om
from openmdao.test_suite.test_examples.test_hohmann_transfer import VCircComp, TransferOrbitComp, DeltaVComp
- prob = Problem(model=Group())
+ prob = om.Problem()
model = prob.model
- ivc = model.add_subsystem('ivc', IndepVarComp(), promotes_outputs=['*'])
+ ivc = model.add_subsystem('ivc', om.IndepVarComp(), promotes_outputs=['*'])
ivc.add_output('mu', val=0.0, units='km**3/s**2')
ivc.add_output('r1', val=0.0, units='km')
ivc.add_output('r2', val=0.0, units='km')
@@ -168,26 +167,26 @@ def test_dv_at_apogee(self):
model.connect('dinc2', 'dv2.dinc')
model.add_subsystem('dv_total',
- subsys=ExecComp('delta_v=dv1+dv2',
- delta_v={'units': 'km/s'},
- dv1={'units': 'km/s'},
- dv2={'units': 'km/s'}),
+ subsys=om.ExecComp('delta_v=dv1+dv2',
+ delta_v={'units': 'km/s'},
+ dv1={'units': 'km/s'},
+ dv2={'units': 'km/s'}),
promotes=['delta_v'])
model.connect('dv1.delta_v', 'dv_total.dv1')
model.connect('dv2.delta_v', 'dv_total.dv2')
model.add_subsystem('dinc_total',
- subsys=ExecComp('dinc=dinc1+dinc2',
- dinc={'units': 'deg'},
- dinc1={'units': 'deg'},
- dinc2={'units': 'deg'}),
+ subsys=om.ExecComp('dinc=dinc1+dinc2',
+ dinc={'units': 'deg'},
+ dinc1={'units': 'deg'},
+ dinc2={'units': 'deg'}),
promotes=['dinc'])
model.connect('dinc1', 'dinc_total.dinc1')
model.connect('dinc2', 'dinc_total.dinc2')
- prob.driver = ScipyOptimizeDriver()
+ prob.driver = om.ScipyOptimizeDriver()
model.add_design_var('dinc1', lower=0, upper=28.5)
model.add_design_var('dinc2', lower=0, upper=28.5)
diff --git a/openmdao/test_suite/test_examples/test_keplers_equation.py b/openmdao/test_suite/test_examples/test_keplers_equation.py
index 19f842f7b2..21dacafe88 100644
--- a/openmdao/test_suite/test_examples/test_keplers_equation.py
+++ b/openmdao/test_suite/test_examples/test_keplers_equation.py
@@ -5,8 +5,8 @@
import numpy as np
from numpy.testing import assert_almost_equal
-from openmdao.api import Problem, Group, IndepVarComp, BalanceComp, \
- ExecComp, DirectSolver, NewtonSolver
+import openmdao.api as om
+
class TestKeplersEquation(unittest.TestCase):
@@ -14,12 +14,11 @@ def test_result(self):
import numpy as np
from numpy.testing import assert_almost_equal
- from openmdao.api import Problem, Group, IndepVarComp, BalanceComp, \
- ExecComp, DirectSolver, NewtonSolver
+ import openmdao.api as om
- prob = Problem()
+ prob = om.Problem()
- ivc = IndepVarComp()
+ ivc = om.IndepVarComp()
ivc.add_output(name='M',
val=0.0,
@@ -31,7 +30,7 @@ def test_result(self):
units=None,
desc='orbit eccentricity')
- bal = BalanceComp()
+ bal = om.BalanceComp()
bal.add_balance(name='E', val=0.0, units='rad', eq_units='rad', rhs_name='M')
@@ -42,10 +41,10 @@ def guess_function(inputs, outputs, residuals):
bal.options['guess_func'] = guess_function
# ExecComp used to compute the LHS of Kepler's equation.
- lhs_comp = ExecComp('lhs=E - ecc * sin(E)',
- lhs={'value': 0.0, 'units': 'rad'},
- E={'value': 0.0, 'units': 'rad'},
- ecc={'value': 0.0})
+ lhs_comp = om.ExecComp('lhs=E - ecc * sin(E)',
+ lhs={'value': 0.0, 'units': 'rad'},
+ E={'value': 0.0, 'units': 'rad'},
+ ecc={'value': 0.0})
prob.model.add_subsystem(name='ivc', subsys=ivc,
promotes_outputs=['M', 'ecc'])
@@ -61,8 +60,8 @@ def guess_function(inputs, outputs, residuals):
prob.model.connect('lhs_comp.lhs', 'balance.lhs:E')
# Set up solvers
- prob.model.linear_solver = DirectSolver()
- prob.model.nonlinear_solver = NewtonSolver(maxiter=100, iprint=0)
+ prob.model.linear_solver = om.DirectSolver()
+ prob.model.nonlinear_solver = om.NewtonSolver(maxiter=100, iprint=0)
prob.setup()
diff --git a/openmdao/test_suite/test_examples/test_sellar_mda_promote_connect.py b/openmdao/test_suite/test_examples/test_sellar_mda_promote_connect.py
index c3f0c9b972..7e6d588a29 100644
--- a/openmdao/test_suite/test_examples/test_sellar_mda_promote_connect.py
+++ b/openmdao/test_suite/test_examples/test_sellar_mda_promote_connect.py
@@ -1,48 +1,51 @@
from __future__ import print_function, division
import unittest
+
import numpy as np
-from openmdao.api import Group, IndepVarComp, ExecComp, NonlinearBlockGS
+import openmdao.api as om
from openmdao.test_suite.components.sellar import SellarDis1, SellarDis2
-
from openmdao.utils.assert_utils import assert_rel_error
-
class TestSellarMDAPromoteConnect(unittest.TestCase):
def test_sellar_mda_promote(self):
import numpy as np
- from openmdao.api import Problem, Group, IndepVarComp, ExecComp, NonlinearBlockGS
+
+ import openmdao.api as om
from openmdao.test_suite.components.sellar import SellarDis1, SellarDis2
- class SellarMDA(Group):
+ class SellarMDA(om.Group):
"""
Group containing the Sellar MDA.
"""
def setup(self):
- indeps = self.add_subsystem('indeps', IndepVarComp(), promotes=['*'])
+ indeps = self.add_subsystem('indeps', om.IndepVarComp(), promotes=['*'])
indeps.add_output('x', 1.0)
indeps.add_output('z', np.array([5.0, 2.0]))
- cycle = self.add_subsystem('cycle', Group(), promotes=['*'])
- cycle.add_subsystem('d1', SellarDis1(), promotes_inputs=['x', 'z', 'y2'], promotes_outputs=['y1'])
- cycle.add_subsystem('d2', SellarDis2(), promotes_inputs=['z', 'y1'], promotes_outputs=['y2'])
+ cycle = self.add_subsystem('cycle', om.Group(), promotes=['*'])
+ cycle.add_subsystem('d1', SellarDis1(), promotes_inputs=['x', 'z', 'y2'],
+ promotes_outputs=['y1'])
+ cycle.add_subsystem('d2', SellarDis2(), promotes_inputs=['z', 'y1'],
+ promotes_outputs=['y2'])
# Nonlinear Block Gauss Seidel is a gradient free solver
- cycle.nonlinear_solver = NonlinearBlockGS()
+ cycle.nonlinear_solver =om. NonlinearBlockGS()
- self.add_subsystem('obj_cmp', ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
- z=np.array([0.0, 0.0]), x=0.0),
+ self.add_subsystem('obj_cmp', om.ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
+ z=np.array([0.0, 0.0]), x=0.0),
promotes=['x', 'z', 'y1', 'y2', 'obj'])
- self.add_subsystem('con_cmp1', ExecComp('con1 = 3.16 - y1'), promotes=['con1', 'y1'])
- self.add_subsystem('con_cmp2', ExecComp('con2 = y2 - 24.0'), promotes=['con2', 'y2'])
+ self.add_subsystem('con_cmp1', om.ExecComp('con1 = 3.16 - y1'),
+ promotes=['con1', 'y1'])
+ self.add_subsystem('con_cmp2', om.ExecComp('con2 = y2 - 24.0'),
+ promotes=['con2', 'y2'])
- prob = Problem()
-
+ prob = om.Problem()
prob.model = SellarMDA()
prob.setup()
@@ -58,41 +61,41 @@ def setup(self):
def test_sellar_mda_connect(self):
import numpy as np
- from openmdao.api import Problem, Group, IndepVarComp, ExecComp, NonlinearBlockGS
+
+ import openmdao.api as om
from openmdao.test_suite.components.sellar import SellarDis1, SellarDis2
- class SellarMDAConnect(Group):
+ class SellarMDAConnect(om.Group):
"""
Group containing the Sellar MDA. This version uses the disciplines without derivatives.
"""
def setup(self):
- indeps = self.add_subsystem('indeps', IndepVarComp())
+ indeps = self.add_subsystem('indeps', om.IndepVarComp())
indeps.add_output('x', 1.0)
indeps.add_output('z', np.array([5.0, 2.0]))
- cycle = self.add_subsystem('cycle', Group())
+ cycle = self.add_subsystem('cycle', om.Group())
cycle.add_subsystem('d1', SellarDis1())
cycle.add_subsystem('d2', SellarDis2())
cycle.connect('d1.y1', 'd2.y1')
cycle.connect('d2.y2', 'd1.y2')
# Nonlinear Block Gauss Seidel is a gradient free solver
- cycle.nonlinear_solver = NonlinearBlockGS()
+ cycle.nonlinear_solver = om.NonlinearBlockGS()
- self.add_subsystem('obj_cmp', ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
- z=np.array([0.0, 0.0]), x=0.0))
+ self.add_subsystem('obj_cmp', om.ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
+ z=np.array([0.0, 0.0]), x=0.0))
- self.add_subsystem('con_cmp1', ExecComp('con1 = 3.16 - y1'))
- self.add_subsystem('con_cmp2', ExecComp('con2 = y2 - 24.0'))
+ self.add_subsystem('con_cmp1', om.ExecComp('con1 = 3.16 - y1'))
+ self.add_subsystem('con_cmp2', om.ExecComp('con2 = y2 - 24.0'))
self.connect('indeps.x', ['cycle.d1.x', 'obj_cmp.x'])
self.connect('indeps.z', ['cycle.d1.z', 'cycle.d2.z', 'obj_cmp.z'])
self.connect('cycle.d1.y1', ['obj_cmp.y1', 'con_cmp1.y1'])
self.connect('cycle.d2.y2', ['obj_cmp.y2', 'con_cmp2.y2'])
- prob = Problem()
-
+ prob = om.Problem()
prob.model = SellarMDAConnect()
prob.setup()
@@ -109,33 +112,33 @@ def setup(self):
def test_sellar_mda_promote_connect(self):
import numpy as np
- from openmdao.api import Problem, Group, IndepVarComp, ExecComp, NonlinearBlockGS
+ import openmdao.api as om
from openmdao.test_suite.components.sellar import SellarDis1, SellarDis2
- class SellarMDAPromoteConnect(Group):
+ class SellarMDAPromoteConnect(om.Group):
"""
Group containing the Sellar MDA. This version uses the disciplines without derivatives.
"""
def setup(self):
- indeps = self.add_subsystem('indeps', IndepVarComp(), promotes=['*'])
+ indeps = self.add_subsystem('indeps', om.IndepVarComp(), promotes=['*'])
indeps.add_output('x', 1.0)
indeps.add_output('z', np.array([5.0, 2.0]))
- cycle = self.add_subsystem('cycle', Group(), promotes=['*'])
+ cycle = self.add_subsystem('cycle', om.Group(), promotes=['*'])
cycle.add_subsystem('d1', SellarDis1())
cycle.add_subsystem('d2', SellarDis2())
cycle.connect('d1.y1', 'd2.y1')
cycle.connect('d2.y2', 'd1.y2')
# Nonlinear Block Gauss Seidel is a gradient free solver
- cycle.nonlinear_solver = NonlinearBlockGS()
+ cycle.nonlinear_solver = om.NonlinearBlockGS()
- self.add_subsystem('obj_cmp', ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
- z=np.array([0.0, 0.0]), x=0.0))
+ self.add_subsystem('obj_cmp', om.ExecComp('obj = x**2 + z[1] + y1 + exp(-y2)',
+ z=np.array([0.0, 0.0]), x=0.0))
- self.add_subsystem('con_cmp1', ExecComp('con1 = 3.16 - y1'))
- self.add_subsystem('con_cmp2', ExecComp('con2 = y2 - 24.0'))
+ self.add_subsystem('con_cmp1', om.ExecComp('con1 = 3.16 - y1'))
+ self.add_subsystem('con_cmp2', om.ExecComp('con2 = y2 - 24.0'))
self.connect('x', ['d1.x', 'obj_cmp.x'])
self.connect('z', ['d1.z', 'd2.z', 'obj_cmp.z'])
@@ -143,8 +146,7 @@ def setup(self):
self.connect('d2.y2', ['con_cmp2.y2', 'obj_cmp.y2'])
- prob = Problem()
-
+ prob = om.Problem()
prob.model = SellarMDAPromoteConnect()
prob.setup()
diff --git a/openmdao/test_suite/test_examples/test_sellar_opt.py b/openmdao/test_suite/test_examples/test_sellar_opt.py
index 306796e954..5107c2d1ac 100644
--- a/openmdao/test_suite/test_examples/test_sellar_opt.py
+++ b/openmdao/test_suite/test_examples/test_sellar_opt.py
@@ -2,21 +2,20 @@
import unittest
+import openmdao.api as om
from openmdao.utils.assert_utils import assert_rel_error
-from openmdao.api import Problem, ScipyOptimizeDriver, ExecComp, IndepVarComp, DirectSolver
-
class TestSellarOpt(unittest.TestCase):
def test_sellar_opt(self):
- from openmdao.api import Problem, ScipyOptimizeDriver, ExecComp, IndepVarComp, DirectSolver
+ import openmdao.api as om
from openmdao.test_suite.components.sellar_feature import SellarMDA
- prob = Problem()
+ prob = om.Problem()
prob.model = SellarMDA()
- prob.driver = ScipyOptimizeDriver()
+ prob.driver = om.ScipyOptimizeDriver()
prob.driver.options['optimizer'] = 'SLSQP'
# prob.driver.options['maxiter'] = 100
prob.driver.options['tol'] = 1e-8
diff --git a/openmdao/test_suite/test_examples/test_tldr_paraboloid_b.py b/openmdao/test_suite/test_examples/test_tldr_paraboloid_b.py
index e4f638b576..6e1d12d260 100644
--- a/openmdao/test_suite/test_examples/test_tldr_paraboloid_b.py
+++ b/openmdao/test_suite/test_examples/test_tldr_paraboloid_b.py
@@ -8,21 +8,21 @@
class TestParaboloidTLDR(unittest.TestCase):
def test_tldr(self):
- from openmdao.api import Problem, ScipyOptimizeDriver, ExecComp, IndepVarComp
+ import openmdao.api as om
# build the model
- prob = Problem()
- indeps = prob.model.add_subsystem('indeps', IndepVarComp())
+ prob = om.Problem()
+ indeps = prob.model.add_subsystem('indeps', om.IndepVarComp())
indeps.add_output('x', 3.0)
indeps.add_output('y', -4.0)
- prob.model.add_subsystem('paraboloid', ExecComp('f = (x-3)**2 + x*y + (y+4)**2 - 3'))
+ prob.model.add_subsystem('paraboloid', om.ExecComp('f = (x-3)**2 + x*y + (y+4)**2 - 3'))
prob.model.connect('indeps.x', 'paraboloid.x')
prob.model.connect('indeps.y', 'paraboloid.y')
# setup the optimization
- prob.driver = ScipyOptimizeDriver()
+ prob.driver = om.ScipyOptimizeDriver()
prob.driver.options['optimizer'] = 'SLSQP'
prob.model.add_design_var('indeps.x', lower=-50, upper=50)
diff --git a/openmdao/test_suite/test_examples/tldr_paraboloid.py b/openmdao/test_suite/test_examples/tldr_paraboloid.py
index 49367f8033..c1ee40040a 100644
--- a/openmdao/test_suite/test_examples/tldr_paraboloid.py
+++ b/openmdao/test_suite/test_examples/tldr_paraboloid.py
@@ -8,21 +8,21 @@
class TestParaboloidTLDR(unittest.TestCase):
def test_tldr(self):
- from openmdao.api import Problem, ScipyOptimizeDriver, ExecComp, IndepVarComp
+ import openmdao.api as om
# build the model
- prob = Problem()
- indeps = prob.model.add_subsystem('indeps', IndepVarComp())
+ prob = om.Problem()
+ indeps = prob.model.add_subsystem('indeps', om.IndepVarComp())
indeps.add_output('x', 3.0)
indeps.add_output('y', -4.0)
- prob.model.add_subsystem('paraboloid', ExecComp('f = (x-3)**2 + x*y + (y+4)**2 - 3'))
+ prob.model.add_subsystem('paraboloid', om.ExecComp('f = (x-3)**2 + x*y + (y+4)**2 - 3'))
prob.model.connect('indeps.x', 'paraboloid.x')
prob.model.connect('indeps.y', 'paraboloid.y')
# setup the optimization
- prob.driver = ScipyOptimizeDriver()
+ prob.driver = om.ScipyOptimizeDriver()
prob.driver.options['optimizer'] = 'SLSQP'
prob.model.add_design_var('indeps.x', lower=-50, upper=50)
diff --git a/openmdao/test_suite/tests/test_feature_sellar.py b/openmdao/test_suite/tests/test_feature_sellar.py
index f888538c9f..b31476a368 100644
--- a/openmdao/test_suite/tests/test_feature_sellar.py
+++ b/openmdao/test_suite/tests/test_feature_sellar.py
@@ -2,18 +2,18 @@
import unittest
-from openmdao.api import Problem
+import openmdao.api as om
+from openmdao.test_suite.components.sellar_feature import SellarMDA, SellarMDALinearSolver
from openmdao.utils.assert_utils import assert_rel_error
-from openmdao.test_suite.components.sellar_feature import SellarMDA, SellarMDALinearSolver, IndepVarComp
class TestSellarFeature(unittest.TestCase):
def test_sellar(self):
- prob = Problem()
+ prob = om.Problem()
prob.model = SellarMDA()
- prob.setup(check=False)
+ prob.setup()
prob.run_model()
assert_rel_error(self, prob['y1'], 25.58830273, .00001)
@@ -25,10 +25,10 @@ def test_sellar(self):
def test_sellar_linear_solver(self):
- prob = Problem()
+ prob = om.Problem()
prob.model = SellarMDALinearSolver()
- prob.setup(check=False)
+ prob.setup()
prob.model.cycle.nonlinear_solver.options['use_apply_nonlinear'] = True
prob.run_model()
@@ -47,5 +47,6 @@ def test_sellar_linear_solver(self):
assert_rel_error(self, jac['con2', 'x'][0], 0.09692762, 1e-4)
assert_rel_error(self, jac['con2', 'z'][0], [1.94989079, 1.0775421], 1e-4)
+
if __name__ == "__main__":
unittest.main()
diff --git a/openmdao/test_suite/tests/test_paraboloid_feature.py b/openmdao/test_suite/tests/test_paraboloid_feature.py
index 6edcc3d211..29c8e04150 100644
--- a/openmdao/test_suite/tests/test_paraboloid_feature.py
+++ b/openmdao/test_suite/tests/test_paraboloid_feature.py
@@ -2,7 +2,7 @@
import unittest
-from openmdao.api import Problem, Group, IndepVarComp
+import openmdao.api as om
from openmdao.utils.assert_utils import assert_rel_error
from openmdao.test_suite.components.paraboloid_feature import Paraboloid
@@ -11,17 +11,17 @@ class TestSellarFeature(unittest.TestCase):
def test_paraboloid_feature(self):
- prob = Problem()
- model = prob.model = Group()
+ prob = om.Problem()
+ model = prob.model
- model.add_subsystem('p1', IndepVarComp('x', 3.0))
- model.add_subsystem('p2', IndepVarComp('y', -4.0))
+ model.add_subsystem('p1', om.IndepVarComp('x', 3.0))
+ model.add_subsystem('p2', om.IndepVarComp('y', -4.0))
model.add_subsystem('comp', Paraboloid())
model.connect('p1.x', 'comp.x')
model.connect('p2.y', 'comp.y')
- prob.setup(check=False)
+ prob.setup()
prob.run_model()
assert_rel_error(self, prob['comp.f_xy'], -15.0)
diff --git a/openmdao/test_suite/tests/test_quad_implicit.py b/openmdao/test_suite/tests/test_quad_implicit.py
index e4a5e53153..d985984bc3 100644
--- a/openmdao/test_suite/tests/test_quad_implicit.py
+++ b/openmdao/test_suite/tests/test_quad_implicit.py
@@ -2,21 +2,20 @@
import numpy as np
-from openmdao.api import Problem
+import openmdao.api as om
from openmdao.test_suite.components.quad_implicit import QuadraticComp
-
class TestQuadImplicit(unittest.TestCase):
def test_check_partials_for_docs(self):
- from openmdao.api import Problem
+ import openmdao.api as om
from openmdao.test_suite.components.quad_implicit import QuadraticComp
- p = Problem()
+ p = om.Problem()
p.model.add_subsystem('quad', QuadraticComp())
@@ -25,7 +24,7 @@ def test_check_partials_for_docs(self):
p.check_partials(compact_print=True)
def test_check_partials(self):
- p = Problem()
+ p = om.Problem()
p.model.add_subsystem('quad', QuadraticComp())
diff --git a/openmdao/utils/code_utils.py b/openmdao/utils/code_utils.py
index 063afb0b15..efd845e4fc 100644
--- a/openmdao/utils/code_utils.py
+++ b/openmdao/utils/code_utils.py
@@ -241,5 +241,6 @@ def _calltree_exec(options):
if __name__ == '__main__':
- from openmdao.api import LinearBlockGS
- get_nested_calls(LinearBlockGS, 'solve')
+ import openmdao.api as om
+
+ get_nested_calls(om.LinearBlockGS, 'solve')
diff --git a/openmdao/utils/tests/test_assert_utils.py b/openmdao/utils/tests/test_assert_utils.py
index 099d3efdad..d5870a8402 100644
--- a/openmdao/utils/tests/test_assert_utils.py
+++ b/openmdao/utils/tests/test_assert_utils.py
@@ -39,7 +39,7 @@ def compute_partials(self, inputs, partials):
prob.model = MyComp()
prob.set_solver_print(level=0)
- prob.setup(check=False)
+ prob.setup()
prob.run_model()
data = prob.check_partials(out_stream=None)
@@ -71,7 +71,7 @@ def compute_partials(self, inputs, partials):
prob.set_solver_print(level=0)
- prob.setup(check=False)
+ prob.setup()
prob.run_model()
data = prob.check_partials(out_stream=None)
@@ -124,7 +124,7 @@ def compute_partials(self, inputs, partials):
prob.set_solver_print(level=0)
- prob.setup(check=False)
+ prob.setup()
prob.run_model()
data = prob.check_partials(out_stream=None)
@@ -141,7 +141,7 @@ def test_assert_no_approx_partials_exception_expected(self):
prob = Problem()
prob.model = SellarNoDerivativesCS()
- prob.setup(check=False)
+ prob.setup()
try:
assert_no_approx_partials(prob.model, include_self=True, recurse=True)
@@ -163,7 +163,7 @@ def test_assert_no_approx_partials_exception_not_expected(self):
prob = Problem()
prob.model = DoubleSellar()
- prob.setup(check=False)
+ prob.setup()
assert_no_approx_partials(prob.model, include_self=True, recurse=True)
@@ -172,7 +172,7 @@ def test_assert_no_dict_jacobians_exception_expected(self):
prob = Problem()
prob.model = SellarNoDerivativesCS()
- prob.setup(check=False)
+ prob.setup()
prob.model.cycle._jacobian = DictionaryJacobian(prob.model.cycle)
try:
@@ -199,6 +199,6 @@ def test_assert_no_dict_jacobians_exception_not_expected(self):
prob = Problem(model)
prob.model.linear_solver = DirectSolver(assemble_jac=True)
- prob.setup(check=False)
+ prob.setup()
assert_no_dict_jacobians(prob.model, include_self=True, recurse=True)
diff --git a/openmdao/utils/tests/test_find_citations.py b/openmdao/utils/tests/test_find_citations.py
index ccc79977f2..5915865909 100644
--- a/openmdao/utils/tests/test_find_citations.py
+++ b/openmdao/utils/tests/test_find_citations.py
@@ -17,7 +17,6 @@ def setUp(self):
p = Problem()
- p.model = Group()
p.model.cite = "foobar model"
p.model.nonlinear_solver.cite = "foobar nonlinear_solver"
p.model.linear_solver.cite = "foobar linear_solver"
@@ -139,8 +138,6 @@ def setUp(self):
p = Problem()
- p.model = Group()
-
p.model.cite = "foobar model"
p.model.nonlinear_solver.cite = "foobar nonlinear_solver"
p.model.linear_solver.cite = "foobar linear_solver"
diff --git a/openmdao/utils/tests/test_options_dictionary_feature.py b/openmdao/utils/tests/test_options_dictionary_feature.py
index 6ce6c389e3..0e2b7b45d2 100644
--- a/openmdao/utils/tests/test_options_dictionary_feature.py
+++ b/openmdao/utils/tests/test_options_dictionary_feature.py
@@ -1,18 +1,20 @@
-from openmdao.api import ExplicitComponent
import unittest
from six import PY3, assertRegex
+
import numpy as np
+
+import openmdao.api as om
from openmdao.utils.assert_utils import assert_rel_error
class TestOptionsDictionaryFeature(unittest.TestCase):
def test_simple(self):
- from openmdao.api import Problem, IndepVarComp
+ import openmdao.api as om
from openmdao.test_suite.components.options_feature_vector import VectorDoublingComp
- prob = Problem()
- prob.model.add_subsystem('inputs', IndepVarComp('x', shape=3))
+ prob = om.Problem()
+ prob.model.add_subsystem('inputs', om.IndepVarComp('x', shape=3))
prob.model.add_subsystem('double', VectorDoublingComp(size=3)) # 'size' is an option
prob.model.connect('inputs.x', 'double.x')
@@ -24,11 +26,11 @@ def test_simple(self):
assert_rel_error(self, prob['double.y'], [2., 4., 6.])
def test_simple_fail(self):
- from openmdao.api import Problem, IndepVarComp
+ import openmdao.api as om
from openmdao.test_suite.components.options_feature_vector import VectorDoublingComp
- prob = Problem()
- prob.model.add_subsystem('inputs', IndepVarComp('x', shape=3))
+ prob = om.Problem()
+ prob.model.add_subsystem('inputs', om.IndepVarComp('x', shape=3))
prob.model.add_subsystem('double', VectorDoublingComp()) # 'size' not specified
prob.model.connect('inputs.x', 'double.x')
@@ -38,11 +40,11 @@ def test_simple_fail(self):
self.assertEqual(str(err), "Option 'size' is required but has not been set.")
def test_with_default(self):
- from openmdao.api import Problem, IndepVarComp
+ import openmdao.api as om
from openmdao.test_suite.components.options_feature_lincomb import LinearCombinationComp
- prob = Problem()
- prob.model.add_subsystem('inputs', IndepVarComp('x'))
+ prob = om.Problem()
+ prob.model.add_subsystem('inputs', om.IndepVarComp('x'))
prob.model.add_subsystem('linear', LinearCombinationComp(a=2.)) # 'b' not specified
prob.model.connect('inputs.x', 'linear.x')
@@ -56,11 +58,11 @@ def test_with_default(self):
def test_simple_array(self):
import numpy as np
- from openmdao.api import Problem, IndepVarComp
+ import openmdao.api as om
from openmdao.test_suite.components.options_feature_array import ArrayMultiplyComp
- prob = Problem()
- prob.model.add_subsystem('inputs', IndepVarComp('x', 1.))
+ prob = om.Problem()
+ prob.model.add_subsystem('inputs', om.IndepVarComp('x', 1.))
prob.model.add_subsystem('a_comp', ArrayMultiplyComp(array=np.array([1, 2, 3])))
prob.model.connect('inputs.x', 'a_comp.x')
@@ -73,14 +75,14 @@ def test_simple_array(self):
assert_rel_error(self, prob['a_comp.y'], [5., 10., 15.])
def test_simple_function(self):
- from openmdao.api import Problem, IndepVarComp
+ import openmdao.api as om
from openmdao.test_suite.components.options_feature_function import UnitaryFunctionComp
def my_func(x):
return x*2
- prob = Problem()
- prob.model.add_subsystem('inputs', IndepVarComp('x', 1.))
+ prob = om.Problem()
+ prob.model.add_subsystem('inputs', om.IndepVarComp('x', 1.))
prob.model.add_subsystem('f_comp', UnitaryFunctionComp(func=my_func))
prob.model.connect('inputs.x', 'f_comp.x')
diff --git a/openmdao/utils/tests/test_visualization.py b/openmdao/utils/tests/test_visualization.py
index cd400388ab..98d7da770a 100644
--- a/openmdao/utils/tests/test_visualization.py
+++ b/openmdao/utils/tests/test_visualization.py
@@ -9,7 +9,7 @@
except ImportError:
matplotlib = None
-from openmdao.api import Problem, IndepVarComp, ExplicitComponent, Group, partial_deriv_plot
+import openmdao.api as om
from openmdao.utils.assert_utils import assert_rel_error
@unittest.skipUnless(matplotlib, "Matplotlib is required.")
@@ -20,7 +20,7 @@ def setUp(self):
def test_partial_deriv_plot(self):
- class ArrayComp2D(ExplicitComponent):
+ class ArrayComp2D(om.ExplicitComponent):
"""
A fairly simple array component with an intentional error in compute_partials.
"""
@@ -50,15 +50,15 @@ def compute_partials(self, inputs, partials):
error[1][2] = - 2.0 * err
partials[('y1', 'x1')] = self.JJ + error
- prob = Problem()
- prob.model = model = Group()
- model.add_subsystem('x_param1', IndepVarComp('x1', np.ones((4))), promotes=['x1'])
+ prob = om.Problem()
+ model = prob.model
+ model.add_subsystem('x_param1', om.IndepVarComp('x1', np.ones((4))), promotes=['x1'])
model.add_subsystem('mycomp', ArrayComp2D(), promotes=['x1', 'y1'])
prob.setup(check=False, mode='fwd')
check_partials_data = prob.check_partials(out_stream=None)
# plot with defaults
- fig, ax = partial_deriv_plot('y1', 'x1', check_partials_data, title="Defaults")
+ fig, ax = om.partial_deriv_plot('y1', 'x1', check_partials_data, title="Defaults")
# Instead of seeing if the images created by matplotlib match what we expect, which
# is a fragile thing to do in testing, check a data structure inside matplotlib's
# objects. We will assume matplotlib draws the correct thing.
@@ -82,8 +82,8 @@ def compute_partials(self, inputs, partials):
assert_rel_error(self, expected_array, actual_array, 1e-8)
# plot with specified jac_method
- fig, ax = partial_deriv_plot('y1', 'x1', check_partials_data, jac_method = "J_rev",
- title="specified jac_method")
+ fig, ax = om.partial_deriv_plot('y1', 'x1', check_partials_data, jac_method = "J_rev",
+ title="specified jac_method")
expected_array = np.array([[1., 0., 0., 1.],
[0., 1., 0., 0.],
[1., 0., 1., 0.],
@@ -104,8 +104,8 @@ def compute_partials(self, inputs, partials):
assert_rel_error(self, expected_array, actual_array, 1e-8)
# plot in non-binary mode
- fig, ax = partial_deriv_plot('y1', 'x1', check_partials_data, binary = False,
- title="non-binary")
+ fig, ax = om.partial_deriv_plot('y1', 'x1', check_partials_data, binary = False,
+ title="non-binary")
expected_array = np.array([[ 1. , 0. , 0. , 7. ],
[ 0. , 2.5, 0. , 0. ],
[-1. , 0. , 8. , 0. ],
@@ -127,10 +127,10 @@ def compute_partials(self, inputs, partials):
# plot with different tol values
# Not obvious how to test this other than image matching
- partial_deriv_plot('y1', 'x1', check_partials_data, tol=1e-5,
- title="tol greater than err")
- partial_deriv_plot('y1', 'x1', check_partials_data, tol=1e-10,
- title="tol less than err")
+ om.partial_deriv_plot('y1', 'x1', check_partials_data, tol=1e-5,
+ title="tol greater than err")
+ om.partial_deriv_plot('y1', 'x1', check_partials_data, tol=1e-10,
+ title="tol less than err")
@unittest.skipUnless(matplotlib, "Matplotlib is required.")
@@ -141,8 +141,9 @@ def setUp(self):
def test_partial_deriv_plot(self):
import numpy as np
- from openmdao.api import ExplicitComponent, Problem, Group, IndepVarComp
- class ArrayComp2D(ExplicitComponent):
+ import openmdao.api as om
+
+ class ArrayComp2D(om.ExplicitComponent):
"""
A fairly simple array component with an intentional error in compute_partials.
"""
@@ -174,20 +175,21 @@ def compute_partials(self, inputs, partials):
error[1][2] = - 2.0 * err
partials[('y1', 'x1')] = self.JJ + error
- prob = Problem()
- prob.model = model = Group()
- model.add_subsystem('x_param1', IndepVarComp('x1', np.ones((4))), promotes=['x1'])
+ prob = om.Problem()
+ model = prob.model
+ model.add_subsystem('x_param1', om.IndepVarComp('x1', np.ones((4))), promotes=['x1'])
model.add_subsystem('mycomp', ArrayComp2D(), promotes=['x1', 'y1'])
prob.setup(check=False, mode='fwd')
check_partials_data = prob.check_partials(out_stream=None)
# plot with defaults
- partial_deriv_plot('y1', 'x1', check_partials_data)
+ om.partial_deriv_plot('y1', 'x1', check_partials_data)
def test_partial_deriv_non_binary_plot(self):
import numpy as np
- from openmdao.api import ExplicitComponent, Problem, Group, IndepVarComp
- class ArrayComp2D(ExplicitComponent):
+ import openmdao.api as om
+
+ class ArrayComp2D(om.ExplicitComponent):
"""
A fairly simple array component with an intentional error in compute_partials.
"""
@@ -219,15 +221,15 @@ def compute_partials(self, inputs, partials):
error[1][2] = - 2.0 * err
partials[('y1', 'x1')] = self.JJ + error
- prob = Problem()
- prob.model = model = Group()
- model.add_subsystem('x_param1', IndepVarComp('x1', np.ones((4))), promotes=['x1'])
+ prob = om.Problem()
+ model = prob.model
+ model.add_subsystem('x_param1', om.IndepVarComp('x1', np.ones((4))), promotes=['x1'])
model.add_subsystem('mycomp', ArrayComp2D(), promotes=['x1', 'y1'])
prob.setup(check=False, mode='fwd')
check_partials_data = prob.check_partials(out_stream=None)
# plot in non-binary mode
- partial_deriv_plot('y1', 'x1', check_partials_data, binary = False)
+ om.partial_deriv_plot('y1', 'x1', check_partials_data, binary = False)
if __name__ == "__main__":