Example #1
0
    def test_partials(self):

        n = 10

        p = om.Problem(model=om.Group())

        ivc = om.IndepVarComp()

        ivc.add_output(name='mach', units=None, val=np.zeros(n))

        p.model.add_subsystem(name='ivc', subsys=ivc, promotes_outputs=['*'])

        p.model.add_subsystem(name='kappa_comp',
                              subsys=KappaComp(num_nodes=n))

        p.model.connect('mach', 'kappa_comp.mach')

        p.setup()

        p['mach'] = np.linspace(0, 1.8, n)

        p.run_model()

        cpd = p.check_partials(compact_print=False, out_stream=None)
        assert_check_partials(cpd, atol=1.0E-5, rtol=1.0E-4)
Example #2
0
    def test_value(self):
        n = 500

        p = om.Problem(model=om.Group())

        ivc = om.IndepVarComp()

        ivc.add_output(name='mach', units=None, val=np.zeros(n))

        p.model.add_subsystem(name='ivc', subsys=ivc, promotes_outputs=['*'])

        p.model.add_subsystem(name='kappa_comp', subsys=KappaComp(num_nodes=n))

        p.model.connect('mach', 'kappa_comp.mach')

        p.setup()

        p['mach'] = np.linspace(0, 1.8, n)
        p.run_model()

        M = p.get_val('mach')
        kappa = p.get_val('kappa_comp.kappa')

        idxs_0 = np.where(M <= 1.15)[0]
        idxs_1 = np.where(M > 1.15)[0]

        kappa_analtic_0 = 0.54 + 0.15 * (1.0 + np.tanh(
            (M[idxs_0] - 0.9) / 0.06))
        kappa_analtic_1 = 0.54 + 0.15 * (1.0 + np.tanh(0.25 / 0.06)) + 0.14 * (
            M[idxs_1] - 1.15)

        assert_near_equal(kappa[idxs_0], kappa_analtic_0)
        assert_near_equal(kappa[idxs_1], kappa_analtic_1)
Example #3
0
 def test_partials(self):
     n = 10
     p = om.Problem(model=om.Group())
     p.model.add_subsystem(name='kappa_comp', subsys=KappaComp(num_nodes=n))
     p.setup()
     p.set_val('kappa_comp.mach', np.linspace(0, 1.8, n))
     p.run_model()
     cpd = p.check_partials(compact_print=False, out_stream=None)
     assert_check_partials(cpd, atol=1.0E-5, rtol=1.0E-4)
Example #4
0
    def test_value(self):
        n = 500
        p = om.Problem()
        p.model.add_subsystem(name='kappa_comp', subsys=KappaComp(num_nodes=n))
        p.setup()
        p.set_val('kappa_comp.mach', np.linspace(0, 1.8, n))
        p.run_model()

        M = p.get_val('kappa_comp.mach')
        kappa = p.get_val('kappa_comp.kappa')

        idxs_0 = np.where(M <= 1.15)[0]
        idxs_1 = np.where(M > 1.15)[0]

        kappa_analtic_0 = 0.54 + 0.15 * (1.0 + np.tanh(
            (M[idxs_0] - 0.9) / 0.06))
        kappa_analtic_1 = 0.54 + 0.15 * (1.0 + np.tanh(0.25 / 0.06)) + 0.14 * (
            M[idxs_1] - 1.15)

        assert_near_equal(kappa[idxs_0], kappa_analtic_0)
        assert_near_equal(kappa[idxs_1], kappa_analtic_1)
Example #5
0
    def test_visual_inspection(self):
        n = 500

        p = Problem(model=Group())

        ivc = IndepVarComp()

        ivc.add_output(name='mach', units=None, val=np.zeros(n))

        p.model.add_subsystem(name='ivc', subsys=ivc, promotes_outputs=['*'])

        p.model.add_subsystem(name='kappa_comp',
                              subsys=KappaComp(num_nodes=n))

        p.model.connect('mach', 'kappa_comp.mach')

        p.setup()

        p['mach'] = np.linspace(0, 1.8, n)
        p.run_model()

        import matplotlib.pyplot as plt
        plt.plot(p['mach'], p['kappa_comp.kappa'], 'ro', ms=2)
        plt.show()