コード例 #1
0
    def test_nearest_neighbor_rbf_options(self):
        import numpy as np

        import openmdao.api as om

        prob = om.Problem()

        prob.model.add_subsystem('p', om.IndepVarComp('x', 2.1))

        sin_mm = om.MetaModelUnStructuredComp()
        sin_mm.add_input('x', 0.)
        sin_mm.add_output('f_x',
                          0.,
                          surrogate=om.NearestNeighbor(interpolant_type='rbf',
                                                       num_neighbors=3))

        prob.model.add_subsystem('sin_mm', sin_mm)

        prob.model.connect('p.x', 'sin_mm.x')

        prob.setup(check=True)

        # train the surrogate and check predicted value
        sin_mm.options['train:x'] = np.linspace(0, 10, 20)
        sin_mm.options['train:f_x'] = .5 * np.sin(sin_mm.options['train:x'])

        prob['sin_mm.x'] = 2.1

        prob.run_model()

        assert_near_equal(prob['sin_mm.f_x'], .5 * np.sin(prob['sin_mm.x']),
                          5e-3)
コード例 #2
0
    def test_nearest_neighbor_rbf_options(self):

        prob = om.Problem()

        sin_mm = om.MetaModelUnStructuredComp()
        sin_mm.add_input('x', 2.1)
        sin_mm.add_output('f_x',
                          0.,
                          surrogate=om.NearestNeighbor(interpolant_type='rbf',
                                                       num_neighbors=3))

        prob.model.add_subsystem('sin_mm', sin_mm)

        prob.setup(check=True)

        # train the surrogate and check predicted value
        sin_mm.options['train_x'] = np.linspace(0, 10, 20)
        sin_mm.options['train_f_x'] = .5 * np.sin(sin_mm.options['train_x'])

        prob.set_val('sin_mm.x', 2.1)

        prob.run_model()

        assert_near_equal(prob.get_val('sin_mm.f_x'),
                          .5 * np.sin(prob.get_val('sin_mm.x')), 5e-3)
コード例 #3
0
 def setup(self):
     surrogate = om.NearestNeighbor()
     self.add_output('sin_x',
                     0.,
                     surrogate=surrogate,
                     training_data=.5 *
                     np.sin(np.linspace(0, 10, 20)))
コード例 #4
0
    def test_nearest_neighbor(self):
        import numpy as np

        import openmdao.api as om

        prob = om.Problem()

        sin_mm = om.MetaModelUnStructuredComp()
        sin_mm.add_input('x', 2.1)
        sin_mm.add_output(
            'f_x', 0., surrogate=om.NearestNeighbor(interpolant_type='linear'))

        prob.model.add_subsystem('sin_mm', sin_mm)

        prob.setup(check=True)

        # train the surrogate and check predicted value
        sin_mm.options['train:x'] = np.linspace(0, 10, 20)
        sin_mm.options['train:f_x'] = .5 * np.sin(sin_mm.options['train:x'])

        prob.set_val('sin_mm.x', 2.1)

        prob.run_model()

        assert_near_equal(prob.get_val('sin_mm.f_x'),
                          .5 * np.sin(prob.get_val('sin_mm.x')), 2e-3)